Sha256: 7abd25748faee399ffbfce7a2aa840391e848b812abaf8f7a0e7b593dd483800

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 KB

Contents

# frozen_string_literal: true

require 'rancher/api/models/machine/driver_config'

module Rancher
  module Api
    class Machine
      include Her::Model
      include Helpers::Model

      DIGITAL_OCEAN = 'digitalocean'
      VMWARE_VSPHERE = 'vmwarevsphere'

      attributes :name, :state, :amazonec2Config, :azureConfig, :description,
                 :digitaloceanConfig, :driver, :exoscaleConfig, :externalId,
                 :labels, :openstackConfig, :packetConfig, :rackspaceConfig,
                 :removed, :softlayerConfig, :virtualboxConfig,
                 :vmwarevcloudairConfig, :vmwarevsphereConfig

      has_many :hosts

      class << self
        def transitioning
          all.select { |m| m.transitioning.eql?('yes') }
        end

        def active
          where(state: 'active')
        end
      end

      def driver_config
        case driver
        when DIGITAL_OCEAN, VMWARE_VSPHERE
          DriverConfig.new(attributes["#{driver}Config"])
        end
      end

      def driver_config=(dc)
        case driver
        when DIGITAL_OCEAN, VMWARE_VSPHERE
          attributes["#{driver}Config"] = dc.attributes
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rancher-api-beta-0.8.0.pre.beta lib/rancher/api/models/machine.rb