Sha256: 64144a1de9df74a32554506668673a5ffddfb5288732b51352cade9408030b0e

Contents?: true

Size: 1.18 KB

Versions: 39

Compression:

Stored size: 1.18 KB

Contents

require 'fog/openstack/models/model'

module Fog
  module Baremetal
    class OpenStack
      class Chassis < Fog::OpenStack::Model
        identity :uuid

        attribute :description
        attribute :uuid

        # detailed
        attribute :created_at
        attribute :updated_at
        attribute :extra

        def create
          requires :description
          merge_attributes(service.create_chassis(attributes).body)
          self
        end

        def update(patch = nil)
          requires :uuid, :description
          if patch
            merge_attributes(service.patch_chassis(uuid, patch).body)
          else
            # TODO: implement update_node method using PUT method and self.attributes
            # once it is supported by Ironic
            raise ArgumentError,
                  'You need to provide patch attribute. Ironic does not support update by hash yet, only by jsonpatch.'
          end
          self
        end

        def destroy
          requires :uuid
          service.delete_chassis(uuid)
          true
        end

        def metadata
          requires :uuid
          service.get_chassis(uuid).headers
        end
      end
    end
  end
end

Version data entries

39 entries across 37 versions & 3 rubygems

Version Path
fog-openstack-0.1.31 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.3.10 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.1.30 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.1.29 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.3.9 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.1.28 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.3.8 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.3.7 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.3.6 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.3.5 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.3.4 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.3.3 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.3.2 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.3.0 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.2.4 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.2.3 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.2.2 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.2.1 lib/fog/baremetal/openstack/models/chassis.rb
fog-openstack-0.2.0 lib/fog/baremetal/openstack/models/chassis.rb
fog-zj-0.1.28 lib/fog/baremetal/openstack/models/chassis.rb