bosh_deployer 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/bosh/cli/commands/micro.rb +3 -1
- data/lib/deployer/instance_manager/aws.rb +2 -70
- data/lib/deployer/instance_manager/openstack.rb +2 -70
- data/lib/deployer/instance_manager/vsphere.rb +7 -0
- data/lib/deployer/instance_manager.rb +19 -9
- data/lib/deployer/instance_manager_helpers.rb +78 -0
- data/lib/deployer/version.rb +1 -1
- data/lib/deployer.rb +2 -0
- metadata +9 -24
| @@ -91,7 +91,7 @@ module Bosh::Cli::Command | |
| 91 91 | 
             
                      err("Invalid manifest format")
         | 
| 92 92 | 
             
                    end
         | 
| 93 93 |  | 
| 94 | 
            -
                    stemcell = dig_hash(manifest, " | 
| 94 | 
            +
                    stemcell = dig_hash(manifest, "resources", "cloud_properties", "image_id")
         | 
| 95 95 |  | 
| 96 96 | 
             
                    if stemcell.nil?
         | 
| 97 97 | 
             
                      err "No stemcell provided"
         | 
| @@ -102,6 +102,8 @@ module Bosh::Cli::Command | |
| 102 102 |  | 
| 103 103 | 
             
                  desc = "`#{rel_path.green}' to `#{target_name.green}'"
         | 
| 104 104 |  | 
| 105 | 
            +
                  deployer.check_dependencies
         | 
| 106 | 
            +
             | 
| 105 107 | 
             
                  if update
         | 
| 106 108 | 
             
                    unless deployer.exists?
         | 
| 107 109 | 
             
                      err "No existing instance to update"
         | 
| @@ -1,12 +1,12 @@ | |
| 1 1 | 
             
            # Copyright (c) 2009-2012 VMware, Inc.
         | 
| 2 2 |  | 
| 3 | 
            -
            require 'net/ssh'
         | 
| 4 | 
            -
             | 
| 5 3 | 
             
            module Bosh::Deployer
         | 
| 6 4 | 
             
              class InstanceManager
         | 
| 7 5 |  | 
| 8 6 | 
             
                class Aws < InstanceManager
         | 
| 9 7 |  | 
| 8 | 
            +
                  include InstanceManagerHelpers
         | 
| 9 | 
            +
             | 
| 10 10 | 
             
                  def update_spec(spec)
         | 
| 11 11 | 
             
                    spec = super(spec)
         | 
| 12 12 | 
             
                    properties = spec["properties"]
         | 
| @@ -184,74 +184,6 @@ module Bosh::Deployer | |
| 184 184 | 
             
                    end
         | 
| 185 185 | 
             
                  end
         | 
| 186 186 |  | 
| 187 | 
            -
                  def process_exists?(pid)
         | 
| 188 | 
            -
                    begin
         | 
| 189 | 
            -
                      Process.kill(0, pid)
         | 
| 190 | 
            -
                    rescue Errno::ESRCH
         | 
| 191 | 
            -
                      false
         | 
| 192 | 
            -
                    end
         | 
| 193 | 
            -
                  end
         | 
| 194 | 
            -
             | 
| 195 | 
            -
                  def socket_readable?(ip, port)
         | 
| 196 | 
            -
                    socket = TCPSocket.new(ip, port)
         | 
| 197 | 
            -
                    if IO.select([socket], nil, nil, 5)
         | 
| 198 | 
            -
                      logger.debug("tcp socket #{ip}:#{port} is readable")
         | 
| 199 | 
            -
                      yield
         | 
| 200 | 
            -
                      true
         | 
| 201 | 
            -
                    else
         | 
| 202 | 
            -
                      false
         | 
| 203 | 
            -
                    end
         | 
| 204 | 
            -
                  rescue SocketError => e
         | 
| 205 | 
            -
                    logger.debug("tcp socket #{ip}:#{port} SocketError: #{e.inspect}")
         | 
| 206 | 
            -
                    sleep 1
         | 
| 207 | 
            -
                    false
         | 
| 208 | 
            -
                  rescue SystemCallError => e
         | 
| 209 | 
            -
                    logger.debug("tcp socket #{ip}:#{port} SystemCallError: #{e.inspect}")
         | 
| 210 | 
            -
                    sleep 1
         | 
| 211 | 
            -
                    false
         | 
| 212 | 
            -
                  ensure
         | 
| 213 | 
            -
                    socket.close if socket
         | 
| 214 | 
            -
                  end
         | 
| 215 | 
            -
             | 
| 216 | 
            -
                  def tunnel(port)
         | 
| 217 | 
            -
                    return if @session
         | 
| 218 | 
            -
             | 
| 219 | 
            -
                    ip = discover_bosh_ip
         | 
| 220 | 
            -
             | 
| 221 | 
            -
                    loop until socket_readable?(ip, @ssh_port) do
         | 
| 222 | 
            -
                      #sshd is up, sleep while host keys are generated
         | 
| 223 | 
            -
                      sleep @ssh_wait
         | 
| 224 | 
            -
                    end
         | 
| 225 | 
            -
             | 
| 226 | 
            -
                    lo = "127.0.0.1"
         | 
| 227 | 
            -
                    cmd = "ssh -R #{port}:#{lo}:#{port} #{@ssh_user}@#{ip}"
         | 
| 228 | 
            -
             | 
| 229 | 
            -
                    logger.info("Preparing for ssh tunnel: #{cmd}")
         | 
| 230 | 
            -
                    loop do
         | 
| 231 | 
            -
                      begin
         | 
| 232 | 
            -
                        @session = Net::SSH.start(ip, @ssh_user, :keys => [@ssh_key],
         | 
| 233 | 
            -
                                                  :paranoid => false)
         | 
| 234 | 
            -
                        logger.debug("ssh #{@ssh_user}@#{ip}: ESTABLISHED")
         | 
| 235 | 
            -
                        break
         | 
| 236 | 
            -
                      rescue => e
         | 
| 237 | 
            -
                        logger.debug("ssh start #{@ssh_user}@#{ip} failed: #{e.inspect}")
         | 
| 238 | 
            -
                        sleep 1
         | 
| 239 | 
            -
                      end
         | 
| 240 | 
            -
                    end
         | 
| 241 | 
            -
             | 
| 242 | 
            -
                    @session.forward.remote(port, lo, port)
         | 
| 243 | 
            -
                    logger.info("`#{cmd}` started: OK")
         | 
| 244 | 
            -
             | 
| 245 | 
            -
                    Thread.new do
         | 
| 246 | 
            -
                      begin
         | 
| 247 | 
            -
                        @session.loop { true }
         | 
| 248 | 
            -
                      rescue IOError => e
         | 
| 249 | 
            -
                        logger.debug("`#{cmd}` terminated: #{e.inspect}")
         | 
| 250 | 
            -
                        @session = nil
         | 
| 251 | 
            -
                      end
         | 
| 252 | 
            -
                    end
         | 
| 253 | 
            -
                  end
         | 
| 254 | 
            -
             | 
| 255 187 | 
             
                end
         | 
| 256 188 | 
             
              end
         | 
| 257 189 | 
             
            end
         | 
| @@ -1,12 +1,12 @@ | |
| 1 1 | 
             
            # Copyright (c) 2009-2012 VMware, Inc.
         | 
| 2 2 |  | 
| 3 | 
            -
            require 'net/ssh'
         | 
| 4 | 
            -
             | 
| 5 3 | 
             
            module Bosh::Deployer
         | 
| 6 4 | 
             
              class InstanceManager
         | 
| 7 5 |  | 
| 8 6 | 
             
                class Openstack < InstanceManager
         | 
| 9 7 |  | 
| 8 | 
            +
                  include InstanceManagerHelpers
         | 
| 9 | 
            +
             | 
| 10 10 | 
             
                  def update_spec(spec)
         | 
| 11 11 | 
             
                    spec = super(spec)
         | 
| 12 12 | 
             
                    properties = spec["properties"]
         | 
| @@ -183,74 +183,6 @@ module Bosh::Deployer | |
| 183 183 | 
             
                    end
         | 
| 184 184 | 
             
                  end
         | 
| 185 185 |  | 
| 186 | 
            -
                  def process_exists?(pid)
         | 
| 187 | 
            -
                    begin
         | 
| 188 | 
            -
                      Process.kill(0, pid)
         | 
| 189 | 
            -
                    rescue Errno::ESRCH
         | 
| 190 | 
            -
                      false
         | 
| 191 | 
            -
                    end
         | 
| 192 | 
            -
                  end
         | 
| 193 | 
            -
             | 
| 194 | 
            -
                  def socket_readable?(ip, port)
         | 
| 195 | 
            -
                    socket = TCPSocket.new(ip, port)
         | 
| 196 | 
            -
                    if IO.select([socket], nil, nil, 5)
         | 
| 197 | 
            -
                      logger.debug("tcp socket #{ip}:#{port} is readable")
         | 
| 198 | 
            -
                      yield
         | 
| 199 | 
            -
                      true
         | 
| 200 | 
            -
                    else
         | 
| 201 | 
            -
                      false
         | 
| 202 | 
            -
                    end
         | 
| 203 | 
            -
                  rescue SocketError => e
         | 
| 204 | 
            -
                    logger.debug("tcp socket #{ip}:#{port} SocketError: #{e.inspect}")
         | 
| 205 | 
            -
                    sleep 1
         | 
| 206 | 
            -
                    false
         | 
| 207 | 
            -
                  rescue SystemCallError => e
         | 
| 208 | 
            -
                    logger.debug("tcp socket #{ip}:#{port} SystemCallError: #{e.inspect}")
         | 
| 209 | 
            -
                    sleep 1
         | 
| 210 | 
            -
                    false
         | 
| 211 | 
            -
                  ensure
         | 
| 212 | 
            -
                    socket.close if socket
         | 
| 213 | 
            -
                  end
         | 
| 214 | 
            -
             | 
| 215 | 
            -
                  def tunnel(port)
         | 
| 216 | 
            -
                    return if @session
         | 
| 217 | 
            -
             | 
| 218 | 
            -
                    ip = discover_bosh_ip
         | 
| 219 | 
            -
             | 
| 220 | 
            -
                    loop until socket_readable?(ip, @ssh_port) do
         | 
| 221 | 
            -
                      #sshd is up, sleep while host keys are generated
         | 
| 222 | 
            -
                      sleep @ssh_wait
         | 
| 223 | 
            -
                    end
         | 
| 224 | 
            -
             | 
| 225 | 
            -
                    lo = "127.0.0.1"
         | 
| 226 | 
            -
                    cmd = "ssh -R #{port}:#{lo}:#{port} #{@ssh_user}@#{ip}"
         | 
| 227 | 
            -
             | 
| 228 | 
            -
                    logger.info("Preparing for ssh tunnel: #{cmd}")
         | 
| 229 | 
            -
                    loop do
         | 
| 230 | 
            -
                      begin
         | 
| 231 | 
            -
                        @session = Net::SSH.start(ip, @ssh_user, :keys => [@ssh_key],
         | 
| 232 | 
            -
                                                  :paranoid => false)
         | 
| 233 | 
            -
                        logger.debug("ssh #{@ssh_user}@#{ip}: ESTABLISHED")
         | 
| 234 | 
            -
                        break
         | 
| 235 | 
            -
                      rescue => e
         | 
| 236 | 
            -
                        logger.debug("ssh start #{@ssh_user}@#{ip} failed: #{e.inspect}")
         | 
| 237 | 
            -
                        sleep 1
         | 
| 238 | 
            -
                      end
         | 
| 239 | 
            -
                    end
         | 
| 240 | 
            -
             | 
| 241 | 
            -
                    @session.forward.remote(port, lo, port)
         | 
| 242 | 
            -
                    logger.info("`#{cmd}` started: OK")
         | 
| 243 | 
            -
             | 
| 244 | 
            -
                    Thread.new do
         | 
| 245 | 
            -
                      begin
         | 
| 246 | 
            -
                        @session.loop { true }
         | 
| 247 | 
            -
                      rescue IOError => e
         | 
| 248 | 
            -
                        logger.debug("`#{cmd}` terminated: #{e.inspect}")
         | 
| 249 | 
            -
                        @session = nil
         | 
| 250 | 
            -
                      end
         | 
| 251 | 
            -
                    end
         | 
| 252 | 
            -
                  end
         | 
| 253 | 
            -
             | 
| 254 186 | 
             
                end
         | 
| 255 187 | 
             
              end
         | 
| 256 188 | 
             
            end
         | 
| @@ -35,5 +35,12 @@ module Bosh::Deployer | |
| 35 35 | 
             
                def persistent_disk_changed?
         | 
| 36 36 | 
             
                  Config.resources['persistent_disk'] != disk_size(state.disk_cid)
         | 
| 37 37 | 
             
                end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                def check_dependencies
         | 
| 40 | 
            +
                  if Bosh::Common.which(%w[genisoimage mkisofs]).nil?
         | 
| 41 | 
            +
                    err("either of 'genisoimage' or 'mkisofs' commands must be present")
         | 
| 42 | 
            +
                  end
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
             | 
| 38 45 | 
             
              end
         | 
| 39 46 | 
             
            end
         | 
| @@ -138,7 +138,8 @@ module Bosh::Deployer | |
| 138 138 | 
             
                    end
         | 
| 139 139 | 
             
                    save_state
         | 
| 140 140 | 
             
                  rescue => e
         | 
| 141 | 
            -
                     | 
| 141 | 
            +
                    # only delete the stemcell if we were trying to upload it
         | 
| 142 | 
            +
                    delete_stemcell if is_tgz?(stemcell_tgz)
         | 
| 142 143 | 
             
                    raise e
         | 
| 143 144 | 
             
                  end
         | 
| 144 145 |  | 
| @@ -208,7 +209,7 @@ module Bosh::Deployer | |
| 208 209 |  | 
| 209 210 | 
             
                    # override with values from the deployment manifest
         | 
| 210 211 | 
             
                    override = Config.cloud_options["properties"]["stemcell"]
         | 
| 211 | 
            -
                    properties | 
| 212 | 
            +
                    override_property(properties, "cloud_properties", override)
         | 
| 212 213 |  | 
| 213 214 | 
             
                    step "Uploading stemcell" do
         | 
| 214 215 | 
             
                      cloud.create_stemcell("#{stemcell}/image", properties["cloud_properties"])
         | 
| @@ -300,7 +301,6 @@ module Bosh::Deployer | |
| 300 301 | 
             
                def attach_missing_disk
         | 
| 301 302 | 
             
                  if state.disk_cid
         | 
| 302 303 | 
             
                    attach_disk(state.disk_cid, true)
         | 
| 303 | 
            -
                    save_state
         | 
| 304 304 | 
             
                  end
         | 
| 305 305 | 
             
                end
         | 
| 306 306 |  | 
| @@ -338,6 +338,7 @@ module Bosh::Deployer | |
| 338 338 | 
             
                    # delete the old disk
         | 
| 339 339 | 
             
                    delete_disk(old_disk_cid, state.vm_cid)
         | 
| 340 340 | 
             
                  end
         | 
| 341 | 
            +
                ensure
         | 
| 341 342 | 
             
                  save_state
         | 
| 342 343 | 
             
                end
         | 
| 343 344 |  | 
| @@ -363,6 +364,11 @@ module Bosh::Deployer | |
| 363 364 | 
             
                    update_service_address(properties, service, service_ip)
         | 
| 364 365 | 
             
                  end
         | 
| 365 366 |  | 
| 367 | 
            +
                  # health monitor does not listen to any ports, so there is no
         | 
| 368 | 
            +
                  # need to update the service address, but we still want to
         | 
| 369 | 
            +
                  # be able to override values in the apply_spec
         | 
| 370 | 
            +
                  override_property(properties, "hm", Config.spec_properties["hm"])
         | 
| 371 | 
            +
             | 
| 366 372 | 
             
                  spec
         | 
| 367 373 | 
             
                end
         | 
| 368 374 |  | 
| @@ -384,6 +390,10 @@ module Bosh::Deployer | |
| 384 390 | 
             
                  bosh_ip
         | 
| 385 391 | 
             
                end
         | 
| 386 392 |  | 
| 393 | 
            +
                def check_dependencies
         | 
| 394 | 
            +
                  # nothing to check, move on...
         | 
| 395 | 
            +
                end
         | 
| 396 | 
            +
             | 
| 387 397 | 
             
                private
         | 
| 388 398 |  | 
| 389 399 | 
             
                # update the agent service section from the contents of the apply_spec
         | 
| @@ -393,9 +403,7 @@ module Bosh::Deployer | |
| 393 403 | 
             
                    svc = agent[service] ||= {}
         | 
| 394 404 | 
             
                    svc["address"] = address
         | 
| 395 405 |  | 
| 396 | 
            -
                     | 
| 397 | 
            -
                      svc.merge!(override)
         | 
| 398 | 
            -
                    end
         | 
| 406 | 
            +
                    override_property(agent, service, Config.agent_properties[service])
         | 
| 399 407 | 
             
                  end
         | 
| 400 408 | 
             
                end
         | 
| 401 409 |  | 
| @@ -403,9 +411,11 @@ module Bosh::Deployer | |
| 403 411 | 
             
                  return unless properties[service]
         | 
| 404 412 | 
             
                  properties[service]["address"] = address
         | 
| 405 413 |  | 
| 406 | 
            -
                   | 
| 407 | 
            -
             | 
| 408 | 
            -
             | 
| 414 | 
            +
                  override_property(properties, service, Config.spec_properties[service])
         | 
| 415 | 
            +
                end
         | 
| 416 | 
            +
             | 
| 417 | 
            +
                def override_property(properties, service, override)
         | 
| 418 | 
            +
                  properties[service].merge!(override) if override
         | 
| 409 419 | 
             
                end
         | 
| 410 420 |  | 
| 411 421 | 
             
                def bosh_ip
         | 
| @@ -0,0 +1,78 @@ | |
| 1 | 
            +
            # Copyright (c) 2009-2012 VMware, Inc.
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'net/ssh'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module Bosh::Deployer
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              module InstanceManagerHelpers
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                def process_exists?(pid)
         | 
| 10 | 
            +
                  begin
         | 
| 11 | 
            +
                    Process.kill(0, pid)
         | 
| 12 | 
            +
                  rescue Errno::ESRCH
         | 
| 13 | 
            +
                    false
         | 
| 14 | 
            +
                  end
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                def socket_readable?(ip, port)
         | 
| 18 | 
            +
                  socket = TCPSocket.new(ip, port)
         | 
| 19 | 
            +
                  if IO.select([socket], nil, nil, 5)
         | 
| 20 | 
            +
                    logger.debug("tcp socket #{ip}:#{port} is readable")
         | 
| 21 | 
            +
                    yield
         | 
| 22 | 
            +
                    true
         | 
| 23 | 
            +
                  else
         | 
| 24 | 
            +
                    false
         | 
| 25 | 
            +
                  end
         | 
| 26 | 
            +
                rescue SocketError => e
         | 
| 27 | 
            +
                  logger.debug("tcp socket #{ip}:#{port} SocketError: #{e.inspect}")
         | 
| 28 | 
            +
                  sleep 1
         | 
| 29 | 
            +
                  false
         | 
| 30 | 
            +
                rescue SystemCallError => e
         | 
| 31 | 
            +
                  logger.debug("tcp socket #{ip}:#{port} SystemCallError: #{e.inspect}")
         | 
| 32 | 
            +
                  sleep 1
         | 
| 33 | 
            +
                  false
         | 
| 34 | 
            +
                ensure
         | 
| 35 | 
            +
                  socket.close if socket
         | 
| 36 | 
            +
                end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                def tunnel(port)
         | 
| 39 | 
            +
                  return if @session
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                  ip = discover_bosh_ip
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                  loop until socket_readable?(ip, @ssh_port) do
         | 
| 44 | 
            +
                    #sshd is up, sleep while host keys are generated
         | 
| 45 | 
            +
                    sleep @ssh_wait
         | 
| 46 | 
            +
                  end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                  lo = "127.0.0.1"
         | 
| 49 | 
            +
                  cmd = "ssh -R #{port}:#{lo}:#{port} #{@ssh_user}@#{ip}"
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                  logger.info("Preparing for ssh tunnel: #{cmd}")
         | 
| 52 | 
            +
                  loop do
         | 
| 53 | 
            +
                    begin
         | 
| 54 | 
            +
                      @session = Net::SSH.start(ip, @ssh_user, :keys => [@ssh_key],
         | 
| 55 | 
            +
                                                :paranoid => false)
         | 
| 56 | 
            +
                      logger.debug("ssh #{@ssh_user}@#{ip}: ESTABLISHED")
         | 
| 57 | 
            +
                      break
         | 
| 58 | 
            +
                    rescue => e
         | 
| 59 | 
            +
                      logger.debug("ssh start #{@ssh_user}@#{ip} failed: #{e.inspect}")
         | 
| 60 | 
            +
                      sleep 1
         | 
| 61 | 
            +
                    end
         | 
| 62 | 
            +
                  end
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                  @session.forward.remote(port, lo, port)
         | 
| 65 | 
            +
                  logger.info("`#{cmd}` started: OK")
         | 
| 66 | 
            +
             | 
| 67 | 
            +
                  Thread.new do
         | 
| 68 | 
            +
                    begin
         | 
| 69 | 
            +
                      @session.loop { true }
         | 
| 70 | 
            +
                    rescue IOError => e
         | 
| 71 | 
            +
                      logger.debug("`#{cmd}` terminated: #{e.inspect}")
         | 
| 72 | 
            +
                      @session = nil
         | 
| 73 | 
            +
                    end
         | 
| 74 | 
            +
                  end
         | 
| 75 | 
            +
                end
         | 
| 76 | 
            +
             | 
| 77 | 
            +
              end
         | 
| 78 | 
            +
            end
         | 
    
        data/lib/deployer/version.rb
    CHANGED
    
    
    
        data/lib/deployer.rb
    CHANGED
    
    | @@ -13,6 +13,7 @@ require "tmpdir" | |
| 13 13 | 
             
            require "uuidtools"
         | 
| 14 14 | 
             
            require "yaml"
         | 
| 15 15 | 
             
            require "yajl"
         | 
| 16 | 
            +
            require "common/common"
         | 
| 16 17 | 
             
            require "common/thread_formatter"
         | 
| 17 18 |  | 
| 18 19 | 
             
            require "deployer/version"
         | 
| @@ -20,3 +21,4 @@ require "deployer/errors" | |
| 20 21 | 
             
            require "deployer/helpers"
         | 
| 21 22 | 
             
            require "deployer/config"
         | 
| 22 23 | 
             
            require "deployer/instance_manager"
         | 
| 24 | 
            +
            require "deployer/instance_manager_helpers"
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: bosh_deployer
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.6.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2012- | 
| 12 | 
            +
            date: 2012-09-05 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: bosh_cli
         | 
| @@ -27,22 +27,6 @@ dependencies: | |
| 27 27 | 
             
                - - ! '>='
         | 
| 28 28 | 
             
                  - !ruby/object:Gem::Version
         | 
| 29 29 | 
             
                    version: 0.19.5
         | 
| 30 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 31 | 
            -
              name: bosh_common
         | 
| 32 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 33 | 
            -
                none: false
         | 
| 34 | 
            -
                requirements:
         | 
| 35 | 
            -
                - - ~>
         | 
| 36 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 37 | 
            -
                    version: 0.5.0
         | 
| 38 | 
            -
              type: :runtime
         | 
| 39 | 
            -
              prerelease: false
         | 
| 40 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 41 | 
            -
                none: false
         | 
| 42 | 
            -
                requirements:
         | 
| 43 | 
            -
                - - ~>
         | 
| 44 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 45 | 
            -
                    version: 0.5.0
         | 
| 46 30 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 47 31 | 
             
              name: bosh_cpi
         | 
| 48 32 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -114,7 +98,7 @@ dependencies: | |
| 114 98 | 
             
                requirements:
         | 
| 115 99 | 
             
                - - ~>
         | 
| 116 100 | 
             
                  - !ruby/object:Gem::Version
         | 
| 117 | 
            -
                    version: 0.0. | 
| 101 | 
            +
                    version: 0.0.3
         | 
| 118 102 | 
             
              type: :runtime
         | 
| 119 103 | 
             
              prerelease: false
         | 
| 120 104 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -122,7 +106,7 @@ dependencies: | |
| 122 106 | 
             
                requirements:
         | 
| 123 107 | 
             
                - - ~>
         | 
| 124 108 | 
             
                  - !ruby/object:Gem::Version
         | 
| 125 | 
            -
                    version: 0.0. | 
| 109 | 
            +
                    version: 0.0.3
         | 
| 126 110 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 127 111 | 
             
              name: bosh_openstack_registry
         | 
| 128 112 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -130,7 +114,7 @@ dependencies: | |
| 130 114 | 
             
                requirements:
         | 
| 131 115 | 
             
                - - ~>
         | 
| 132 116 | 
             
                  - !ruby/object:Gem::Version
         | 
| 133 | 
            -
                    version: 0.0. | 
| 117 | 
            +
                    version: 0.0.2
         | 
| 134 118 | 
             
              type: :runtime
         | 
| 135 119 | 
             
              prerelease: false
         | 
| 136 120 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -138,7 +122,7 @@ dependencies: | |
| 138 122 | 
             
                requirements:
         | 
| 139 123 | 
             
                - - ~>
         | 
| 140 124 | 
             
                  - !ruby/object:Gem::Version
         | 
| 141 | 
            -
                    version: 0.0. | 
| 125 | 
            +
                    version: 0.0.2
         | 
| 142 126 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 143 127 | 
             
              name: agent_client
         | 
| 144 128 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -189,6 +173,7 @@ files: | |
| 189 173 | 
             
            - lib/deployer/instance_manager/aws.rb
         | 
| 190 174 | 
             
            - lib/deployer/instance_manager/openstack.rb
         | 
| 191 175 | 
             
            - lib/deployer/instance_manager/vsphere.rb
         | 
| 176 | 
            +
            - lib/deployer/instance_manager_helpers.rb
         | 
| 192 177 | 
             
            - lib/deployer/models/instance.rb
         | 
| 193 178 | 
             
            - lib/deployer/version.rb
         | 
| 194 179 | 
             
            - README.rdoc
         | 
| @@ -208,7 +193,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 208 193 | 
             
                  version: '0'
         | 
| 209 194 | 
             
                  segments:
         | 
| 210 195 | 
             
                  - 0
         | 
| 211 | 
            -
                  hash: - | 
| 196 | 
            +
                  hash: -914290662432326556
         | 
| 212 197 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 213 198 | 
             
              none: false
         | 
| 214 199 | 
             
              requirements:
         | 
| @@ -217,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 217 202 | 
             
                  version: '0'
         | 
| 218 203 | 
             
                  segments:
         | 
| 219 204 | 
             
                  - 0
         | 
| 220 | 
            -
                  hash: - | 
| 205 | 
            +
                  hash: -914290662432326556
         | 
| 221 206 | 
             
            requirements: []
         | 
| 222 207 | 
             
            rubyforge_project: 
         | 
| 223 208 | 
             
            rubygems_version: 1.8.24
         |