class Provisional::Deployment
Attributes
environment[R]
options[R]
Public Class Methods
new(environment, options = {})
click to toggle source
# File lib/provisional/deployment.rb, line 9 def initialize(environment, options = {}) @environment = environment @options = options end
Public Instance Methods
deploy_cold()
click to toggle source
# File lib/provisional/deployment.rb, line 14 def deploy_cold verify_all_required_images_have_been_built(environment) puts "Deploying all images to '#{environment}'." deployment_config.each do |server_type, server_config| server_count = server_config["servers"] image = Provisional::Image.find(name: server_type) # For a cold deploy, we can assume (but should verify) that there are no existing servers in the environment. # existing_servers = Provisional::Server.list(environment).reject{|server| server.name =~ /-\d{14}/} # next_server_number = highest_server_number(existing_servers) new_server_numbers = (1 .. server_count) new_server_numbers.each do |server_number| server_name = "#{server_type}#{server_number}.#{environment}" puts "Create server #{server_name} with image '#{image.name}'" Provisional::Server.create(name: server_name, image: image) end # existing_servers.each do |server| # server.delete # end end end
Private Instance Methods
deployment_config()
click to toggle source
# File lib/provisional/deployment.rb, line 43 def deployment_config Provisional.config["deployments"][environment] or raise "No deployments config file section for '#{environment}'" end
highest_server_number(server_names)
click to toggle source
# File lib/provisional/deployment.rb, line 47 def highest_server_number(server_names) server_names.map{|name| name.split(".").first.gsub(/[^0-9]/, "").to_i}.sort.last end
verify_all_required_images_have_been_built(environment)
click to toggle source
# File lib/provisional/deployment.rb, line 37 def verify_all_required_images_have_been_built(environment) deployment_config.keys.each do |server_type| raise "No image built for '#{server_type}'" if Provisional::Image.find(name: server_type).nil? end end