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.



165
166
167
168
169
170
171
# File 'lib/bosh/director/instance_updater/vm_updater.rb', line 165

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



173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
# File 'lib/bosh/director/instance_updater/vm_updater.rb', line 173

def detach
  disk_list = @agent_client.list_disk
  if disk_list.empty?
    @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