fog 1.30.0 → 1.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +39 -0
- data/CONTRIBUTORS.md +73 -1
- data/LICENSE.md +1 -1
- data/Rakefile +10 -8
- data/fog.gemspec +6 -3
- data/lib/fog/cloudstack/models/compute/server.rb +2 -0
- data/lib/fog/openstack.rb +1 -1
- data/lib/fog/openstack/baremetal.rb +5 -5
- data/lib/fog/openstack/compute.rb +20 -9
- data/lib/fog/openstack/core.rb +53 -14
- data/lib/fog/openstack/examples/compute/basics.rb +3 -1
- data/lib/fog/openstack/identity.rb +29 -254
- data/lib/fog/openstack/identity_v2.rb +264 -0
- data/lib/fog/openstack/identity_v3.rb +249 -0
- data/lib/fog/openstack/image.rb +1 -1
- data/lib/fog/openstack/metering.rb +1 -1
- data/lib/fog/openstack/models/baremetal/node.rb +22 -0
- data/lib/fog/openstack/models/compute/flavor.rb +13 -0
- data/lib/fog/openstack/models/compute/service.rb +48 -0
- data/lib/fog/openstack/models/compute/services.rb +20 -0
- data/lib/fog/openstack/models/identity_v2/ec2_credential.rb +45 -0
- data/lib/fog/openstack/models/identity_v2/ec2_credentials.rb +55 -0
- data/lib/fog/openstack/models/identity_v2/role.rb +52 -0
- data/lib/fog/openstack/models/identity_v2/roles.rb +22 -0
- data/lib/fog/openstack/models/identity_v2/tenant.rb +64 -0
- data/lib/fog/openstack/models/identity_v2/tenants.rb +31 -0
- data/lib/fog/openstack/models/identity_v2/user.rb +71 -0
- data/lib/fog/openstack/models/identity_v2/users.rb +43 -0
- data/lib/fog/openstack/models/identity_v3/domain.rb +47 -0
- data/lib/fog/openstack/models/identity_v3/domains.rb +36 -0
- data/lib/fog/openstack/models/identity_v3/endpoint.rb +50 -0
- data/lib/fog/openstack/models/identity_v3/endpoints.rb +27 -0
- data/lib/fog/openstack/models/identity_v3/group.rb +96 -0
- data/lib/fog/openstack/models/identity_v3/groups.rb +31 -0
- data/lib/fog/openstack/models/identity_v3/os_credential.rb +73 -0
- data/lib/fog/openstack/models/identity_v3/os_credentials.rb +31 -0
- data/lib/fog/openstack/models/identity_v3/policies.rb +31 -0
- data/lib/fog/openstack/models/identity_v3/policy.rb +46 -0
- data/lib/fog/openstack/models/identity_v3/project.rb +98 -0
- data/lib/fog/openstack/models/identity_v3/projects.rb +31 -0
- data/lib/fog/openstack/models/identity_v3/role.rb +45 -0
- data/lib/fog/openstack/models/identity_v3/role_assignment.rb +22 -0
- data/lib/fog/openstack/models/identity_v3/role_assignments.rb +22 -0
- data/lib/fog/openstack/models/identity_v3/roles.rb +35 -0
- data/lib/fog/openstack/models/identity_v3/service.rb +47 -0
- data/lib/fog/openstack/models/identity_v3/services.rb +31 -0
- data/lib/fog/openstack/models/identity_v3/token.rb +26 -0
- data/lib/fog/openstack/models/identity_v3/tokens.rb +40 -0
- data/lib/fog/openstack/models/identity_v3/user.rb +87 -0
- data/lib/fog/openstack/models/identity_v3/users.rb +35 -0
- data/lib/fog/openstack/network.rb +2 -9
- data/lib/fog/openstack/orchestration.rb +1 -6
- data/lib/fog/openstack/planning.rb +1 -1
- data/lib/fog/openstack/requests/baremetal/set_node_maintenance.rb +36 -0
- data/lib/fog/openstack/requests/baremetal/set_node_power_state.rb +35 -0
- data/lib/fog/openstack/requests/baremetal/set_node_provision_state.rb +38 -0
- data/lib/fog/openstack/requests/baremetal/unset_node_maintenance.rb +36 -0
- data/lib/fog/openstack/requests/compute/create_flavor_metadata.rb +38 -0
- data/lib/fog/openstack/requests/compute/create_security_group.rb +1 -1
- data/lib/fog/openstack/requests/compute/delete_service.rb +32 -0
- data/lib/fog/openstack/requests/compute/disable_service.rb +37 -0
- data/lib/fog/openstack/requests/compute/disable_service_log_reason.rb +38 -0
- data/lib/fog/openstack/requests/compute/enable_service.rb +38 -0
- data/lib/fog/openstack/requests/compute/get_flavor_metadata.rb +27 -0
- data/lib/fog/openstack/requests/compute/list_services.rb +72 -0
- data/lib/fog/openstack/requests/compute/list_tenants_with_flavor_access.rb +1 -1
- data/lib/fog/openstack/requests/compute/list_zones.rb +32 -0
- data/lib/fog/openstack/requests/identity_v2/add_user_to_tenant.rb +36 -0
- data/lib/fog/openstack/requests/identity_v2/check_token.rb +22 -0
- data/lib/fog/openstack/requests/identity_v2/create_ec2_credential.rb +59 -0
- data/lib/fog/openstack/requests/identity_v2/create_role.rb +38 -0
- data/lib/fog/openstack/requests/identity_v2/create_tenant.rb +34 -0
- data/lib/fog/openstack/requests/identity_v2/create_user.rb +45 -0
- data/lib/fog/openstack/requests/identity_v2/create_user_role.rb +26 -0
- data/lib/fog/openstack/requests/identity_v2/delete_ec2_credential.rb +43 -0
- data/lib/fog/openstack/requests/identity_v2/delete_role.rb +30 -0
- data/lib/fog/openstack/requests/identity_v2/delete_tenant.rb +33 -0
- data/lib/fog/openstack/requests/identity_v2/delete_user.rb +30 -0
- data/lib/fog/openstack/requests/identity_v2/delete_user_role.rb +25 -0
- data/lib/fog/openstack/requests/identity_v2/get_ec2_credential.rb +50 -0
- data/lib/fog/openstack/requests/identity_v2/get_role.rb +30 -0
- data/lib/fog/openstack/requests/identity_v2/get_tenant.rb +33 -0
- data/lib/fog/openstack/requests/identity_v2/get_tenants_by_id.rb +20 -0
- data/lib/fog/openstack/requests/identity_v2/get_tenants_by_name.rb +20 -0
- data/lib/fog/openstack/requests/identity_v2/get_user_by_id.rb +34 -0
- data/lib/fog/openstack/requests/identity_v2/get_user_by_name.rb +29 -0
- data/lib/fog/openstack/requests/identity_v2/list_ec2_credentials.rb +45 -0
- data/lib/fog/openstack/requests/identity_v2/list_endpoints_for_token.rb +20 -0
- data/lib/fog/openstack/requests/identity_v2/list_roles.rb +33 -0
- data/lib/fog/openstack/requests/identity_v2/list_roles_for_user_on_tenant.rb +32 -0
- data/lib/fog/openstack/requests/identity_v2/list_tenants.rb +47 -0
- data/lib/fog/openstack/requests/identity_v2/list_user_global_roles.rb +20 -0
- data/lib/fog/openstack/requests/identity_v2/list_users.rb +35 -0
- data/lib/fog/openstack/requests/identity_v2/remove_user_from_tenant.rb +22 -0
- data/lib/fog/openstack/requests/identity_v2/set_tenant.rb +21 -0
- data/lib/fog/openstack/requests/identity_v2/update_tenant.rb +30 -0
- data/lib/fog/openstack/requests/identity_v2/update_user.rb +34 -0
- data/lib/fog/openstack/requests/identity_v2/validate_token.rb +22 -0
- data/lib/fog/openstack/requests/identity_v3/add_user_to_group.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/auth_domains.rb +29 -0
- data/lib/fog/openstack/requests/identity_v3/auth_projects.rb +29 -0
- data/lib/fog/openstack/requests/identity_v3/check_domain_group_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/check_domain_user_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/check_project_group_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/check_project_user_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/create_domain.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/create_endpoint.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/create_group.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/create_os_credential.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/create_policy.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/create_project.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/create_role.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/create_service.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/create_user.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/delete_domain.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/delete_endpoint.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/delete_group.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/delete_os_credential.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/delete_policy.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/delete_project.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/delete_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/delete_service.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/delete_user.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/get_domain.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/get_endpoint.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/get_group.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/get_os_credential.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/get_policy.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/get_project.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/get_role.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/get_service.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/get_user.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/grant_domain_group_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/grant_domain_user_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/grant_project_group_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/grant_project_user_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/group_user_check.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/list_domain_group_roles.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/list_domain_user_roles.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/list_domains.rb +31 -0
- data/lib/fog/openstack/requests/identity_v3/list_endpoints.rb +31 -0
- data/lib/fog/openstack/requests/identity_v3/list_group_users.rb +32 -0
- data/lib/fog/openstack/requests/identity_v3/list_groups.rb +42 -0
- data/lib/fog/openstack/requests/identity_v3/list_os_credentials.rb +29 -0
- data/lib/fog/openstack/requests/identity_v3/list_policies.rb +28 -0
- data/lib/fog/openstack/requests/identity_v3/list_project_group_roles.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/list_project_user_roles.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/list_projects.rb +42 -0
- data/lib/fog/openstack/requests/identity_v3/list_role_assignments.rb +35 -0
- data/lib/fog/openstack/requests/identity_v3/list_roles.rb +42 -0
- data/lib/fog/openstack/requests/identity_v3/list_services.rb +30 -0
- data/lib/fog/openstack/requests/identity_v3/list_user_groups.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/list_user_projects.rb +23 -0
- data/lib/fog/openstack/requests/identity_v3/list_users.rb +32 -0
- data/lib/fog/openstack/requests/identity_v3/remove_user_from_group.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/revoke_domain_group_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/revoke_domain_user_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/revoke_project_group_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/revoke_project_user_role.rb +20 -0
- data/lib/fog/openstack/requests/identity_v3/token_authenticate.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/token_check.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/token_revoke.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/token_validate.rb +22 -0
- data/lib/fog/openstack/requests/identity_v3/update_domain.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/update_endpoint.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/update_group.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/update_os_credential.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/update_policy.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/update_project.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/update_role.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/update_service.rb +21 -0
- data/lib/fog/openstack/requests/identity_v3/update_user.rb +21 -0
- data/lib/fog/openstack/requests/image/list_public_images_detailed.rb +1 -1
- data/lib/fog/openstack/volume.rb +1 -1
- data/lib/fog/version.rb +1 -1
- data/lib/fog/vsphere/requests/compute/cloudinit_to_customspec.rb +27 -8
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +376 -37
- data/lib/tasks/changelog_task.rb +1 -1
- data/spec/fog/openstack/identity_v3/authv3_a.yml +61 -0
- data/spec/fog/openstack/identity_v3/authv3_b.yml +61 -0
- data/spec/fog/openstack/identity_v3/authv3_c.yml +61 -0
- data/spec/fog/openstack/identity_v3/authv3_project.yml +61 -0
- data/spec/fog/openstack/identity_v3/authv3_token.yml +151 -0
- data/spec/fog/openstack/identity_v3/authv3_unscoped.yml +334 -0
- data/spec/fog/openstack/identity_v3/idv2_unscoped_token_v3.yml +467 -0
- data/spec/fog/openstack/identity_v3/idv3.yml +61 -0
- data/spec/fog/openstack/identity_v3/idv3_credential.yml +111 -0
- data/spec/fog/openstack/identity_v3/idv3_credential_crud.yml +528 -0
- data/spec/fog/openstack/identity_v3/idv3_domain.yml +195 -0
- data/spec/fog/openstack/identity_v3/idv3_domain_crud.yml +686 -0
- data/spec/fog/openstack/identity_v3/idv3_domain_group_roles_mutation.yml +906 -0
- data/spec/fog/openstack/identity_v3/idv3_domain_roles_mutation.yml +505 -0
- data/spec/fog/openstack/identity_v3/idv3_endpoint.yml +303 -0
- data/spec/fog/openstack/identity_v3/idv3_endpoints_crud.yml +718 -0
- data/spec/fog/openstack/identity_v3/idv3_group_crud_mutation.yml +975 -0
- data/spec/fog/openstack/identity_v3/idv3_policy.yml +147 -0
- data/spec/fog/openstack/identity_v3/idv3_policy_crud.yml +368 -0
- data/spec/fog/openstack/identity_v3/idv3_project.yml +211 -0
- data/spec/fog/openstack/identity_v3/idv3_project_crud.yml +663 -0
- data/spec/fog/openstack/identity_v3/idv3_project_group_user_roles_mutation.yml +1378 -0
- data/spec/fog/openstack/identity_v3/idv3_role.yml +199 -0
- data/spec/fog/openstack/identity_v3/idv3_role_crud.yml +616 -0
- data/spec/fog/openstack/identity_v3/idv3_service.yml +223 -0
- data/spec/fog/openstack/identity_v3/idv3_services_crud.yml +562 -0
- data/spec/fog/openstack/identity_v3/idv3_token.yml +240 -0
- data/spec/fog/openstack/identity_v3/idv3_user_crud.yml +572 -0
- data/spec/fog/openstack/identity_v3/idv3_users.yml +393 -0
- data/spec/fog/openstack/identity_v3_spec.rb +929 -0
- data/tests/openstack/requests/baremetal/node_tests.rb +18 -0
- data/tests/openstack/requests/compute/flavor_tests.rb +18 -0
- data/tests/openstack/requests/compute/service_tests.rb +33 -0
- metadata +259 -49
- data/lib/fog/openstack/models/identity/ec2_credential.rb +0 -44
- data/lib/fog/openstack/models/identity/ec2_credentials.rb +0 -53
- data/lib/fog/openstack/models/identity/role.rb +0 -50
- data/lib/fog/openstack/models/identity/roles.rb +0 -20
- data/lib/fog/openstack/models/identity/tenant.rb +0 -62
- data/lib/fog/openstack/models/identity/tenants.rb +0 -29
- data/lib/fog/openstack/models/identity/user.rb +0 -69
- data/lib/fog/openstack/models/identity/users.rb +0 -41
- data/lib/fog/openstack/requests/identity/add_user_to_tenant.rb +0 -34
- data/lib/fog/openstack/requests/identity/check_token.rb +0 -20
- data/lib/fog/openstack/requests/identity/create_ec2_credential.rb +0 -57
- data/lib/fog/openstack/requests/identity/create_role.rb +0 -36
- data/lib/fog/openstack/requests/identity/create_tenant.rb +0 -32
- data/lib/fog/openstack/requests/identity/create_user.rb +0 -43
- data/lib/fog/openstack/requests/identity/create_user_role.rb +0 -24
- data/lib/fog/openstack/requests/identity/delete_ec2_credential.rb +0 -42
- data/lib/fog/openstack/requests/identity/delete_role.rb +0 -28
- data/lib/fog/openstack/requests/identity/delete_tenant.rb +0 -31
- data/lib/fog/openstack/requests/identity/delete_user.rb +0 -28
- data/lib/fog/openstack/requests/identity/delete_user_role.rb +0 -23
- data/lib/fog/openstack/requests/identity/get_ec2_credential.rb +0 -48
- data/lib/fog/openstack/requests/identity/get_role.rb +0 -28
- data/lib/fog/openstack/requests/identity/get_tenant.rb +0 -31
- data/lib/fog/openstack/requests/identity/get_tenants_by_id.rb +0 -18
- data/lib/fog/openstack/requests/identity/get_tenants_by_name.rb +0 -18
- data/lib/fog/openstack/requests/identity/get_user_by_id.rb +0 -32
- data/lib/fog/openstack/requests/identity/get_user_by_name.rb +0 -27
- data/lib/fog/openstack/requests/identity/list_ec2_credentials.rb +0 -43
- data/lib/fog/openstack/requests/identity/list_endpoints_for_token.rb +0 -18
- data/lib/fog/openstack/requests/identity/list_roles.rb +0 -31
- data/lib/fog/openstack/requests/identity/list_roles_for_user_on_tenant.rb +0 -30
- data/lib/fog/openstack/requests/identity/list_tenants.rb +0 -45
- data/lib/fog/openstack/requests/identity/list_user_global_roles.rb +0 -18
- data/lib/fog/openstack/requests/identity/list_users.rb +0 -33
- data/lib/fog/openstack/requests/identity/remove_user_from_tenant.rb +0 -20
- data/lib/fog/openstack/requests/identity/set_tenant.rb +0 -19
- data/lib/fog/openstack/requests/identity/update_tenant.rb +0 -28
- data/lib/fog/openstack/requests/identity/update_user.rb +0 -32
- data/lib/fog/openstack/requests/identity/validate_token.rb +0 -20
@@ -0,0 +1,45 @@
|
|
1
|
+
module Fog
|
2
|
+
module Identity
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
##
|
7
|
+
# List EC2 credentials for a user. Requires administrator
|
8
|
+
# credentials.
|
9
|
+
#
|
10
|
+
# ==== Parameters
|
11
|
+
# * user_id<~String>: The id of the user to retrieve the credential
|
12
|
+
# for
|
13
|
+
#
|
14
|
+
# ==== Returns
|
15
|
+
# * response<~Excon::Response>:
|
16
|
+
# * body<~Hash>:
|
17
|
+
# * 'credentials'<~Array>: The user's EC2 credentials
|
18
|
+
# * 'access'<~String>: The access key
|
19
|
+
# * 'secret'<~String>: The secret key
|
20
|
+
# * 'user_id'<~String>: The user id
|
21
|
+
# * 'tenant_id'<~String>: The tenant id
|
22
|
+
|
23
|
+
def list_ec2_credentials(user_id)
|
24
|
+
request(
|
25
|
+
:expects => [200, 202],
|
26
|
+
:method => 'GET',
|
27
|
+
:path => "users/#{user_id}/credentials/OS-EC2"
|
28
|
+
)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
class Mock
|
33
|
+
def list_ec2_credentials(user_id)
|
34
|
+
ec2_credentials = self.data[:ec2_credentials][user_id].values
|
35
|
+
|
36
|
+
response = Excon::Response.new
|
37
|
+
response.status = 200
|
38
|
+
response.body = {'credentials' => ec2_credentials}
|
39
|
+
response
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end # class V2
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Fog
|
2
|
+
module Identity
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def list_endpoints_for_token(token_id)
|
7
|
+
request(
|
8
|
+
:expects => [200, 203],
|
9
|
+
:method => 'HEAD',
|
10
|
+
:path => "tokens/#{token_id}/endpoints"
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Mock
|
16
|
+
end
|
17
|
+
end # class V2
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Fog
|
2
|
+
module Identity
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def list_roles
|
7
|
+
request(
|
8
|
+
:expects => 200,
|
9
|
+
:method => 'GET',
|
10
|
+
:path => '/OS-KSADM/roles'
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Mock
|
16
|
+
def list_roles
|
17
|
+
if self.data[:roles].empty?
|
18
|
+
['admin', 'Member'].each do |name|
|
19
|
+
id = Fog::Mock.random_hex(32)
|
20
|
+
self.data[:roles][id] = {'id' => id, 'name' => name}
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
Excon::Response.new(
|
25
|
+
:body => {'roles' => self.data[:roles].values},
|
26
|
+
:status => 200
|
27
|
+
)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end # class V2
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Fog
|
2
|
+
module Identity
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def list_roles_for_user_on_tenant(tenant_id, user_id)
|
7
|
+
request(
|
8
|
+
:expects => [200],
|
9
|
+
:method => 'GET',
|
10
|
+
:path => "tenants/#{tenant_id}/users/#{user_id}/roles"
|
11
|
+
)
|
12
|
+
end # def list_roles_for_user_on_tenant
|
13
|
+
end # class Real
|
14
|
+
|
15
|
+
class Mock
|
16
|
+
def list_roles_for_user_on_tenant(tenant_id, user_id)
|
17
|
+
self.data[:user_tenant_membership][tenant_id] ||= {}
|
18
|
+
self.data[:user_tenant_membership][tenant_id][user_id] ||= []
|
19
|
+
roles = self.data[:user_tenant_membership][tenant_id][user_id].map do |role_id|
|
20
|
+
self.data[:roles][role_id]
|
21
|
+
end
|
22
|
+
|
23
|
+
Excon::Response.new(
|
24
|
+
:body => {'roles' => roles},
|
25
|
+
:status => 200
|
26
|
+
)
|
27
|
+
end # def list_roles_for_user_on_tenant
|
28
|
+
end # class Mock
|
29
|
+
end # class V2
|
30
|
+
end # class OpenStack
|
31
|
+
end # module Identity
|
32
|
+
end # module Fog
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Fog
|
2
|
+
module Identity
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def list_tenants(limit = nil, marker = nil)
|
7
|
+
params = Hash.new
|
8
|
+
params['limit'] = limit if limit
|
9
|
+
params['marker'] = marker if marker
|
10
|
+
|
11
|
+
request(
|
12
|
+
:expects => [200, 204],
|
13
|
+
:method => 'GET',
|
14
|
+
:path => "tenants",
|
15
|
+
:query => params
|
16
|
+
)
|
17
|
+
end
|
18
|
+
end # class Real
|
19
|
+
|
20
|
+
class Mock
|
21
|
+
def list_tenants
|
22
|
+
Excon::Response.new(
|
23
|
+
:body => {
|
24
|
+
'tenants_links' => [],
|
25
|
+
'tenants' => [
|
26
|
+
{'id' => '1',
|
27
|
+
'description' => 'Has access to everything',
|
28
|
+
'enabled' => true,
|
29
|
+
'name' => 'admin'},
|
30
|
+
{'id' => '2',
|
31
|
+
'description' => 'Normal tenant',
|
32
|
+
'enabled' => true,
|
33
|
+
'name' => 'default'},
|
34
|
+
{'id' => '3',
|
35
|
+
'description' => 'Disabled tenant',
|
36
|
+
'enabled' => false,
|
37
|
+
'name' => 'disabled'}
|
38
|
+
]
|
39
|
+
},
|
40
|
+
:status => [200, 204][rand(1)]
|
41
|
+
)
|
42
|
+
end # def list_tenants
|
43
|
+
end # class Mock
|
44
|
+
end # class V2
|
45
|
+
end # class OpenStack
|
46
|
+
end # module Identity
|
47
|
+
end # module Fog
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Fog
|
2
|
+
module Identity
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def list_user_global_roles(user_id)
|
7
|
+
request(
|
8
|
+
:expects => [200],
|
9
|
+
:method => 'GET',
|
10
|
+
:path => "users/#{user_id}/roles"
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Mock
|
16
|
+
end
|
17
|
+
end # class V2
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Fog
|
2
|
+
module Identity
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def list_users(tenant_id = nil)
|
7
|
+
path = tenant_id ? "tenants/#{tenant_id}/users" : 'users'
|
8
|
+
request(
|
9
|
+
:expects => [200, 204],
|
10
|
+
:method => 'GET',
|
11
|
+
:path => path
|
12
|
+
)
|
13
|
+
end
|
14
|
+
end # class Real
|
15
|
+
|
16
|
+
class Mock
|
17
|
+
def list_users(tenant_id = nil)
|
18
|
+
users = self.data[:users].values
|
19
|
+
|
20
|
+
if tenant_id
|
21
|
+
users = users.select {
|
22
|
+
|user| user['tenantId'] == tenant_id
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
Excon::Response.new(
|
27
|
+
:body => {'users' => users},
|
28
|
+
:status => 200
|
29
|
+
)
|
30
|
+
end
|
31
|
+
end # class Mock
|
32
|
+
end # class V2
|
33
|
+
end # class OpenStack
|
34
|
+
end # module Identity
|
35
|
+
end # module Fog
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Fog
|
2
|
+
module Identity
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def remove_user_from_tenant(tenant_id, user_id, role_id)
|
7
|
+
request(
|
8
|
+
:expects => [200, 204],
|
9
|
+
:method => 'DELETE',
|
10
|
+
:path => "/tenants/#{tenant_id}/users/#{user_id}/roles/OS-KSADM/#{role_id}"
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end # class Real
|
14
|
+
|
15
|
+
class Mock
|
16
|
+
def remove_user_from_tenant(tenant_id, user_id, role_id)
|
17
|
+
end # def remove_user_from_tenant
|
18
|
+
end # class Mock
|
19
|
+
end # class V2
|
20
|
+
end # class OpenStack
|
21
|
+
end # module Identity
|
22
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Fog
|
2
|
+
module Identity
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def set_tenant(tenant)
|
7
|
+
@openstack_must_reauthenticate = true
|
8
|
+
@openstack_tenant = tenant.to_s
|
9
|
+
authenticate
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class Mock
|
14
|
+
def set_tenant(tenant)
|
15
|
+
true
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end # class V2
|
19
|
+
end # class OpenStack
|
20
|
+
end # module Identity
|
21
|
+
end # module Fog
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Fog
|
2
|
+
module Identity
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def update_tenant(id, attributes)
|
7
|
+
request(
|
8
|
+
:expects => [200],
|
9
|
+
:method => 'PUT',
|
10
|
+
:path => "tenants/#{id}",
|
11
|
+
:body => Fog::JSON.encode({'tenant' => attributes})
|
12
|
+
)
|
13
|
+
end # def create_tenant
|
14
|
+
end # class Real
|
15
|
+
|
16
|
+
class Mock
|
17
|
+
def update_tenant(id, attributes)
|
18
|
+
response = Excon::Response.new
|
19
|
+
response.status = [200, 204][rand(1)]
|
20
|
+
attributes = {'enabled' => true, 'id' => '1'}.merge(attributes)
|
21
|
+
response.body = {
|
22
|
+
'tenant' => attributes
|
23
|
+
}
|
24
|
+
response
|
25
|
+
end # def create_tenant
|
26
|
+
end # class Mock
|
27
|
+
end # class V2
|
28
|
+
end # class OpenStack
|
29
|
+
end # module Identity
|
30
|
+
end # module Fog
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Fog
|
2
|
+
module Identity
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def update_user(user_id, options = {})
|
7
|
+
url = options.delete('url') || "/users/#{user_id}"
|
8
|
+
request(
|
9
|
+
:body => Fog::JSON.encode({'user' => options}),
|
10
|
+
:expects => 200,
|
11
|
+
:method => 'PUT',
|
12
|
+
:path => url
|
13
|
+
)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class Mock
|
18
|
+
def update_user(user_id, options)
|
19
|
+
response = Excon::Response.new
|
20
|
+
if user = self.data[:users][user_id]
|
21
|
+
if options['name']
|
22
|
+
user['name'] = options['name']
|
23
|
+
end
|
24
|
+
response.status = 200
|
25
|
+
response
|
26
|
+
else
|
27
|
+
raise Fog::Identity::OpenStack::NotFound
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end # class V2
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Fog
|
2
|
+
module Identity
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def validate_token(token_id, tenant_id=nil)
|
7
|
+
request(
|
8
|
+
:expects => [200, 203],
|
9
|
+
:method => 'GET',
|
10
|
+
:path => "tokens/#{token_id}"+(tenant_id ? "?belongsTo=#{tenant_id}" : '')
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Mock
|
16
|
+
def validate_token(token_id, tenant_id=nil)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Fog
|
2
|
+
module Identity
|
3
|
+
class OpenStack
|
4
|
+
class V3
|
5
|
+
class Real
|
6
|
+
def add_user_to_group(group_id, user_id)
|
7
|
+
request(
|
8
|
+
:expects => [204],
|
9
|
+
:method => 'PUT',
|
10
|
+
:path => "groups/#{group_id}/users/#{user_id}"
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Mock
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Fog
|
2
|
+
module Identity
|
3
|
+
class OpenStack
|
4
|
+
class V3
|
5
|
+
|
6
|
+
class Real
|
7
|
+
def auth_domains(options={})
|
8
|
+
params = Hash.new
|
9
|
+
params['page'] = options.fetch(:page, 1)
|
10
|
+
params['per_page'] = options.fetch(:per_page, 30)
|
11
|
+
|
12
|
+
request(
|
13
|
+
:expects => [200],
|
14
|
+
:method => 'GET',
|
15
|
+
:path => "auth/domains",
|
16
|
+
:query => params
|
17
|
+
)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class Mock
|
22
|
+
def auth_domains
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Fog
|
2
|
+
module Identity
|
3
|
+
class OpenStack
|
4
|
+
class V3
|
5
|
+
class Real
|
6
|
+
def auth_projects(options={})
|
7
|
+
params = Hash.new
|
8
|
+
params['page'] = options.fetch(:page, 1)
|
9
|
+
params['per_page'] = options.fetch(:per_page, 30)
|
10
|
+
|
11
|
+
request(
|
12
|
+
:expects => [200],
|
13
|
+
:method => 'GET',
|
14
|
+
:path => "auth/projects",
|
15
|
+
:query => params
|
16
|
+
)
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class Mock
|
22
|
+
def auth_projects
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|