class Bosh::Director::VmMetadataUpdater

Public Class Methods

build() click to toggle source
# File lib/bosh/director/vm_metadata_updater.rb, line 3
def self.build
  new(Config.cloud, {director: Config.name}, Config.logger)
end
new(cloud, director_metadata, logger) click to toggle source
# File lib/bosh/director/vm_metadata_updater.rb, line 7
def initialize(cloud, director_metadata, logger)
  @cloud = cloud
  @director_metadata = director_metadata
  @logger = logger
end

Public Instance Methods

update(instance, metadata) click to toggle source
# File lib/bosh/director/vm_metadata_updater.rb, line 13
def update(instance, metadata)
  if @cloud.respond_to?(:set_vm_metadata)
    metadata = metadata.merge(@director_metadata)
    metadata[:deployment] = instance.deployment.name

    metadata[:id] = instance.uuid
    metadata[:job] = instance.job
    metadata[:index] = instance.index.to_s
    metadata[:name] = "#{instance.job}/#{instance.uuid}"

    metadata[:created_at] = Time.new.getutc.strftime('%Y-%m-%dT%H:%M:%SZ')

    @cloud.set_vm_metadata(instance.vm_cid, metadata)
  end
rescue Bosh::Clouds::NotImplemented => e
  @logger.debug(e.inspect)
end