Sha256: 46cb7c8e595329ad12bc99ea27ec95f0dd002454869d580bd28eb2a18e2890d4

Contents?: true

Size: 1.78 KB

Versions: 1

Compression:

Stored size: 1.78 KB

Contents

#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.  The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License.  You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
# License for the specific language governing permissions and limitations
# under the License.


class StorageVolume < BaseModel

  attr_accessor :created
  attr_accessor :state
  attr_accessor :capacity
  attr_accessor :instance_id
  attr_accessor :device
  attr_accessor :realm_id
  attr_accessor :actions
  attr_accessor :name
  attr_accessor :kind
  attr_accessor :description # openstack volumes have a display_description attr

  def to_hash(context)
    r = {
      :id => self.id,
      :href => context.storage_volume_url(self.id),
      :name => name,
      :description => description,
      :state => state,
      :created => created,
      :realm => { :id => realm_id, :href => context.realm_url(realm_id), :rel => :realm },
      :device => device,
      :kind => kind,
      :capacity => capacity,
    }
    r[:actions] = (actions || []).map { |a|
      { :href => context.send("#{a}_storage_volume_url", self.id), :rel => a }
    }
    if instance_id
      r[:instance] = { :id => instance_id, :href => context.instance_url(instance_id), :rel => :instance }
    else
      r[:instance] = {}
    end
    r
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
deltacloud-core-1.1.1 lib/deltacloud/models/storage_volume.rb