class Longleaf::MetadataRecord
Metadata record for a single file
Attributes
Public Class Methods
@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
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
@return [Boolean] true if the record is deregistered
# File lib/longleaf/models/metadata_record.rb, line 37 def deregistered? !@deregistered.nil? end
@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
@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
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
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