Guest User

Untitled

a guest
Dec 2nd, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2.  
  3. require 'json'
  4.  
  5. class String
  6. def colorize(color_code) "\e[#{color_code}m#{self}\e[0m" end
  7. def bold; colorize(1) end
  8. def red; colorize(31) end
  9. def green; colorize(32) end
  10. def yellow; colorize(33) end
  11. def cyan; colorize(36) end
  12. end
  13.  
  14. mapping = {
  15. 'cba/opseng/ansible' => 'pt/opseng/ansible',
  16. # 'cba/statsd' => 'pt/opseng/statsd', # not used w/ get-latest-tag.py
  17. # 'cba/opseng/cba-tenant-service' => 'pt/opseng/admin-service', # not used w/ get-latest-tag.py
  18. # 'cba/opseng/pingthru' => 'pt/opseng/pingthru', # not used w/ get-latest-tag.py
  19. 'worksheets-static' => 'pt/app/sheets-static',
  20. 'cba/sheets-web' => 'pt/app/sheets-web',
  21. 'cba/sheets-engine' => 'pt/app/sheets-engine',
  22. 'pt/workdrive-client' => 'pt/app/workdrive-client',
  23. 'pt/workdrive-server' => 'pt/app/workdrive-server',
  24. 'cba/docs-engine' => 'pt/app/docs-engine',
  25. 'cba/docs-web' => 'pt/app/docs-web',
  26. 'cba/talk-engine' => 'pt/app/talk-engine',
  27. 'cba/talk-web' => 'pt/app/talk-web',
  28. 'pt/worktalk-static' => 'pt/app/talk-static',
  29. 'cba/docs-engine' => 'pt/app/docs-engine',
  30. 'cba/docs-web' => 'pt/app/docs-web',
  31. 'pt/docs-client' => 'pt/app/docs-static',
  32. }
  33.  
  34. ART_USER = 'brandon.fryslie'
  35. AF_PASS = 'your-af.megaleo.com-api-key'
  36. ART_PASS = 'your-artifactory.workday.com-api-key'
  37.  
  38. def queryForImage(image, useNew = false, debug = false)
  39. ENV['ART_USER'] = 'brandon.fryslie'
  40. ENV['ART_PASS'] = useNew ? ART_PASS : AF_PASS
  41.  
  42. # this command would need to change.
  43. # you could change this to some shell command that would search and replace across the project, for example
  44. cmd = "/Users/brandon.fryslie/code/ci-scripts/bin/get-latest-tag.py #{useNew ? '--use-new-artifactory' : ''} #{image} 2>&1"
  45.  
  46. if debug
  47. puts "Running command: ART_USER=#{ENV['ART_USER']} ART_PASS=#{ENV['ART_PASS']} #{cmd}".yellow
  48. end
  49.  
  50. res = `#{cmd}`
  51.  
  52. if debug
  53. puts res.yellow
  54. end
  55.  
  56. res.strip
  57. end
  58.  
  59. def createNameStr(oldName, newName)
  60. "#{oldName.cyan} #{'/'.yellow} #{newName.cyan}"
  61. end
  62.  
  63. results = mapping.map do |oldName, newName|
  64. puts "Verifying image: #{createNameStr(oldName, newName)}".yellow
  65.  
  66. oldRes = queryForImage(oldName, false, false)
  67. newRes = queryForImage(newName, true, false)
  68.  
  69. { :oldName => oldName, :newName => newName, :oldLatest => oldRes, :newLatest => newRes }
  70. end
  71.  
  72. def verifyImage(imageResult)
  73. puts "Comparing image: #{createNameStr(imageResult[:oldName], imageResult[:newName])}".yellow
  74.  
  75. if imageResult[:oldLatest] == 'No containers found for arguments passed' || imageResult[:newLatest] == 'No containers found for arguments passed'
  76. puts "Error: No container found".red
  77. elsif imageResult[:oldLatest] == imageResult[:newLatest]
  78. puts "Same latest: #{imageResult[:oldLatest]}".green
  79. else
  80. puts "Latest Differs. Old Latest: '#{imageResult[:oldLatest]}' New Latest: '#{imageResult[:newLatest]}'".red
  81. end
  82. end
  83.  
  84. results.each do |imageResult|
  85. verifyImage(imageResult)
  86. end
Add Comment
Please, Sign In to add comment