class Bosh::Director::Models::Instance
Public Instance Methods
cloud_properties_hash()
click to toggle source
# File lib/bosh/director/models/instance.rb, line 42 def cloud_properties_hash if cloud_properties.nil? return {} if spec.nil? || spec['vm_type'].nil? spec['vm_type']['cloud_properties'] || {} else JSON.parse(cloud_properties) end end
cloud_properties_hash=(hash)
click to toggle source
# File lib/bosh/director/models/instance.rb, line 51 def cloud_properties_hash=(hash) self.cloud_properties = JSON.dump(hash) end
credentials()
click to toggle source
# File lib/bosh/director/models/instance.rb, line 124 def credentials object_or_nil(credentials_json) end
credentials=(spec)
click to toggle source
# File lib/bosh/director/models/instance.rb, line 128 def credentials=(spec) self.credentials_json = json_encode(spec) end
dns_record_names()
click to toggle source
# File lib/bosh/director/models/instance.rb, line 55 def dns_record_names return nil if dns_records.nil? JSON.parse(dns_records) end
dns_record_names=(list)
click to toggle source
# File lib/bosh/director/models/instance.rb, line 61 def dns_record_names=(list) self.dns_records = JSON.dump(list) end
latest_rendered_templates_archive()
click to toggle source
# File lib/bosh/director/models/instance.rb, line 29 def latest_rendered_templates_archive rendered_templates_archives_dataset.order(:created_at).last end
name()
click to toggle source
# File lib/bosh/director/models/instance.rb, line 65 def name "#{self.job}/#{self.uuid}" end
persistent_disk()
click to toggle source
# File lib/bosh/director/models/instance.rb, line 18 def persistent_disk # Currently we support only 1 persistent disk. self.persistent_disks.find { |disk| disk.active } end
persistent_disk_cid()
click to toggle source
# File lib/bosh/director/models/instance.rb, line 23 def persistent_disk_cid disk = persistent_disk return disk.disk_cid if disk nil end
spec()
click to toggle source
# File lib/bosh/director/models/instance.rb, line 73 def spec return nil if spec_json.nil? begin result = JSON.parse(spec_json) rescue JSON::ParserError return 'error' end if result['resource_pool'].nil? result else if result['vm_type'].nil? result['vm_type'] = { 'name' => result['resource_pool']['name'], 'cloud_properties' => result['resource_pool']['cloud_properties'] } end if result['resource_pool']['stemcell'] && result['stemcell'].nil? result['stemcell'] = result['resource_pool']['stemcell'] result['stemcell']['alias'] = result['resource_pool']['name'] end result.delete('resource_pool') result end end
spec=(spec)
click to toggle source
# File lib/bosh/director/models/instance.rb, line 102 def spec=(spec) begin self.spec_json = spec.nil? ? nil : JSON.generate(spec) rescue JSON::GeneratorError self.spec_json = 'error' end end
spec_p(property_path)
click to toggle source
# File lib/bosh/director/models/instance.rb, line 110 def spec_p(property_path) current_prop = spec property_path.split('.').each do |prop| return nil if current_prop.nil? || !current_prop.is_a?(Hash) current_prop = current_prop[prop] end current_prop end
stale_rendered_templates_archives()
click to toggle source
# File lib/bosh/director/models/instance.rb, line 33 def stale_rendered_templates_archives stale_archives = rendered_templates_archives_dataset if latest = latest_rendered_templates_archive stale_archives.exclude(id: latest.id) else stale_archives end end
to_s()
click to toggle source
# File lib/bosh/director/models/instance.rb, line 69 def to_s "#{self.job}/#{self.index} (#{self.uuid})" end
validate()
click to toggle source
# File lib/bosh/director/models/instance.rb, line 11 def validate validates_presence [:deployment_id, :job, :index, :state] validates_unique [:deployment_id, :job, :index] validates_integer :index validates_includes %w(started stopped detached), :state end
vm_env()
click to toggle source
# File lib/bosh/director/models/instance.rb, line 119 def vm_env return {} if spec.nil? spec['env'] || {} end
Private Instance Methods
json_encode(value)
click to toggle source
# File lib/bosh/director/models/instance.rb, line 142 def json_encode(value) value.nil? ? 'null' : JSON.generate(value) end
object_or_nil(value)
click to toggle source
# File lib/bosh/director/models/instance.rb, line 134 def object_or_nil(value) if value == 'null' || value.nil? nil else JSON.parse(value) end end