Method: VagrantPlugins::Openstack::ConfigResolver#resolve_volume_boot

Defined in:
lib/vagrant-openstack-provider/config_resolver.rb

#resolve_volume_boot(env) ⇒ Object



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/vagrant-openstack-provider/config_resolver.rb', line 75

def resolve_volume_boot(env)
  config = env[:machine].provider_config
  return nil if config.volume_boot.nil?
  return resolve_volume_without_volume_service(env, config.volume_boot, 'vda') unless env[:openstack_client].session.endpoints.key? :volume

  volume_list = env[:openstack_client].cinder.get_all_volumes(env)
  volume_ids = volume_list.map(&:id)

  @logger.debug(volume_list)

  volume = resolve_volume(config.volume_boot, volume_list, volume_ids)

  device = (volume[:device].nil?) ? 'vda' : volume[:device]
  size = (volume[:size].nil?) ? nil : volume[:size]
  delete_on_destroy = (volume[:delete_on_destroy].nil?) ? nil : volume[:delete_on_destroy]

  image = resolve_volume_boot_image(env) unless volume[:image].nil?
  image_id = (image.nil?) ? nil : image.id
  if image.nil?
    return { id: volume[:id], device: device }
  else
    { image: image_id, device: device, size: size, delete_on_destroy: delete_on_destroy }
  end
end