fog 1.31.0 → 1.32.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +53 -0
- data/Rakefile +5 -5
- data/fog.gemspec +6 -5
- data/lib/fog/cloudstack/models/compute/network.rb +1 -0
- data/lib/fog/openstack/compute.rb +41 -98
- data/lib/fog/openstack/core.rb +257 -118
- data/lib/fog/openstack/identity.rb +4 -0
- data/lib/fog/openstack/identity_v3.rb +10 -41
- data/lib/fog/openstack/models/baremetal/chassis_collection.rb +10 -4
- data/lib/fog/openstack/models/baremetal/drivers.rb +4 -2
- data/lib/fog/openstack/models/baremetal/nodes.rb +10 -4
- data/lib/fog/openstack/models/baremetal/ports.rb +10 -4
- data/lib/fog/openstack/models/compute/addresses.rb +4 -2
- data/lib/fog/openstack/models/compute/aggregate.rb +64 -0
- data/lib/fog/openstack/models/compute/aggregates.rb +28 -0
- data/lib/fog/openstack/models/compute/flavors.rb +5 -0
- data/lib/fog/openstack/models/compute/hosts.rb +4 -2
- data/lib/fog/openstack/models/compute/images.rb +2 -0
- data/lib/fog/openstack/models/compute/key_pairs.rb +4 -2
- data/lib/fog/openstack/models/compute/security_groups.rb +4 -2
- data/lib/fog/openstack/models/compute/servers.rb +2 -0
- data/lib/fog/openstack/models/compute/services.rb +7 -4
- data/lib/fog/openstack/models/compute/snapshots.rb +15 -2
- data/lib/fog/openstack/models/compute/volumes.rb +15 -2
- data/lib/fog/openstack/models/identity_v2/ec2_credentials.rb +6 -3
- data/lib/fog/openstack/models/identity_v2/roles.rb +5 -3
- data/lib/fog/openstack/models/identity_v2/tenants.rb +5 -3
- data/lib/fog/openstack/models/identity_v2/users.rb +7 -3
- data/lib/fog/openstack/models/identity_v3/domains.rb +7 -6
- data/lib/fog/openstack/models/identity_v3/endpoints.rb +5 -4
- data/lib/fog/openstack/models/identity_v3/groups.rb +5 -3
- data/lib/fog/openstack/models/identity_v3/os_credentials.rb +5 -3
- data/lib/fog/openstack/models/identity_v3/policies.rb +5 -3
- data/lib/fog/openstack/models/identity_v3/project.rb +1 -0
- data/lib/fog/openstack/models/identity_v3/projects.rb +7 -5
- data/lib/fog/openstack/models/identity_v3/role_assignments.rb +10 -5
- data/lib/fog/openstack/models/identity_v3/roles.rb +11 -5
- data/lib/fog/openstack/models/identity_v3/services.rb +5 -3
- data/lib/fog/openstack/models/identity_v3/users.rb +4 -2
- data/lib/fog/openstack/models/image/images.rb +10 -4
- data/lib/fog/openstack/models/network/floating_ips.rb +2 -0
- data/lib/fog/openstack/models/network/lb_health_monitors.rb +2 -0
- data/lib/fog/openstack/models/network/lb_members.rb +2 -0
- data/lib/fog/openstack/models/network/lb_pools.rb +2 -0
- data/lib/fog/openstack/models/network/lb_vips.rb +2 -0
- data/lib/fog/openstack/models/network/networks.rb +2 -0
- data/lib/fog/openstack/models/network/port.rb +1 -0
- data/lib/fog/openstack/models/network/ports.rb +2 -0
- data/lib/fog/openstack/models/network/routers.rb +2 -0
- data/lib/fog/openstack/models/network/security_group_rules.rb +2 -0
- data/lib/fog/openstack/models/network/security_groups.rb +2 -0
- data/lib/fog/openstack/models/network/subnets.rb +2 -0
- data/lib/fog/openstack/models/orchestration/events.rb +10 -6
- data/lib/fog/openstack/models/orchestration/resources.rb +4 -2
- data/lib/fog/openstack/models/orchestration/stack.rb +1 -1
- data/lib/fog/openstack/models/orchestration/stacks.rb +9 -1
- data/lib/fog/openstack/models/planning/plans.rb +4 -2
- data/lib/fog/openstack/models/planning/roles.rb +5 -2
- data/lib/fog/openstack/models/storage/directories.rb +4 -2
- data/lib/fog/openstack/models/storage/files.rb +2 -0
- data/lib/fog/openstack/models/volume/volume.rb +1 -0
- data/lib/fog/openstack/models/volume/volume_types.rb +2 -0
- data/lib/fog/openstack/models/volume/volumes.rb +13 -2
- data/lib/fog/openstack/network.rb +18 -97
- data/lib/fog/openstack/orchestration.rb +2 -0
- data/lib/fog/openstack/requests/baremetal/list_chassis.rb +2 -8
- data/lib/fog/openstack/requests/baremetal/list_chassis_detailed.rb +3 -9
- data/lib/fog/openstack/requests/baremetal/list_drivers.rb +4 -3
- data/lib/fog/openstack/requests/baremetal/list_nodes.rb +3 -9
- data/lib/fog/openstack/requests/baremetal/list_nodes_detailed.rb +3 -9
- data/lib/fog/openstack/requests/baremetal/list_ports.rb +3 -9
- data/lib/fog/openstack/requests/baremetal/list_ports_detailed.rb +3 -9
- data/lib/fog/openstack/requests/compute/add_aggregate_host.rb +30 -0
- data/lib/fog/openstack/requests/compute/create_aggregate.rb +42 -0
- data/lib/fog/openstack/requests/compute/delete_aggregate.rb +28 -0
- data/lib/fog/openstack/requests/compute/get_aggregate.rb +26 -0
- data/lib/fog/openstack/requests/compute/list_aggregates.rb +36 -0
- data/lib/fog/openstack/requests/compute/list_all_addresses.rb +4 -3
- data/lib/fog/openstack/requests/compute/list_flavors.rb +6 -5
- data/lib/fog/openstack/requests/compute/list_hosts.rb +4 -3
- data/lib/fog/openstack/requests/compute/list_key_pairs.rb +4 -3
- data/lib/fog/openstack/requests/compute/list_security_groups.rb +15 -2
- data/lib/fog/openstack/requests/compute/list_snapshots.rb +18 -4
- data/lib/fog/openstack/requests/compute/list_snapshots_detail.rb +27 -0
- data/lib/fog/openstack/requests/compute/list_volumes.rb +18 -4
- data/lib/fog/openstack/requests/compute/list_volumes_detail.rb +25 -0
- data/lib/fog/openstack/requests/compute/remove_aggregate_host.rb +30 -0
- data/lib/fog/openstack/requests/compute/update_aggregate.rb +37 -0
- data/lib/fog/openstack/requests/compute/update_aggregate_metadata.rb +30 -0
- data/lib/fog/openstack/requests/identity_v2/list_ec2_credentials.rb +23 -7
- data/lib/fog/openstack/requests/identity_v2/list_roles.rb +5 -4
- data/lib/fog/openstack/requests/identity_v2/list_tenants.rb +14 -8
- data/lib/fog/openstack/requests/identity_v2/list_users.rb +16 -4
- data/lib/fog/openstack/requests/identity_v3/auth_domains.rb +2 -7
- data/lib/fog/openstack/requests/identity_v3/auth_projects.rb +6 -11
- data/lib/fog/openstack/requests/identity_v3/list_domains.rb +7 -14
- data/lib/fog/openstack/requests/identity_v3/list_endpoints.rb +7 -14
- data/lib/fog/openstack/requests/identity_v3/list_group_users.rb +5 -13
- data/lib/fog/openstack/requests/identity_v3/list_groups.rb +14 -24
- data/lib/fog/openstack/requests/identity_v3/list_os_credentials.rb +7 -12
- data/lib/fog/openstack/requests/identity_v3/list_policies.rb +7 -11
- data/lib/fog/openstack/requests/identity_v3/list_projects.rb +14 -25
- data/lib/fog/openstack/requests/identity_v3/list_role_assignments.rb +21 -17
- data/lib/fog/openstack/requests/identity_v3/list_roles.rb +7 -25
- data/lib/fog/openstack/requests/identity_v3/list_services.rb +7 -13
- data/lib/fog/openstack/requests/identity_v3/list_users.rb +7 -15
- data/lib/fog/openstack/requests/image/list_public_images.rb +4 -3
- data/lib/fog/openstack/requests/image/list_public_images_detailed.rb +9 -6
- data/lib/fog/openstack/requests/network/create_port.rb +12 -11
- data/lib/fog/openstack/requests/network/create_subnet.rb +7 -7
- data/lib/fog/openstack/requests/network/get_port.rb +1 -0
- data/lib/fog/openstack/requests/network/update_port.rb +7 -6
- data/lib/fog/openstack/requests/orchestration/list_events.rb +46 -0
- data/lib/fog/openstack/requests/orchestration/list_resource_events.rb +7 -2
- data/lib/fog/openstack/requests/orchestration/list_resource_types.rb +3 -2
- data/lib/fog/openstack/requests/orchestration/list_resources.rb +27 -4
- data/lib/fog/openstack/requests/orchestration/list_stack_data.rb +2 -2
- data/lib/fog/openstack/requests/orchestration/list_stack_data_detailed.rb +49 -0
- data/lib/fog/openstack/requests/orchestration/list_stack_events.rb +6 -2
- data/lib/fog/openstack/requests/planning/list_plans.rb +4 -3
- data/lib/fog/openstack/requests/planning/list_roles.rb +3 -9
- data/lib/fog/openstack/requests/volume/create_volume.rb +2 -1
- data/lib/fog/openstack/requests/volume/list_snapshots.rb +16 -3
- data/lib/fog/openstack/requests/volume/list_snapshots_detailed.rb +27 -0
- data/lib/fog/openstack/requests/volume/list_volume_types.rb +6 -6
- data/lib/fog/openstack/requests/volume/list_volumes.rb +20 -7
- data/lib/fog/openstack/requests/volume/list_volumes_detailed.rb +49 -0
- data/lib/fog/openstack/volume.rb +1 -0
- data/lib/fog/ovirt/models/compute/server.rb +1 -0
- data/lib/fog/ovirt/models/compute/template.rb +1 -0
- data/lib/fog/rackspace/docs/queues.md +2 -2
- data/lib/fog/rackspace/models/block_storage/snapshot.rb +5 -1
- data/lib/fog/version.rb +1 -1
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +1 -1
- data/lib/tasks/changelog_task.rb +1 -0
- data/spec/fog/openstack/identity_v3/authv3_a.yml +55 -35
- data/spec/fog/openstack/identity_v3/authv3_b.yml +55 -35
- data/spec/fog/openstack/identity_v3/authv3_c.yml +159 -33
- data/spec/fog/openstack/identity_v3/authv3_project.yml +79 -35
- data/spec/fog/openstack/identity_v3/authv3_token.yml +377 -76
- data/spec/fog/openstack/identity_v3/authv3_unscoped.yml +298 -155
- data/spec/fog/openstack/identity_v3/authv3_unscoped_reauth.yml +371 -0
- data/spec/fog/openstack/identity_v3/idv3.yml +456 -41
- data/spec/fog/openstack/identity_v3/idv3_credential.yml +36 -30
- data/spec/fog/openstack/identity_v3/idv3_credential_crud.yml +223 -190
- data/spec/fog/openstack/identity_v3/idv3_domain.yml +64 -58
- data/spec/fog/openstack/identity_v3/idv3_domain_crud.yml +176 -393
- data/spec/fog/openstack/identity_v3/idv3_domain_group_roles_mutation.yml +277 -379
- data/spec/fog/openstack/identity_v3/idv3_domain_roles_mutation.yml +177 -204
- data/spec/fog/openstack/identity_v3/idv3_endpoint.yml +492 -174
- data/spec/fog/openstack/identity_v3/idv3_endpoints_crud.yml +669 -435
- data/spec/fog/openstack/identity_v3/idv3_group_crud_mutation.yml +378 -298
- data/spec/fog/openstack/identity_v3/idv3_other_region.yml +187 -0
- data/spec/fog/openstack/identity_v3/idv3_policy.yml +54 -46
- data/spec/fog/openstack/identity_v3/idv3_policy_crud.yml +137 -117
- data/spec/fog/openstack/identity_v3/idv3_project.yml +116 -86
- data/spec/fog/openstack/identity_v3/idv3_project_crud.yml +179 -387
- data/spec/fog/openstack/identity_v3/idv3_project_group_user_roles_mutation.yml +415 -556
- data/spec/fog/openstack/identity_v3/idv3_role.yml +108 -74
- data/spec/fog/openstack/identity_v3/idv3_role_crud.yml +160 -368
- data/spec/fog/openstack/identity_v3/idv3_service.yml +156 -94
- data/spec/fog/openstack/identity_v3/idv3_services_crud.yml +250 -306
- data/spec/fog/openstack/identity_v3/idv3_token.yml +195 -101
- data/spec/fog/openstack/identity_v3/idv3_user_crud.yml +276 -193
- data/spec/fog/openstack/identity_v3/idv3_users.yml +149 -219
- data/spec/fog/openstack/identity_v3_spec.rb +502 -474
- data/spec/fog/openstack/volume/volume_common_setup.yml +76 -0
- data/spec/fog/openstack/volume/volume_crud.yml +561 -0
- data/spec/fog/openstack/volume/volume_type_read.yml +120 -0
- data/spec/fog/openstack/volume_spec.rb +165 -0
- data/tests/openstack/requests/compute/aggregate_tests.rb +59 -0
- data/tests/openstack/requests/network/port_tests.rb +12 -11
- data/tests/openstack/requests/orchestration/stack_tests.rb +25 -0
- metadata +56 -14
- data/spec/fog/openstack/identity_v3/idv2_unscoped_token_v3.yml +0 -467
@@ -19,6 +19,8 @@ module Fog
|
|
19
19
|
load(service.list_security_group_rules(filters).body['security_group_rules'])
|
20
20
|
end
|
21
21
|
|
22
|
+
alias_method :summary, :all
|
23
|
+
|
22
24
|
def get(sec_group_rule_id)
|
23
25
|
if sec_group_rule = service.get_security_group_rule(sec_group_rule_id).body['security_group_rule']
|
24
26
|
new(sec_group_rule)
|
@@ -19,6 +19,8 @@ module Fog
|
|
19
19
|
load(service.list_security_groups(filters).body['security_groups'])
|
20
20
|
end
|
21
21
|
|
22
|
+
alias_method :summary, :all
|
23
|
+
|
22
24
|
def get(security_group_id)
|
23
25
|
if security_group = service.get_security_group(security_group_id).body['security_group']
|
24
26
|
new(security_group)
|
@@ -6,16 +6,20 @@ module Fog
|
|
6
6
|
class Events < Fog::Collection
|
7
7
|
model Fog::Orchestration::OpenStack::Event
|
8
8
|
|
9
|
-
def all(
|
10
|
-
data = if
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
9
|
+
def all(options = {}, options_deprecated = {})
|
10
|
+
data = if options.is_a?(Stack)
|
11
|
+
service.list_stack_events(options, options_deprecated).body['events']
|
12
|
+
elsif options.is_a?(Hash)
|
13
|
+
service.list_events(options).body['events']
|
14
|
+
else
|
15
|
+
service.list_resource_events(options.stack, options, options_deprecated).body['events']
|
16
|
+
end
|
15
17
|
|
16
18
|
load data
|
17
19
|
end
|
18
20
|
|
21
|
+
alias_method :summary, :all
|
22
|
+
|
19
23
|
def get(stack, resource, event_id)
|
20
24
|
data = service.show_event_details(stack, resource, event_id).body['event']
|
21
25
|
new(data)
|
@@ -10,11 +10,13 @@ module Fog
|
|
10
10
|
service.list_resource_types.body['resource_types'].sort
|
11
11
|
end
|
12
12
|
|
13
|
-
def all(
|
14
|
-
data = service.list_resources(
|
13
|
+
def all(options = {}, deprecated_options = {})
|
14
|
+
data = service.list_resources(options, deprecated_options).body['resources']
|
15
15
|
load(data)
|
16
16
|
end
|
17
17
|
|
18
|
+
alias_method :summary, :all
|
19
|
+
|
18
20
|
def get(resource_name, stack=nil)
|
19
21
|
stack = self.first.stack if stack.nil?
|
20
22
|
data = service.show_resource_data(stack.stack_name, stack.id, resource_name).body['resource']
|
@@ -7,7 +7,7 @@ module Fog
|
|
7
7
|
|
8
8
|
%w{capabilities description disable_rollback links notification_topics outputs parameters
|
9
9
|
stack_name stack_status stack_status_reason template_description timeout_mins parent
|
10
|
-
creation_time updated_time}.each do |a|
|
10
|
+
creation_time updated_time stack_user_project_id stack_owner}.each do |a|
|
11
11
|
attribute a.to_sym
|
12
12
|
end
|
13
13
|
|
@@ -6,7 +6,15 @@ module Fog
|
|
6
6
|
class Stacks < Fog::Collection
|
7
7
|
model Fog::Orchestration::OpenStack::Stack
|
8
8
|
|
9
|
-
def all(options={})
|
9
|
+
def all(options = {})
|
10
|
+
# TODO(lsmola) we can uncomment this when https://bugs.launchpad.net/heat/+bug/1468318 is fixed, till then
|
11
|
+
# we will use non detailed list
|
12
|
+
# data = service.list_stack_data_detailed(options).body['stacks']
|
13
|
+
data = service.list_stack_data(options).body['stacks']
|
14
|
+
load(data)
|
15
|
+
end
|
16
|
+
|
17
|
+
def summary(options = {})
|
10
18
|
data = service.list_stack_data(options).body['stacks']
|
11
19
|
load(data)
|
12
20
|
end
|
@@ -7,10 +7,12 @@ module Fog
|
|
7
7
|
class Plans < Fog::Collection
|
8
8
|
model Fog::Openstack::Planning::Plan
|
9
9
|
|
10
|
-
def all
|
11
|
-
load(service.list_plans.body)
|
10
|
+
def all(options = {})
|
11
|
+
load(service.list_plans(options).body)
|
12
12
|
end
|
13
13
|
|
14
|
+
alias_method :summary, :all
|
15
|
+
|
14
16
|
def find_by_uuid(plan_uuid)
|
15
17
|
new(service.get_plan(plan_uuid).body)
|
16
18
|
end
|
@@ -7,9 +7,12 @@ module Fog
|
|
7
7
|
class Roles < Fog::Collection
|
8
8
|
model Fog::Openstack::Planning::Role
|
9
9
|
|
10
|
-
def all
|
11
|
-
load(service.list_roles.body)
|
10
|
+
def all(options = {})
|
11
|
+
load(service.list_roles(options).body)
|
12
12
|
end
|
13
|
+
|
14
|
+
alias_method :summary, :all
|
15
|
+
|
13
16
|
end
|
14
17
|
end
|
15
18
|
end
|
@@ -7,11 +7,13 @@ module Fog
|
|
7
7
|
class Directories < Fog::Collection
|
8
8
|
model Fog::Storage::OpenStack::Directory
|
9
9
|
|
10
|
-
def all
|
11
|
-
data = service.get_containers.body
|
10
|
+
def all(options = {})
|
11
|
+
data = service.get_containers(options).body
|
12
12
|
load(data)
|
13
13
|
end
|
14
14
|
|
15
|
+
alias_method :summary, :all
|
16
|
+
|
15
17
|
def get(key, options = {})
|
16
18
|
data = service.get_container(key, options)
|
17
19
|
directory = new(:key => key)
|
@@ -7,11 +7,22 @@ module Fog
|
|
7
7
|
class Volumes < Fog::Collection
|
8
8
|
model Fog::Volume::OpenStack::Volume
|
9
9
|
|
10
|
-
def all(options = {
|
10
|
+
def all(options = {})
|
11
11
|
# the parameter has been "detailed = true" before. Make sure we are
|
12
12
|
# backwards compatible
|
13
13
|
detailed = options.is_a?(Hash) ? options.delete(:detailed) : options
|
14
|
-
|
14
|
+
if detailed.nil? || detailed
|
15
|
+
# This method gives details by default, unless false or {:detailed => false} is passed
|
16
|
+
load(service.list_volumes_detailed(options).body['volumes'])
|
17
|
+
else
|
18
|
+
Fog::Logger.deprecation('Calling OpenStack[:volume].volumes.all(false) or volumes.all(:detailed => false) '\
|
19
|
+
' is deprecated, call .volumes.summary instead')
|
20
|
+
load(service.list_volumes(options).body['volumes'])
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def summary(options = {})
|
25
|
+
load(service.list_volumes(options).body['volumes'])
|
15
26
|
end
|
16
27
|
|
17
28
|
def get(volume_id)
|
@@ -204,10 +204,13 @@ module Fog
|
|
204
204
|
@data = nil
|
205
205
|
end
|
206
206
|
|
207
|
+
include Fog::OpenStack::Core
|
208
|
+
|
207
209
|
def initialize(options={})
|
208
|
-
@
|
209
|
-
@
|
210
|
-
|
210
|
+
@auth_token = Fog::Mock.random_base64(64)
|
211
|
+
@auth_token_expiration = (Time.now.utc + 86400).iso8601
|
212
|
+
|
213
|
+
initialize_identity options
|
211
214
|
end
|
212
215
|
|
213
216
|
def data
|
@@ -218,71 +221,35 @@ module Fog
|
|
218
221
|
self.class.data.delete("#{@openstack_username}-#{@openstack_tenant}")
|
219
222
|
end
|
220
223
|
|
221
|
-
def credentials
|
222
|
-
{ :provider => 'openstack',
|
223
|
-
:openstack_auth_url => @openstack_auth_uri.to_s,
|
224
|
-
:openstack_auth_token => @auth_token,
|
225
|
-
:openstack_management_url => @openstack_management_url }
|
226
|
-
end
|
227
224
|
end
|
228
225
|
|
229
226
|
class Real
|
230
|
-
|
231
|
-
|
232
|
-
attr_reader :openstack_user_domain
|
233
|
-
attr_reader :openstack_project_domain
|
227
|
+
|
228
|
+
include Fog::OpenStack::Core
|
234
229
|
|
235
230
|
def initialize(options={})
|
236
|
-
@openstack_auth_token = options[:openstack_auth_token]
|
237
|
-
|
238
|
-
unless @openstack_auth_token
|
239
|
-
missing_credentials = Array.new
|
240
|
-
@openstack_api_key = options[:openstack_api_key]
|
241
|
-
@openstack_username = options[:openstack_username]
|
242
|
-
@openstack_user_domain = options[:openstack_user_domain] || options[:openstack_domain]
|
243
|
-
@openstack_project_domain = options[:openstack_project_domain] || options[:openstack_domain] || 'Default'
|
244
|
-
|
245
|
-
missing_credentials << :openstack_api_key unless @openstack_api_key
|
246
|
-
missing_credentials << :openstack_username unless @openstack_username
|
247
|
-
raise ArgumentError, "Missing required arguments: #{missing_credentials.join(', ')}" unless missing_credentials.empty?
|
248
|
-
end
|
249
231
|
|
250
|
-
|
251
|
-
|
252
|
-
@openstack_user_domain = options[:openstack_user_domain] || options[:openstack_domain]
|
253
|
-
@openstack_project_domain = options[:openstack_project_domain] || options[:openstack_domain] || 'Default'
|
254
|
-
@openstack_auth_uri = URI.parse(options[:openstack_auth_url])
|
255
|
-
@openstack_management_url = options[:openstack_management_url]
|
256
|
-
@openstack_must_reauthenticate = false
|
232
|
+
initialize_identity options
|
233
|
+
|
257
234
|
@openstack_service_type = options[:openstack_service_type] || ['network']
|
258
235
|
@openstack_service_name = options[:openstack_service_name]
|
259
|
-
@openstack_endpoint_type = options[:openstack_endpoint_type] || 'publicURL'
|
260
|
-
@openstack_region = options[:openstack_region]
|
261
236
|
|
262
237
|
@connection_options = options[:connection_options] || {}
|
263
238
|
|
264
|
-
@current_user = options[:current_user]
|
265
|
-
@current_tenant = options[:current_tenant]
|
266
|
-
|
267
239
|
authenticate
|
268
240
|
|
241
|
+
@path.sub!(/\/$/, '')
|
242
|
+
unless @path.match(SUPPORTED_VERSIONS)
|
243
|
+
@path = "/" + Fog::OpenStack.get_supported_version(SUPPORTED_VERSIONS,
|
244
|
+
@openstack_management_uri,
|
245
|
+
@auth_token,
|
246
|
+
@connection_options)
|
247
|
+
end
|
248
|
+
|
269
249
|
@persistent = options[:persistent] || false
|
270
250
|
@connection = Fog::Core::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
|
271
251
|
end
|
272
252
|
|
273
|
-
def credentials
|
274
|
-
{ :provider => 'openstack',
|
275
|
-
:openstack_tenant_id => @openstack_tenant_id,
|
276
|
-
:openstack_user_domain => @openstack_user_domain,
|
277
|
-
:openstack_project_domain => @openstack_project_domain,
|
278
|
-
:openstack_auth_url => @openstack_auth_uri.to_s,
|
279
|
-
:openstack_auth_token => @auth_token,
|
280
|
-
:openstack_management_url => @openstack_management_url,
|
281
|
-
:current_user => @current_user,
|
282
|
-
:current_tenant => @current_tenant,
|
283
|
-
:openstack_region => @openstack_region }
|
284
|
-
end
|
285
|
-
|
286
253
|
def reload
|
287
254
|
@connection.reset
|
288
255
|
end
|
@@ -319,52 +286,6 @@ module Fog
|
|
319
286
|
response
|
320
287
|
end
|
321
288
|
|
322
|
-
private
|
323
|
-
|
324
|
-
def authenticate
|
325
|
-
if !@openstack_management_url || @openstack_must_reauthenticate
|
326
|
-
options = {
|
327
|
-
:openstack_tenant => @openstack_tenant,
|
328
|
-
:openstack_tenant_id => @openstack_tenant_id,
|
329
|
-
:openstack_api_key => @openstack_api_key,
|
330
|
-
:openstack_username => @openstack_username,
|
331
|
-
:openstack_user_domain => @openstack_user_domain,
|
332
|
-
:openstack_project_domain => @openstack_project_domain,
|
333
|
-
:openstack_auth_uri => @openstack_auth_uri,
|
334
|
-
:openstack_auth_token => @openstack_must_reauthenticate ? nil : @openstack_auth_token,
|
335
|
-
:openstack_service_type => @openstack_service_type,
|
336
|
-
:openstack_service_name => @openstack_service_name,
|
337
|
-
:openstack_endpoint_type => @openstack_endpoint_type,
|
338
|
-
:openstack_region => @openstack_region
|
339
|
-
}
|
340
|
-
|
341
|
-
credentials = Fog::OpenStack.authenticate(options, @connection_options)
|
342
|
-
|
343
|
-
@current_user = credentials[:user]
|
344
|
-
@current_tenant = credentials[:tenant]
|
345
|
-
|
346
|
-
@openstack_must_reauthenticate = false
|
347
|
-
@auth_token = credentials[:token]
|
348
|
-
@openstack_management_url = credentials[:server_management_url]
|
349
|
-
uri = URI.parse(@openstack_management_url)
|
350
|
-
else
|
351
|
-
@auth_token = @openstack_auth_token
|
352
|
-
uri = URI.parse(@openstack_management_url)
|
353
|
-
end
|
354
|
-
|
355
|
-
@host = uri.host
|
356
|
-
@path = uri.path
|
357
|
-
@path.sub!(/\/$/, '')
|
358
|
-
unless @path.match(SUPPORTED_VERSIONS)
|
359
|
-
@path = "/" + Fog::OpenStack.get_supported_version(SUPPORTED_VERSIONS,
|
360
|
-
uri,
|
361
|
-
@auth_token,
|
362
|
-
@connection_options)
|
363
|
-
end
|
364
|
-
@port = uri.port
|
365
|
-
@scheme = uri.scheme
|
366
|
-
true
|
367
|
-
end
|
368
289
|
end
|
369
290
|
end
|
370
291
|
end
|
@@ -32,10 +32,12 @@ module Fog
|
|
32
32
|
request :create_stack
|
33
33
|
request :delete_stack
|
34
34
|
request :get_stack_template
|
35
|
+
request :list_events
|
35
36
|
request :list_resource_events
|
36
37
|
request :list_resource_types
|
37
38
|
request :list_resources
|
38
39
|
request :list_stack_data
|
40
|
+
request :list_stack_data_detailed
|
39
41
|
request :list_stack_events
|
40
42
|
request :preview_stack
|
41
43
|
request :show_event_details
|
@@ -2,18 +2,12 @@ module Fog
|
|
2
2
|
module Baremetal
|
3
3
|
class OpenStack
|
4
4
|
class Real
|
5
|
-
def list_chassis(
|
6
|
-
if parameters
|
7
|
-
query = parameters.each { |k, v| parameters[k] = URI::encode(v) }
|
8
|
-
else
|
9
|
-
query = {}
|
10
|
-
end
|
11
|
-
|
5
|
+
def list_chassis(options = {})
|
12
6
|
request(
|
13
7
|
:expects => [200, 204],
|
14
8
|
:method => 'GET',
|
15
9
|
:path => 'chassis',
|
16
|
-
:query =>
|
10
|
+
:query => options
|
17
11
|
)
|
18
12
|
end
|
19
13
|
end # class Real
|
@@ -2,24 +2,18 @@ module Fog
|
|
2
2
|
module Baremetal
|
3
3
|
class OpenStack
|
4
4
|
class Real
|
5
|
-
def list_chassis_detailed(
|
6
|
-
if parameters
|
7
|
-
query = parameters.each { |k, v| parameters[k] = URI::encode(v) }
|
8
|
-
else
|
9
|
-
query = {}
|
10
|
-
end
|
11
|
-
|
5
|
+
def list_chassis_detailed(options = {})
|
12
6
|
request(
|
13
7
|
:expects => [200, 204],
|
14
8
|
:method => 'GET',
|
15
9
|
:path => 'chassis/detail',
|
16
|
-
:query =>
|
10
|
+
:query => options
|
17
11
|
)
|
18
12
|
end
|
19
13
|
end # class Real
|
20
14
|
|
21
15
|
class Mock
|
22
|
-
def list_chassis_detailed(
|
16
|
+
def list_chassis_detailed(options = {})
|
23
17
|
response = Excon::Response.new
|
24
18
|
response.status = [200, 204][rand(1)]
|
25
19
|
response.body = { "chassis" => self.data[:chassis_collection] }
|
@@ -2,17 +2,18 @@ module Fog
|
|
2
2
|
module Baremetal
|
3
3
|
class OpenStack
|
4
4
|
class Real
|
5
|
-
def list_drivers
|
5
|
+
def list_drivers(options = {})
|
6
6
|
request(
|
7
7
|
:expects => [200, 204],
|
8
8
|
:method => 'GET',
|
9
|
-
:path => 'drivers'
|
9
|
+
:path => 'drivers',
|
10
|
+
:query => options
|
10
11
|
)
|
11
12
|
end
|
12
13
|
end # class Real
|
13
14
|
|
14
15
|
class Mock
|
15
|
-
def list_drivers
|
16
|
+
def list_drivers(options = {})
|
16
17
|
response = Excon::Response.new
|
17
18
|
response.status = [200, 204][rand(1)]
|
18
19
|
response.body = { "drivers" => self.data[:drivers] }
|
@@ -2,24 +2,18 @@ module Fog
|
|
2
2
|
module Baremetal
|
3
3
|
class OpenStack
|
4
4
|
class Real
|
5
|
-
def list_nodes(
|
6
|
-
if parameters
|
7
|
-
query = parameters.each { |k, v| parameters[k] = URI::encode(v) }
|
8
|
-
else
|
9
|
-
query = {}
|
10
|
-
end
|
11
|
-
|
5
|
+
def list_nodes(options = {})
|
12
6
|
request(
|
13
7
|
:expects => [200, 204],
|
14
8
|
:method => 'GET',
|
15
9
|
:path => 'nodes',
|
16
|
-
:query =>
|
10
|
+
:query => options
|
17
11
|
)
|
18
12
|
end
|
19
13
|
end # class Real
|
20
14
|
|
21
15
|
class Mock
|
22
|
-
def list_nodes(
|
16
|
+
def list_nodes(options = {})
|
23
17
|
response = Excon::Response.new
|
24
18
|
response.status = [200, 204][rand(1)]
|
25
19
|
response.body = {
|