Class: Bosh::Director::InstanceUpdater::VmUpdater::DiskDetacher

Inherits:
Object
  • Object
show all
Defined in:
lib/bosh/director/instance_updater/vm_updater.rb

Instance Method Summary collapse

Constructor Details

#initialize(instance, vm_model, agent_client, cloud, logger) ⇒ DiskDetacher

Returns a new instance of DiskDetacher.



162
163
164
165
166
167
168
# File 'lib/bosh/director/instance_updater/vm_updater.rb', line 162

def initialize(instance, vm_model, agent_client, cloud, logger)
  @instance = instance
  @vm_model = vm_model
  @agent_client = agent_client
  @cloud = cloud
  @logger = logger
end

Instance Method Details

#detachObject



170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# File 'lib/bosh/director/instance_updater/vm_updater.rb', line 170

def detach
  unless @instance.disk_currently_attached?
    @logger.info('Skipping disk detaching')
    return
  end

  if @instance.model.persistent_disk_cid.nil?
    raise AgentUnexpectedDisk,
          "`#{@instance}' VM has disk attached but it's not reflected in director DB"
  end

  @agent_client.unmount_disk(@instance.model.persistent_disk_cid)

  @cloud.detach_disk(@vm_model.cid, @instance.model.persistent_disk_cid)
end