Class: Bosh::Director::InstanceUpdater::VmUpdater::VmCreator
- Defined in:
- lib/bosh/director/instance_updater/vm_updater.rb
Instance Method Summary collapse
- #create(new_disk_id) ⇒ Object
-
#initialize(instance, cloud, logger) ⇒ VmCreator
constructor
A new instance of VmCreator.
- #new_vm_model(new_disk_id) ⇒ Object
Constructor Details
#initialize(instance, cloud, logger) ⇒ VmCreator
Returns a new instance of VmCreator.
80 81 82 83 84 |
# File 'lib/bosh/director/instance_updater/vm_updater.rb', line 80 def initialize(instance, cloud, logger) @instance = instance @cloud = cloud @logger = logger end |
Instance Method Details
#create(new_disk_id) ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/bosh/director/instance_updater/vm_updater.rb', line 86 def create(new_disk_id) @logger.info('Creating VM') vm_model = new_vm_model(new_disk_id) begin @instance.bind_to_vm_model(vm_model) agent_client = AgentClient.with_defaults(vm_model.agent_id) agent_client.wait_until_ready agent_client.update_settings(Bosh::Director::Config.trusted_certs) vm_model.update(:trusted_certs_sha1 => Digest::SHA1.hexdigest(Bosh::Director::Config.trusted_certs)) rescue Exception => e @logger.error("Failed to create/contact VM #{vm_model.cid}: #{e.inspect}") VmDeleter.new(@instance, vm_model, @cloud, @logger).delete raise e end [vm_model, agent_client] end |
#new_vm_model(new_disk_id) ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/bosh/director/instance_updater/vm_updater.rb', line 106 def new_vm_model(new_disk_id) deployment = @instance.job.deployment resource_pool = @instance.job.resource_pool Bosh::Director::VmCreator.create( deployment.model, resource_pool.stemcell.model, resource_pool.cloud_properties, @instance.network_settings, [@instance.model.persistent_disk_cid, new_disk_id].compact, resource_pool.env, ) end |