class Bosh::Director::Models::DirectorAttribute
Public Class Methods
find_or_create_uuid(logger)
click to toggle source
# File lib/bosh/director/models/director_attribute.rb, line 7 def self.find_or_create_uuid(logger) uuid = first(name: 'uuid') if uuid logger.info("Found uuid director attribute with value=#{uuid.value.inspect}") return uuid.value end begin uuid = create(name: 'uuid', value: SecureRandom.uuid) logger.info("Created uuid director attribute with value=#{uuid.value.inspect}") uuid.value rescue Sequel::DatabaseError => e # Database will throw an error in case of race condition # causing multiple uuid records being inserted logger.info("Failed to create uuid director attribute e=#{e.inspect}\n#{e.backtrace}") uuid = first(name: 'uuid') logger.info("Found uuid director attribute with value=#{uuid.value.inspect}") uuid.value end end
update_or_create_uuid(value, logger)
click to toggle source
# File lib/bosh/director/models/director_attribute.rb, line 34 def self.update_or_create_uuid(value, logger) if where(name: 'uuid').update(value: value) == 0 create(name: 'uuid', value: value) logger.info("Created uuid director attribute with value=#{value.inspect}") else logger.info("Updated uuid director attribute with value=#{value.inspect}") end value end
uuid()
click to toggle source
# File lib/bosh/director/models/director_attribute.rb, line 29 def self.uuid uuid = first(name: 'uuid') return uuid.value if uuid end
Public Instance Methods
validate()
click to toggle source
# File lib/bosh/director/models/director_attribute.rb, line 3 def validate validates_presence :name end