Sha256: 4183471f799b6f6f01f9ed02eb5f441dda54fa0ae0fbbd8c74541fa1611eaf98

Contents?: true

Size: 966 Bytes

Versions: 4

Compression:

Stored size: 966 Bytes

Contents

# frozen_string_literal: true

module ForemanResourceQuota
  module ResourceOrigins
    class VMAttributesOrigin < ResourceOrigin
      def host_attribute_eager_name
        :compute_resource
      end

      def host_attribute_name
        :vm_compute_attributes
      end

      def extract_cpu_cores(param)
        return nil unless param.key?(:cpus)
        param[:cpus]
      rescue StandardError
        nil
      end

      def extract_memory_mb(param)
        return nil unless param.key?(:memory_mb)
        param[:memory_mb]
      rescue StandardError
        nil
      end

      def extract_disk_gb(param)
        return nil unless param.key?(:volumes_attributes)
        extract_volumes(param).sum do |disk|
          # key can be capactiy or size_gb
          return nil unless disk.key?(:capacity) || disk.key?(:size_gb)
          (disk[:size_gb] || disk[:capacity]).to_i
        end
      rescue StandardError
        nil
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
foreman_resource_quota-0.3.1 app/services/foreman_resource_quota/resource_origins/vm_attributes_origin.rb
foreman_resource_quota-0.3.0 app/services/foreman_resource_quota/resource_origins/vm_attributes_origin.rb
foreman_resource_quota-0.2.0 app/services/foreman_resource_quota/resource_origins/vm_attributes_origin.rb
foreman_resource_quota-0.1.0 app/services/foreman_resource_quota/resource_origins/vm_attributes_origin.rb