class Longleaf::MetadataRecord

Metadata record for a single file

Attributes

checksums[R]
deregistered[RW]
file_size[RW]
last_modified[RW]
physical_path[RW]
properties[R]
registered[R]

Public Class Methods

new(properties: nil, services: nil, deregistered: nil, registered: nil, checksums: nil, file_size: nil, last_modified: nil, physical_path: nil) click to toggle source

@param properties [Hash] initial data properties for this record @param services [Hash] initial service property tree @param deregistered [String] deregistered timestamp @param registered [String] registered timestamp @param checksums [Hash] hash of checksum values @param file_size [Integer] size of file in bytes @param last_modified [String] iso8601 representation of the last modified date of file @param physical_path [String] physical path where the file is located

# File lib/longleaf/models/metadata_record.rb, line 23
def initialize(properties: nil, services: nil, deregistered: nil, registered: nil, checksums: nil,
      file_size: nil, last_modified: nil, physical_path: nil)
  @properties = properties || Hash.new
  @registered = registered
  @deregistered = deregistered
  @checksums = CaseInsensitiveHash.new
  @checksums.merge!(checksums) unless checksums.nil?
  @services = services || Hash.new
  @file_size = file_size
  @last_modified = last_modified
  @physical_path = physical_path
end

Public Instance Methods

add_service(name, service = ServiceRecord.new) click to toggle source

Adds a service to this record

@param name [String] identifier for the service being added @param service [ServiceRecord] properties for populating the new service @return [ServiceRecord] the service added

# File lib/longleaf/models/metadata_record.rb, line 46
def add_service(name, service = ServiceRecord.new)
  raise ArgumentError.new("Value must be a ServiceRecord object when adding a service") unless service.class == Longleaf::ServiceRecord
  raise IndexError.new("Service with name '#{name}' already exists") if @services.key?(name)

  @services[name] = service
end
deregistered?() click to toggle source

@return [Boolean] true if the record is deregistered

# File lib/longleaf/models/metadata_record.rb, line 37
def deregistered?
  !@deregistered.nil?
end
list_services() click to toggle source

@return [Array<String>] a list of name identifiers for services registered to this record

# File lib/longleaf/models/metadata_record.rb, line 80
def list_services
  @services.keys
end
service(name) click to toggle source

@param name [String] name identifier of the service to retrieve @return [ServiceRecord] the ServiceRecord for the service identified by name, or nil

# File lib/longleaf/models/metadata_record.rb, line 75
def service(name)
  @services[name]
end
update_service_as_failed(service_name) click to toggle source

Updates details of service record as if the service had encountered a failure during execution. @param service_name [String] name of the service run @return [ServiceRecord] the service record updated

# File lib/longleaf/models/metadata_record.rb, line 67
def update_service_as_failed(service_name)
  service_rec = service(service_name) || add_service(service_name)
  service_rec.failure_timestamp = ServiceDateHelper.formatted_timestamp
  service_rec
end
update_service_as_performed(service_name) click to toggle source

Updates details of service record as if the service had been executed. @param service_name [String] name of the service run @return [ServiceRecord] the service record updated

# File lib/longleaf/models/metadata_record.rb, line 56
def update_service_as_performed(service_name)
  service_rec = service(service_name) || add_service(service_name)
  service_rec.run_needed = false
  service_rec.timestamp = ServiceDateHelper.formatted_timestamp
  service_rec
end