fog-profitbricks 3.0.0 → 4.0.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/.travis.yml +0 -3
- data/README.md +437 -3
- data/lib/fog/profitbricks/compute.rb +138 -80
- data/lib/fog/profitbricks/helpers/compute/data_helper.rb +1 -1
- data/lib/fog/profitbricks/models/compute/contract_resource.rb +35 -0
- data/lib/fog/profitbricks/models/compute/contract_resources.rb +19 -0
- data/lib/fog/profitbricks/models/compute/group.rb +66 -0
- data/lib/fog/profitbricks/models/compute/groups.rb +26 -0
- data/lib/fog/profitbricks/models/compute/lan.rb +3 -0
- data/lib/fog/profitbricks/models/compute/location.rb +1 -0
- data/lib/fog/profitbricks/models/compute/resource.rb +30 -0
- data/lib/fog/profitbricks/models/compute/resources.rb +32 -0
- data/lib/fog/profitbricks/models/compute/share.rb +59 -0
- data/lib/fog/profitbricks/models/compute/shares.rb +33 -0
- data/lib/fog/profitbricks/models/compute/user.rb +75 -0
- data/lib/fog/profitbricks/models/compute/users.rb +45 -0
- data/lib/fog/profitbricks/models/compute/volume.rb +2 -0
- data/lib/fog/profitbricks/requests/compute/add_share.rb +64 -0
- data/lib/fog/profitbricks/requests/compute/add_user_to_group.rb +89 -0
- data/lib/fog/profitbricks/requests/compute/create_group.rb +85 -0
- data/lib/fog/profitbricks/requests/compute/create_lan.rb +1 -0
- data/lib/fog/profitbricks/requests/compute/create_user.rb +83 -0
- data/lib/fog/profitbricks/requests/compute/create_volume.rb +1 -0
- data/lib/fog/profitbricks/requests/compute/delete_group.rb +43 -0
- data/lib/fog/profitbricks/requests/compute/delete_share.rb +42 -0
- data/lib/fog/profitbricks/requests/compute/delete_user.rb +43 -0
- data/lib/fog/profitbricks/requests/compute/get_all_contract_resources.rb +55 -0
- data/lib/fog/profitbricks/requests/compute/get_all_groups.rb +62 -0
- data/lib/fog/profitbricks/requests/compute/get_all_lans.rb +1 -0
- data/lib/fog/profitbricks/requests/compute/get_all_resources.rb +66 -0
- data/lib/fog/profitbricks/requests/compute/get_all_shares.rb +46 -0
- data/lib/fog/profitbricks/requests/compute/get_all_users.rb +70 -0
- data/lib/fog/profitbricks/requests/compute/get_group.rb +64 -0
- data/lib/fog/profitbricks/requests/compute/get_group_users.rb +78 -0
- data/lib/fog/profitbricks/requests/compute/get_lan.rb +1 -0
- data/lib/fog/profitbricks/requests/compute/get_resource_by_type.rb +73 -0
- data/lib/fog/profitbricks/requests/compute/get_resources_by_type.rb +44 -0
- data/lib/fog/profitbricks/requests/compute/get_share.rb +52 -0
- data/lib/fog/profitbricks/requests/compute/get_user.rb +72 -0
- data/lib/fog/profitbricks/requests/compute/remove_user_from_group.rb +49 -0
- data/lib/fog/profitbricks/requests/compute/update_group.rb +85 -0
- data/lib/fog/profitbricks/requests/compute/update_lan.rb +1 -0
- data/lib/fog/profitbricks/requests/compute/update_share.rb +67 -0
- data/lib/fog/profitbricks/requests/compute/update_user.rb +94 -0
- data/lib/fog/profitbricks/version.rb +1 -1
- data/tests/profitbricks/models/compute/compute_tests.rb +6 -0
- data/tests/profitbricks/requests/compute/location_tests.rb +4 -4
- data/tests/profitbricks/requests/compute/nic_tests.rb +7 -19
- data/tests/profitbricks/requests/compute/server_tests.rb +9 -21
- metadata +58 -28
- data/gemfiles/Gemfile.1.9.2- +0 -5
@@ -0,0 +1,66 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class ProfitBricks
|
4
|
+
class Real
|
5
|
+
# Retrieves a list of all resources and optionally their group associations.
|
6
|
+
# Please note that this API call can take a significant amount of time to return when
|
7
|
+
# there are a large number of provisioned resources.
|
8
|
+
#
|
9
|
+
# ==== Parameters
|
10
|
+
# * None
|
11
|
+
#
|
12
|
+
# ==== Returns
|
13
|
+
# * response<~Excon::Response>:
|
14
|
+
# * body<~Hash>:
|
15
|
+
# * id<~String> - Id of the requested resource
|
16
|
+
# * type<~String> - type of the requested resource
|
17
|
+
# * href<~String> - url to the requested resource
|
18
|
+
# * items<~Array>
|
19
|
+
# * id<~String> - The resource's unique identifier
|
20
|
+
# * type<~String> - The type of the requested resource
|
21
|
+
# * href<~String> - URL to the object’s representation (absolute path)
|
22
|
+
# * metadata<~Hash> - Hash containing the metadata for the specific resource.
|
23
|
+
# * createdDate<~String> - A time and date stamp indicating when the resource was created.
|
24
|
+
# * createdBy<~String> - The user who created the resource.
|
25
|
+
# * etag<~String> - Resource's ETag.
|
26
|
+
# * lastModifiedDate<~String> - A time and date stamp indicating when the resource was last modified.
|
27
|
+
# * lastModifiedBy<~String> - The user who last modified the resource.
|
28
|
+
# * state<~String> - The current state of the resource. [ AVAILABLE, BUSY, INACTIVE ]
|
29
|
+
# * entities<~Hash> - A hash containing groups the resource is associated with.
|
30
|
+
# * groups<~Hash> - A collection of groups associated with the resource.
|
31
|
+
# * id<~String> - The resource's unique identifier
|
32
|
+
# * type<~String> - The type of the requested resource
|
33
|
+
# * href<~String> - URL to the object’s representation (absolute path)
|
34
|
+
# * items<~Array>
|
35
|
+
# * id<~String> - The resource's unique identifier
|
36
|
+
# * type<~String> - The type of the requested resource
|
37
|
+
# * href<~String> - URL to the object’s representation (absolute path)
|
38
|
+
# * properties<~Hash> - Hash containing the volume properties.
|
39
|
+
# * name<~String> - The name of the group.
|
40
|
+
# * createDataCenter<~Boolean> - The group will be allowed to create virtual data centers.
|
41
|
+
# * createSnapshot<~Boolean> - The group will be allowed to create snapshots.
|
42
|
+
# * reserveIp<~Boolean> - The group will be allowed to reserve IP addresses.
|
43
|
+
# * accessActivityLog<~Boolean> - The group will be allowed to access the activity log.
|
44
|
+
#
|
45
|
+
# {ProfitBricks API Documentation}[https://devops.profitbricks.com/api/cloud/v4/#list-resources]
|
46
|
+
def get_all_resources
|
47
|
+
request(
|
48
|
+
:expects => [200],
|
49
|
+
:method => 'GET',
|
50
|
+
:path => "/um/resources?depth=2"
|
51
|
+
)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
class Mock
|
56
|
+
def get_all_resources
|
57
|
+
response = Excon::Response.new
|
58
|
+
response.status = 200
|
59
|
+
response.body = data[:resources]
|
60
|
+
|
61
|
+
response
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class ProfitBricks
|
4
|
+
class Real
|
5
|
+
# Retrieve a full list of all the resources that are shared through this group
|
6
|
+
# and lists the permissions granted to the group members for each shared resource.
|
7
|
+
#
|
8
|
+
# ==== Parameters
|
9
|
+
# * group_id<~String> - Required, The ID of a specific group.
|
10
|
+
#
|
11
|
+
# ==== Returns
|
12
|
+
# * response<~Excon::Response>:
|
13
|
+
# * body<~Hash>:
|
14
|
+
# * id<~String> - Id of the requested resource
|
15
|
+
# * type<~String> - type of the requested resource
|
16
|
+
# * href<~String> - url to the requested resource
|
17
|
+
# * items<~Array>
|
18
|
+
# * id<~String> - The resource's unique identifier
|
19
|
+
# * type<~String> - The type of the requested resource
|
20
|
+
# * href<~String> - URL to the object’s representation (absolute path)
|
21
|
+
# * properties<~Hash> - Hash containing the volume properties.
|
22
|
+
# * editPrivilege<~Boolean> - The group has permission to edit privileges on this resource.
|
23
|
+
# * sharePrivilege<~Boolean> - The group has permission to share this resource.
|
24
|
+
#
|
25
|
+
# {ProfitBricks API Documentation}[https://devops.profitbricks.com/api/cloud/v4/#list-shares]
|
26
|
+
def get_all_shares(group_id)
|
27
|
+
request(
|
28
|
+
:expects => [200],
|
29
|
+
:method => 'GET',
|
30
|
+
:path => "/um/groups/#{group_id}/shares?depth=1"
|
31
|
+
)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
class Mock
|
36
|
+
def get_all_shares(group_id)
|
37
|
+
response = Excon::Response.new
|
38
|
+
response.status = 200
|
39
|
+
response.body = data[:shares]
|
40
|
+
|
41
|
+
response
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class ProfitBricks
|
4
|
+
class Real
|
5
|
+
# Retrieve a list of all the users that have been created under a contract.
|
6
|
+
#
|
7
|
+
# ==== Parameters
|
8
|
+
# * None
|
9
|
+
#
|
10
|
+
# ==== Returns
|
11
|
+
# * response<~Excon::Response>:
|
12
|
+
# * body<~Hash>:
|
13
|
+
# * id<~String> - Id of the requested resource
|
14
|
+
# * type<~String> - type of the requested resource
|
15
|
+
# * href<~String> - url to the requested resource
|
16
|
+
# * items<~Array>
|
17
|
+
# * id<~String> - The resource's unique identifier.
|
18
|
+
# * type<~String> - The type of the created resource.
|
19
|
+
# * href<~String> - URL to the object's representation (absolute path).
|
20
|
+
# * metadata<~Hash> - Hash containing metadata for the user.
|
21
|
+
# * etag<~String> - ETag of the user.
|
22
|
+
# * creationDate<~String> - A time and date stamp indicating when the user was created.
|
23
|
+
# * lastLogin<~String> - A time and date stamp indicating when the user last logged in.
|
24
|
+
# * properties<~Hash> - Hash containing the user's properties.
|
25
|
+
# * firstname<~String> - The first name of the user.
|
26
|
+
# * lastname<~String> - The last name of the user.
|
27
|
+
# * email<~String> - The e-mail address of the user.
|
28
|
+
# * administrator<~Boolean> - Indicates if the user has administrative rights.
|
29
|
+
# * forceSecAuth<~Boolean> - Indicates if secure (two-factor) authentication was enabled for the user.
|
30
|
+
# * secAuthActive<~Boolean> - Indicates if secure (two-factor) authentication is enabled for the user.
|
31
|
+
# * entities<~Hash> - Hash containing resources the user owns, and groups the user is a member of.
|
32
|
+
# * owns<~Hash> - Hash containing resources the user owns.
|
33
|
+
# * id<~String> - The resource's unique identifier.
|
34
|
+
# * type<~String> - The type of the created resource.
|
35
|
+
# * href<~String> - URL to the object's representation (absolute path).
|
36
|
+
# * items<~Array>
|
37
|
+
# * id<~String> - The resource's unique identifier.
|
38
|
+
# * type<~String> - The type of the created resource.
|
39
|
+
# * href<~String> - URL to the object's representation (absolute path).
|
40
|
+
# * groups<~Hash> - Hash containing groups the user is a member of.
|
41
|
+
# * id<~String> - The resource's unique identifier.
|
42
|
+
# * type<~String> - The type of the created resource.
|
43
|
+
# * href<~String> - URL to the object's representation (absolute path).
|
44
|
+
# * items<~Array>
|
45
|
+
# * id<~String> - The resource's unique identifier.
|
46
|
+
# * type<~String> - The type of the created resource.
|
47
|
+
# * href<~String> - URL to the object's representation (absolute path).
|
48
|
+
#
|
49
|
+
# {ProfitBricks API Documentation}[https://devops.profitbricks.com/api/cloud/v4/#list-users]
|
50
|
+
def get_all_users
|
51
|
+
request(
|
52
|
+
:expects => [200],
|
53
|
+
:method => 'GET',
|
54
|
+
:path => "/um/users?depth=1"
|
55
|
+
)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
class Mock
|
60
|
+
def get_all_users
|
61
|
+
response = Excon::Response.new
|
62
|
+
response.status = 200
|
63
|
+
response.body = data[:users]
|
64
|
+
|
65
|
+
response
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class ProfitBricks
|
4
|
+
class Real
|
5
|
+
# Retrieves the attributes of a given volume
|
6
|
+
#
|
7
|
+
# ==== Parameters
|
8
|
+
# * group_id<~String> - Required, UUID of the group
|
9
|
+
#
|
10
|
+
# ==== Returns
|
11
|
+
# * response<~Excon::Response>:
|
12
|
+
# * body<~Hash>:
|
13
|
+
# * id<~String> - The resource's unique identifier
|
14
|
+
# * type<~String> - The type of the requested resource
|
15
|
+
# * href<~String> - URL to the object’s representation (absolute path)
|
16
|
+
# * properties<~Hash> - Hash containing the volume properties.
|
17
|
+
# * name<~String> - The name of the group.
|
18
|
+
# * createDataCenter<~Boolean> - The group will be allowed to create virtual data centers.
|
19
|
+
# * createSnapshot<~Boolean> - The group will be allowed to create snapshots.
|
20
|
+
# * reserveIp<~Boolean> - The group will be allowed to reserve IP addresses.
|
21
|
+
# * accessActivityLog<~Boolean> - The group will be allowed to access the activity log.
|
22
|
+
# * entities<~Hash> - A hash containing the group entities.
|
23
|
+
# * users<~Hash> - A collection of users that belong to this group.
|
24
|
+
# * id<~String> - The resource's unique identifier.
|
25
|
+
# * type<~String> - The type of the requested resource.
|
26
|
+
# * href<~String> - URL to the object’s representation (absolute path).
|
27
|
+
# * items<~Array> - The array containing individual user resources.
|
28
|
+
# * resources<~Hash> - A collection of resources that are assigned to this group.
|
29
|
+
# * id<~String> - The resource's unique identifier.
|
30
|
+
# * type<~String> - The type of the requested resource.
|
31
|
+
# * href<~String> - URL to the object’s representation (absolute path).
|
32
|
+
# * items<~Array> - An array containing individual resources.
|
33
|
+
# * id<~String> - The resource's unique identifier.
|
34
|
+
# * type<~String> - The type of the requested resource.
|
35
|
+
# * href<~String> - URL to the object’s representation (absolute path).
|
36
|
+
#
|
37
|
+
# {ProfitBricks API Documentation}[https://devops.profitbricks.com/api/cloud/v4/#retrieve-a-group]
|
38
|
+
def get_group(group_id)
|
39
|
+
request(
|
40
|
+
:expects => [200],
|
41
|
+
:method => "GET",
|
42
|
+
:path => "/um/groups/#{group_id}"
|
43
|
+
)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
class Mock
|
48
|
+
def get_group(group_id)
|
49
|
+
if group = data[:groups]['items'].find do |grp|
|
50
|
+
grp["id"] == group_id
|
51
|
+
end
|
52
|
+
else
|
53
|
+
raise Excon::Error::HTTPStatus, "The requested resource could not be found"
|
54
|
+
end
|
55
|
+
|
56
|
+
response = Excon::Response.new
|
57
|
+
response.status = 200
|
58
|
+
response.body = group
|
59
|
+
response
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class ProfitBricks
|
4
|
+
class Real
|
5
|
+
# Retrieves a full list of all the users that are members of a particular group.
|
6
|
+
#
|
7
|
+
# ==== Parameters
|
8
|
+
# * None
|
9
|
+
#
|
10
|
+
# ==== Returns
|
11
|
+
# * response<~Excon::Response>:
|
12
|
+
# * body<~Hash>:
|
13
|
+
# * id<~String> - Id of the requested resource
|
14
|
+
# * type<~String> - type of the requested resource
|
15
|
+
# * href<~String> - url to the requested resource
|
16
|
+
# * items<~Array>
|
17
|
+
# * id<~String> - The resource's unique identifier.
|
18
|
+
# * type<~String> - The type of the created resource.
|
19
|
+
# * href<~String> - URL to the object's representation (absolute path).
|
20
|
+
# * metadata<~Hash> - Hash containing metadata for the user.
|
21
|
+
# * etag<~String> - ETag of the user.
|
22
|
+
# * creationDate<~String> - A time and date stamp indicating when the user was created.
|
23
|
+
# * lastLogin<~String> - A time and date stamp indicating when the user last logged in.
|
24
|
+
# * properties<~Hash> - Hash containing the user's properties.
|
25
|
+
# * firstname<~String> - The first name of the user.
|
26
|
+
# * lastname<~String> - The last name of the user.
|
27
|
+
# * email<~String> - The e-mail address of the user.
|
28
|
+
# * administrator<~Boolean> - Indicates if the user has administrative rights.
|
29
|
+
# * forceSecAuth<~Boolean> - Indicates if secure (two-factor) authentication was enabled for the user.
|
30
|
+
# * secAuthActive<~Boolean> - Indicates if secure (two-factor) authentication is enabled for the user.
|
31
|
+
# * entities<~Hash> - Hash containing resources the user owns, and groups the user is a member of.
|
32
|
+
# * owns<~Hash> - Hash containing resources the user owns.
|
33
|
+
# * id<~String> - The resource's unique identifier.
|
34
|
+
# * type<~String> - The type of the created resource.
|
35
|
+
# * href<~String> - URL to the object's representation (absolute path).
|
36
|
+
# * items<~Array>
|
37
|
+
# * id<~String> - The resource's unique identifier.
|
38
|
+
# * type<~String> - The type of the created resource.
|
39
|
+
# * href<~String> - URL to the object's representation (absolute path).
|
40
|
+
# * groups<~Hash> - Hash containing groups the user is a member of.
|
41
|
+
# * id<~String> - The resource's unique identifier.
|
42
|
+
# * type<~String> - The type of the created resource.
|
43
|
+
# * href<~String> - URL to the object's representation (absolute path).
|
44
|
+
# * items<~Array>
|
45
|
+
# * id<~String> - The resource's unique identifier.
|
46
|
+
# * type<~String> - The type of the created resource.
|
47
|
+
# * href<~String> - URL to the object's representation (absolute path).
|
48
|
+
#
|
49
|
+
# {ProfitBricks API Documentation}[https://devops.profitbricks.com/api/cloud/v4/#list-users-in-a-group]
|
50
|
+
def get_group_users(group_id)
|
51
|
+
request(
|
52
|
+
:expects => [200],
|
53
|
+
:method => 'GET',
|
54
|
+
:path => "/um/groups/#{group_id}/users?depth=2"
|
55
|
+
)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
class Mock
|
60
|
+
def get_group_users(group_id)
|
61
|
+
if users = data[:groups]['items']['users'].find do |usr|
|
62
|
+
usr["groups"]["items"].find do |grp|
|
63
|
+
grp["id"] == group_id
|
64
|
+
end
|
65
|
+
end
|
66
|
+
else
|
67
|
+
raise Fog::Errors::NotFound, "The requested resource could not be found"
|
68
|
+
end
|
69
|
+
|
70
|
+
response = Excon::Response.new
|
71
|
+
response.status = 200
|
72
|
+
response.body = users
|
73
|
+
response
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -28,6 +28,7 @@ module Fog
|
|
28
28
|
# * properties<~Hash> - Hash containing the LAN properties
|
29
29
|
# * name<~String> - The name of the LAN
|
30
30
|
# * public<~Boolean> - Boolean indicating if the LAN faces the public Internet or not
|
31
|
+
# * ipFailover<~Array> - Attributes related to IP failover groups
|
31
32
|
# * entities<~Hash> - Hash containing the LAN entities
|
32
33
|
# * nics<~Hash> - Hash containing the NIC properties
|
33
34
|
# * id<~String> - The resource's unique identifier
|
@@ -0,0 +1,73 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class ProfitBricks
|
4
|
+
class Real
|
5
|
+
# ==== Parameters
|
6
|
+
# * resource_type<~String> - Required, Type of resource. [datacenter, image, snapshot, ipblock]
|
7
|
+
# * resource_id<~String> - Required, The ID of the specific resource to retrieve information about.
|
8
|
+
#
|
9
|
+
# ==== Returns
|
10
|
+
# * response<~Excon::Response>:
|
11
|
+
# * body<~Hash>:
|
12
|
+
# * id<~String> - The resource's unique identifier.
|
13
|
+
# * type<~String> - The type of the requested resource.
|
14
|
+
# * href<~String> - A URI for accessing the resource object.
|
15
|
+
# * metadata<~Hash> - Hash containing metadata for the specific resource.
|
16
|
+
# * createdDate<~String> - A time and date stamp indicating when the resource was created.
|
17
|
+
# * createdBy<~String> - The user who created the resource.
|
18
|
+
# * etag<~String> - Resource's ETag.
|
19
|
+
# * lastModifiedDate<~String> - A time and date stamp indicating when the resource was last modified.
|
20
|
+
# * lastModifiedBy<~String> - The user who last modified the resource.
|
21
|
+
# * state<~String> - The current state of the resource. [ AVAILABLE, BUSY, INACTIVE ]
|
22
|
+
# * entities<~Hash> - Hash containing groups the resource is associated with.
|
23
|
+
# * groups<~Hash> - Hash containing groups associated with the resource.
|
24
|
+
# * id<~String> - The resource's unique identifier.
|
25
|
+
# * type<~String> - The type of the created resource.
|
26
|
+
# * href<~String> - URL to the object's representation (absolute path).
|
27
|
+
# * items<~Array>
|
28
|
+
# * id<~String> - The resource's unique identifier.
|
29
|
+
# * type<~String> - The type of the created resource.
|
30
|
+
# * href<~String> - URL to the object's representation (absolute path).
|
31
|
+
# * properties<~Hash> - Hash containing the volume properties.
|
32
|
+
# * name<~String> - The name of the group.
|
33
|
+
# * createDataCenter<~Boolean> - The group will be allowed to create virtual data centers.
|
34
|
+
# * createSnapshot<~Boolean> - The group will be allowed to create snapshots.
|
35
|
+
# * reserveIp<~Boolean> - The group will be allowed to reserve IP addresses.
|
36
|
+
# * accessActivityLog<~Boolean> - The group will be allowed to access the activity log.
|
37
|
+
# * entities<~Hash> - A hash containing the group entities.
|
38
|
+
# * users<~Hash> - A collection of users that belong to this group.
|
39
|
+
# * id<~String> - The resource's unique identifier.
|
40
|
+
# * type<~String> - The type of the requested resource.
|
41
|
+
# * href<~String> - URL to the object’s representation (absolute path).
|
42
|
+
# * items<~Array> - The array containing individual user resources.
|
43
|
+
# * resources<~Hash> - A collection of resources that are assigned to this group.
|
44
|
+
# * id<~String> - The resource's unique identifier.
|
45
|
+
# * type<~String> - The type of the requested resource.
|
46
|
+
# * href<~String> - URL to the object’s representation (absolute path).
|
47
|
+
# * items<~Array> - An array containing individual resources.
|
48
|
+
# * id<~String> - The resource's unique identifier.
|
49
|
+
# * type<~String> - The type of the requested resource.
|
50
|
+
# * href<~String> - URL to the object’s representation (absolute path).
|
51
|
+
#
|
52
|
+
# {ProfitBricks API Documentation}[https://devops.profitbricks.com/api/cloud/v4/#list-a-specific-resource-type]
|
53
|
+
def get_resource_by_type(resource_type, resource_id)
|
54
|
+
request(
|
55
|
+
:expects => [200],
|
56
|
+
:method => 'GET',
|
57
|
+
:path => "/um/resources/#{resource_type}/#{resource_id}?depth=2"
|
58
|
+
)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
class Mock
|
63
|
+
def get_resource_by_type(resource_type, resource_id)
|
64
|
+
response = Excon::Response.new
|
65
|
+
response.status = 200
|
66
|
+
response.body = data[:resources]
|
67
|
+
|
68
|
+
response
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class ProfitBricks
|
4
|
+
class Real
|
5
|
+
# List all shareable resources of a specific type.
|
6
|
+
# Optionally include their association with groups, permissions that a group has
|
7
|
+
# for the resource, and users that are members of the group.
|
8
|
+
#
|
9
|
+
# ==== Parameters
|
10
|
+
# * resource_type<~String> - Required, Type of resource. [datacenter, image, snapshot, ipblock]
|
11
|
+
#
|
12
|
+
# ==== Returns
|
13
|
+
# * response<~Excon::Response>:
|
14
|
+
# * body<~Hash>:
|
15
|
+
# * id<~String> - "resources"
|
16
|
+
# * type<~String> - The type of response, in this case it will be "collection".
|
17
|
+
# * href<~String> - A URI for accessing the object. "baseurl/um/resources"
|
18
|
+
# * items<~Array> - A collection containing the available resources.
|
19
|
+
# * id<~String> - The resource's unique identifier
|
20
|
+
# * type<~String> - The type of object.
|
21
|
+
# * href<~String> - A URI for accessing the object.
|
22
|
+
#
|
23
|
+
# {ProfitBricks API Documentation}[https://devops.profitbricks.com/api/cloud/v4/#list-all-resources-of-a-type]
|
24
|
+
def get_resources_by_type(resource_type)
|
25
|
+
request(
|
26
|
+
:expects => [200],
|
27
|
+
:method => 'GET',
|
28
|
+
:path => "/um/resources/#{resource_type}?depth=2"
|
29
|
+
)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
class Mock
|
34
|
+
def get_resources_by_type(resource_type)
|
35
|
+
response = Excon::Response.new
|
36
|
+
response.status = 200
|
37
|
+
response.body = data[:resources]
|
38
|
+
|
39
|
+
response
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|