class Orch::Application
Public Instance Methods
config()
click to toggle source
# File lib/orch.rb, line 16 def config $ORCH_CONFIG = Orch::Config.new(options) if File.file?("#{Dir.home}/.orch/config.yml") say "This will over-write your existing ~/.orch/config.yaml file", :yellow answer = yes? "Proceed?", :yellow if answer == false exit 0 end end say("Enter values to construct a ~/.orch/config.yaml file") settings = {} settings["marathon_url"] = ask("Marathon URL: ") settings["chronos_url"] = ask("Chronos URL: ") settings["bamboo_url"] = ask("Bamboo URL: ") $ORCH_CONFIG.setup_config(settings) end
delete(file_name)
click to toggle source
# File lib/orch.rb, line 151 def delete(file_name) $ORCH_CONFIG = Orch::Config.new(options) parser = Orch::Parse.new(file_name, options) result = parser.parse(false) if result.length == 0 puts "nothing found to delete" end marathon = Orch::Marathon.new(options) chronos = Orch::Chronos.new(options) bamboo = Orch::Bamboo.new(options) result.each do |app| if !app[:deploy] puts "skipping app: #{app[:name]}" next end puts "deleting #{app[:name]} from #{app[:type]}" if app[:type] == "Chronos" chronos.delete(app[:url], app[:name]) end if app[:type] == "Marathon" marathon.delete(app[:url], app[:name]) if app[:bamboo_spec] bamboo.delete(app[:url], app[:name]) end end end end
deploy(file_name)
click to toggle source
# File lib/orch.rb, line 107 def deploy(file_name) $ORCH_CONFIG = Orch::Config.new(options) parser = Orch::Parse.new(file_name, options) result = parser.parse(false) if result.length == 0 puts "nothing found to deploy" end marathon = Orch::Marathon.new(options) chronos = Orch::Chronos.new(options) bamboo = Orch::Bamboo.new(options) result.each do |app| if !app[:deploy] puts "skipping app: #{app[:name]}" next end puts "deploying #{app[:name]} to #{app[:type]}" #puts "#{app[:json]}" - should I support show_json here as well? if app[:type] == "Chronos" chronos.deploy(app[:url], app[:json].to_json) end if app[:type] == "Marathon" marathon.deploy(app[:url], app[:name], app[:json].to_json) if app[:bamboo_spec] bamboo.deploy(app[:bamboo_url], app[:name], app[:bamboo_spec]) end end end end
restart(file_name)
click to toggle source
# File lib/orch.rb, line 191 def restart(file_name) $ORCH_CONFIG = Orch::Config.new(options) parser = Orch::Parse.new(file_name, options) result = parser.parse(false) if result.length == 0 puts "nothing found to restart" end marathon = Orch::Marathon.new(options) result.each do |app| if !app[:deploy] || (app[:type] == "Chronos") puts "skipping app: #{app[:name]}" next end puts "restarting #{app[:name]} on #{app[:type]}" if app[:type] == "Marathon" marathon.restart(app[:url], app[:name]) end end end
verify(file_name)
click to toggle source
# File lib/orch.rb, line 52 def verify(file_name) $ORCH_CONFIG = Orch::Config.new(options) parser = Orch::Parse.new(file_name, options) result = parser.parse(true) numToDeploy = 0 result.each do |app| numToDeploy += 1 if app[:deploy] == true end puts "Number of configs found: #{result.length} - #{numToDeploy} would deploy" marathon = Orch::Marathon.new(options) chronos = Orch::Chronos.new(options) bamboo = Orch::Bamboo.new(options) result.each do |app| next if app[:deploy] == false printf "Name: %s, Type: %s", app[:name], app[:type] app[:env_vars].each do |key, value| printf ", %s: %s", key, value end printf "\n" if options[:show_json] pretty = JSON.pretty_generate(app[:json]) puts "JSON: #{pretty}" end foundDiffs = false if (app[:type] == "Chronos") && (options[:server_verify] == true) foundDiffs = chronos.verify(app[:url], app[:json].to_json) end if (app[:type] == "Marathon") && (options[:server_verify] == true) foundDiffs = marathon.verify(app[:url], app[:json].to_json) if app[:bamboo_spec] bambooDiffs = bamboo.verify(app[:bamboo_url], app[:name], app[:bamboo_spec]) foundDiffs = foundDiffs || bambooDiffs end end if (!foundDiffs) && (options[:server_verify] == true) puts "No differences with server found" end end end