Sha256: 0785686c70e6f7e1a2fa233035c0ee95605ff17a23f9bf67d075b027d5ad8d25
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
require 'log4r' require 'json' require 'vagrant-openstack-illuin-provider/client/http_utils' require 'vagrant-openstack-illuin-provider/client/domain' module VagrantPlugins module Openstack class CinderClient include Singleton include VagrantPlugins::Openstack::HttpUtils include VagrantPlugins::Openstack::Domain def initialize @logger = Log4r::Logger.new('vagrant_openstack::cinder') @session = VagrantPlugins::Openstack.session end def get_all_volumes(env) volumes_json = get(env, "#{@session.endpoints[:volume]}/volumes/detail") JSON.parse(volumes_json)['volumes'].map do |volume| name = volume['display_name'] name = volume['name'] if name.nil? # To be compatible with cinder api v1 and v2 case volume['attachments'].size when 0 @logger.debug "No attachment found for volume #{volume['id']}" else attachment = volume['attachments'][0] server_id = attachment['server_id'] device = attachment['device'] @logger.warn "Found #{attachment.size} attachments for volume #{volume['id']} : " if attachment.size > 1 @logger.debug "Attachment found for volume #{volume['id']} : #{attachment.to_json}" end Volume.new(volume['id'], name, volume['size'], volume['status'], volume['bootable'], server_id, device) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
vagrant-openstack-illuin-provider-0.12.0 | lib/vagrant-openstack-illuin-provider/client/cinder.rb |