fog-openstack 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/.travis.yml +6 -2
  4. data/README.md +4 -0
  5. data/Rakefile +10 -2
  6. data/fog-openstack.gemspec +2 -3
  7. data/gemfiles/Gemfile-1.9 +1 -1
  8. data/lib/fog/openstack.rb +14 -6
  9. data/lib/fog/openstack/baremetal.rb +1 -1
  10. data/lib/fog/openstack/common.rb +0 -2
  11. data/lib/fog/openstack/compute.rb +78 -75
  12. data/lib/fog/openstack/core.rb +2 -1
  13. data/lib/fog/openstack/docs/compute.md +1 -1
  14. data/lib/fog/openstack/docs/network.md +283 -0
  15. data/lib/fog/openstack/docs/nfv.md +144 -0
  16. data/lib/fog/openstack/examples/compute/block_device_mapping_v2.rb +4 -4
  17. data/lib/fog/openstack/examples/network/network_add_port.rb +21 -0
  18. data/lib/fog/openstack/examples/network/network_rbac.rb +69 -0
  19. data/lib/fog/openstack/identity.rb +14 -22
  20. data/lib/fog/openstack/identity_v2.rb +1 -1
  21. data/lib/fog/openstack/image_v1.rb +13 -28
  22. data/lib/fog/openstack/image_v2.rb +15 -17
  23. data/lib/fog/openstack/introspection.rb +1 -1
  24. data/lib/fog/openstack/metering.rb +1 -1
  25. data/lib/fog/openstack/models/collection.rb +4 -1
  26. data/lib/fog/openstack/models/compute/availability_zone.rb +5 -0
  27. data/lib/fog/openstack/models/compute/flavor.rb +21 -9
  28. data/lib/fog/openstack/models/compute/server.rb +64 -77
  29. data/lib/fog/openstack/models/compute/snapshot.rb +6 -6
  30. data/lib/fog/openstack/models/compute/volume_attachment.rb +15 -0
  31. data/lib/fog/openstack/models/compute/volume_attachments.rb +20 -0
  32. data/lib/fog/openstack/models/identity_v3/projects.rb +1 -1
  33. data/lib/fog/openstack/models/identity_v3/users.rb +2 -2
  34. data/lib/fog/openstack/models/image_v2/image.rb +41 -22
  35. data/lib/fog/openstack/models/network/floating_ip.rb +1 -0
  36. data/lib/fog/openstack/models/network/rbac_policies.rb +33 -0
  37. data/lib/fog/openstack/models/network/rbac_policy.rb +35 -0
  38. data/lib/fog/openstack/models/nfv/vnf.rb +58 -0
  39. data/lib/fog/openstack/models/nfv/vnfd.rb +53 -0
  40. data/lib/fog/openstack/models/nfv/vnfds.rb +28 -0
  41. data/lib/fog/openstack/models/nfv/vnfs.rb +28 -0
  42. data/lib/fog/openstack/models/volume/snapshot.rb +38 -0
  43. data/lib/fog/openstack/models/volume/snapshots.rb +26 -0
  44. data/lib/fog/openstack/models/volume/volume.rb +32 -2
  45. data/lib/fog/openstack/models/volume/volume_type.rb +3 -4
  46. data/lib/fog/openstack/models/volume_v1/snapshot.rb +43 -0
  47. data/lib/fog/openstack/models/volume_v1/snapshots.rb +16 -0
  48. data/lib/fog/openstack/models/volume_v1/volume.rb +12 -2
  49. data/lib/fog/openstack/models/volume_v2/snapshot.rb +43 -0
  50. data/lib/fog/openstack/models/volume_v2/snapshots.rb +16 -0
  51. data/lib/fog/openstack/models/volume_v2/volume.rb +12 -3
  52. data/lib/fog/openstack/network.rb +53 -46
  53. data/lib/fog/openstack/nfv.rb +158 -0
  54. data/lib/fog/openstack/orchestration.rb +1 -1
  55. data/lib/fog/openstack/planning.rb +1 -1
  56. data/lib/fog/openstack/requests/compute/create_server.rb +1 -1
  57. data/lib/fog/openstack/requests/compute/{create_volume_snapshot.rb → create_snapshot.rb} +16 -16
  58. data/lib/fog/openstack/requests/compute/delete_flavor_metadata.rb +30 -0
  59. data/lib/fog/openstack/requests/compute/evacuate_server.rb +8 -7
  60. data/lib/fog/openstack/requests/compute/get_key_pair.rb +49 -0
  61. data/lib/fog/openstack/requests/compute/list_availability_zones.rb +23 -0
  62. data/lib/fog/openstack/requests/compute/list_volume_attachments.rb +31 -0
  63. data/lib/fog/openstack/requests/compute/update_flavor_metadata.rb +33 -0
  64. data/lib/fog/openstack/requests/network/create_rbac_policy.rb +42 -0
  65. data/lib/fog/openstack/requests/network/delete_rbac_policy.rb +28 -0
  66. data/lib/fog/openstack/requests/network/get_rbac_policy.rb +28 -0
  67. data/lib/fog/openstack/requests/network/list_rbac_policies.rb +25 -0
  68. data/lib/fog/openstack/requests/network/update_port.rb +8 -7
  69. data/lib/fog/openstack/requests/network/update_rbac_policy.rb +41 -0
  70. data/lib/fog/openstack/requests/nfv/create_vnf.rb +37 -0
  71. data/lib/fog/openstack/requests/nfv/create_vnfd.rb +35 -0
  72. data/lib/fog/openstack/requests/nfv/delete_vnf.rb +23 -0
  73. data/lib/fog/openstack/requests/nfv/delete_vnfd.rb +23 -0
  74. data/lib/fog/openstack/requests/nfv/get_vnf.rb +24 -0
  75. data/lib/fog/openstack/requests/nfv/get_vnfd.rb +24 -0
  76. data/lib/fog/openstack/requests/nfv/list_vnfds.rb +25 -0
  77. data/lib/fog/openstack/requests/nfv/list_vnfs.rb +25 -0
  78. data/lib/fog/openstack/requests/nfv/update_vnf.rb +35 -0
  79. data/lib/fog/openstack/requests/volume/action.rb +16 -0
  80. data/lib/fog/openstack/requests/volume/create_snapshot.rb +18 -0
  81. data/lib/fog/openstack/requests/volume/delete_metadata.rb +15 -0
  82. data/lib/fog/openstack/requests/volume/delete_snapshot.rb +5 -5
  83. data/lib/fog/openstack/requests/volume/delete_snapshot_metadata.rb +15 -0
  84. data/lib/fog/openstack/requests/volume/replace_metadata.rb +20 -0
  85. data/lib/fog/openstack/requests/volume/update_metadata.rb +20 -0
  86. data/lib/fog/openstack/requests/volume/update_snapshot.rb +37 -0
  87. data/lib/fog/openstack/requests/volume/update_snapshot_metadata.rb +20 -0
  88. data/lib/fog/openstack/requests/volume/update_volume.rb +25 -0
  89. data/lib/fog/openstack/requests/volume_v1/action.rb +2 -0
  90. data/lib/fog/openstack/requests/volume_v1/create_snapshot.rb +45 -0
  91. data/lib/fog/openstack/requests/volume_v1/delete_metadata.rb +2 -0
  92. data/lib/fog/openstack/requests/volume_v1/delete_snapshot_metadata.rb +2 -0
  93. data/lib/fog/openstack/requests/volume_v1/replace_metadata.rb +2 -0
  94. data/lib/fog/openstack/requests/volume_v1/update_metadata.rb +2 -0
  95. data/lib/fog/openstack/requests/volume_v1/update_snapshot.rb +2 -0
  96. data/lib/fog/openstack/requests/volume_v1/update_snapshot_metadata.rb +2 -0
  97. data/lib/fog/openstack/requests/volume_v1/update_volume.rb +2 -0
  98. data/lib/fog/openstack/requests/volume_v2/action.rb +2 -0
  99. data/lib/fog/openstack/requests/volume_v2/create_snapshot.rb +45 -0
  100. data/lib/fog/openstack/requests/volume_v2/delete_metadata.rb +2 -0
  101. data/lib/fog/openstack/requests/volume_v2/delete_snapshot_metadata.rb +2 -0
  102. data/lib/fog/openstack/requests/volume_v2/replace_metadata.rb +2 -0
  103. data/lib/fog/openstack/requests/volume_v2/update_metadata.rb +2 -0
  104. data/lib/fog/openstack/requests/volume_v2/update_snapshot.rb +2 -0
  105. data/lib/fog/openstack/requests/volume_v2/update_snapshot_metadata.rb +2 -0
  106. data/lib/fog/openstack/requests/volume_v2/update_volume.rb +2 -0
  107. data/lib/fog/openstack/storage.rb +1 -1
  108. data/lib/fog/openstack/version.rb +1 -1
  109. data/lib/fog/openstack/volume.rb +1 -1
  110. data/lib/fog/openstack/volume_v1.rb +29 -21
  111. data/lib/fog/openstack/volume_v2.rb +29 -21
  112. data/supported.md +54 -0
  113. data/tests/openstack/models/identity/ec2_credential_tests.rb +1 -1
  114. data/tests/openstack/models/identity/ec2_credentials_tests.rb +1 -1
  115. data/tests/openstack/models/identity/role_tests.rb +8 -3
  116. data/tests/openstack/models/identity/roles_tests.rb +5 -4
  117. data/tests/openstack/models/identity/tenant_tests.rb +7 -4
  118. data/tests/openstack/models/identity/tenants_tests.rb +10 -5
  119. data/tests/openstack/models/identity/user_tests.rb +4 -3
  120. data/tests/openstack/models/identity/users_tests.rb +10 -6
  121. data/tests/openstack/models/nfv/vnf_tests.rb +35 -0
  122. data/tests/openstack/models/nfv/vnfd_tests.rb +23 -0
  123. data/tests/openstack/models/nfv/vnfds_tests.rb +31 -0
  124. data/tests/openstack/models/nfv/vnfs_tests.rb +38 -0
  125. data/tests/openstack/requests/identity/ec2_credentials_tests.rb +6 -9
  126. data/tests/openstack/requests/identity/helper.rb +12 -4
  127. data/tests/openstack/requests/identity/role_tests.rb +13 -10
  128. data/tests/openstack/requests/identity/tenant_tests.rb +10 -9
  129. data/tests/openstack/requests/identity/user_tests.rb +11 -6
  130. data/tests/openstack/requests/image/image_tests.rb +1 -0
  131. data/tests/openstack/requests/nfv/vnf_tests.rb +70 -0
  132. data/tests/openstack/requests/nfv/vnfd_tests.rb +44 -0
  133. metadata +81 -31
  134. data/lib/fog/openstack/requests/volume/create_volume_snapshot.rb +0 -26
  135. data/lib/fog/openstack/requests/volume_v1/create_volume_snapshot.rb +0 -44
  136. data/lib/fog/openstack/requests/volume_v2/create_volume_snapshot.rb +0 -43
  137. data/tests/openstack/authenticate_tests.rb +0 -200
  138. data/tests/openstack/identity_version_tests.rb +0 -25
  139. data/tests/openstack/storage_tests.rb +0 -18
  140. data/tests/openstack/version_tests.rb +0 -55
  141. data/tests/openstack/volume_tests.rb +0 -18
@@ -0,0 +1,16 @@
1
+ module Fog
2
+ module Volume
3
+ class OpenStack
4
+ module Real
5
+ def action(id, data)
6
+ request(
7
+ :body => Fog::JSON.encode(data),
8
+ :expects => [200, 202],
9
+ :method => 'POST',
10
+ :path => "volumes/#{id}/action"
11
+ )
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,18 @@
1
+ module Fog
2
+ module Volume
3
+ class OpenStack
4
+ module Real
5
+ private
6
+
7
+ def _create_snapshot(data)
8
+ request(
9
+ :body => Fog::JSON.encode(data),
10
+ :expects => [200, 202],
11
+ :method => 'POST',
12
+ :path => "snapshots"
13
+ )
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,15 @@
1
+ module Fog
2
+ module Volume
3
+ class OpenStack
4
+ module Real
5
+ def delete_metadata(volume_id, key_name)
6
+ request(
7
+ :expects => [200],
8
+ :method => 'DELETE',
9
+ :path => "volumes/#{volume_id}/metadata/#{key_name}"
10
+ )
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -4,17 +4,17 @@ module Fog
4
4
  module Real
5
5
  def delete_snapshot(snapshot_id)
6
6
  request(
7
- :expects => 202,
8
- :method => 'DELETE',
9
- :path => "snapshots/#{snapshot_id}"
7
+ :expects => 202,
8
+ :method => 'DELETE',
9
+ :path => "snapshots/#{snapshot_id}"
10
10
  )
11
11
  end
12
12
  end
13
13
 
14
14
  module Mock
15
- def delete_snapshot(snapshot_id)
15
+ def delete_snapshot(_snapshot_id)
16
16
  response = Excon::Response.new
17
- response.status = 204
17
+ response.status = 202
18
18
  response
19
19
  end
20
20
  end
@@ -0,0 +1,15 @@
1
+ module Fog
2
+ module Volume
3
+ class OpenStack
4
+ module Real
5
+ def delete_snapshot_metadata(snapshot_id, key_name)
6
+ request(
7
+ :expects => [200],
8
+ :method => 'DELETE',
9
+ :path => "snapshots/#{snapshot_id}/metadata/#{key_name}"
10
+ )
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,20 @@
1
+ module Fog
2
+ module Volume
3
+ class OpenStack
4
+ module Real
5
+ def replace_metadata(volume_id, metadata = {})
6
+ data = {
7
+ 'metadata' => metadata
8
+ }
9
+
10
+ request(
11
+ :body => Fog::JSON.encode(data),
12
+ :expects => [200],
13
+ :method => 'PUT',
14
+ :path => "volumes/#{volume_id}/metadata"
15
+ )
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ module Fog
2
+ module Volume
3
+ class OpenStack
4
+ module Real
5
+ def update_metadata(volume_id, metadata = {})
6
+ data = {
7
+ 'metadata' => metadata
8
+ }
9
+
10
+ request(
11
+ :body => Fog::JSON.encode(data),
12
+ :expects => [200],
13
+ :method => 'POST',
14
+ :path => "volumes/#{volume_id}/metadata"
15
+ )
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,37 @@
1
+ module Fog
2
+ module Volume
3
+ class OpenStack
4
+ module Real
5
+ def update_snapshot(snapshot_id, data = {})
6
+ request(
7
+ :body => Fog::JSON.encode('snapshot' => data),
8
+ :expects => 200,
9
+ :method => 'PUT',
10
+ :path => "snapshots/#{snapshot_id}"
11
+ )
12
+ end
13
+ end
14
+
15
+ module Mock
16
+ def update_snapshot(snapshot_id, options = {})
17
+ unless snapshot_id
18
+ raise ArgumentError, 'snapshot_id is required'
19
+ end
20
+ response = Excon::Response.new
21
+ if snapshot = data[:snapshots][snapshot_id]
22
+ response.status = 200
23
+ snapshot['display_name'] = options['display_name'] if options['display_name']
24
+ snapshot['display_description'] = options['display_description'] if options['display_description']
25
+ snapshot['name'] = options['name'] if options['name']
26
+ snapshot['description'] = options['description'] if options['description']
27
+ snapshot['metadata'] = options['metadata'] if options['metadata']
28
+ response.body = {'snapshot' => snapshot}
29
+ response
30
+ else
31
+ raise Fog::HP::BlockStorageV2::NotFound
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,20 @@
1
+ module Fog
2
+ module Volume
3
+ class OpenStack
4
+ module Real
5
+ def update_snapshot_metadata(snapshot_id, metadata = {})
6
+ data = {
7
+ 'metadata' => metadata
8
+ }
9
+
10
+ request(
11
+ :body => Fog::JSON.encode(data),
12
+ :expects => [200],
13
+ :method => 'POST',
14
+ :path => "snapshots/#{snapshot_id}/metadata"
15
+ )
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,25 @@
1
+ module Fog
2
+ module Volume
3
+ class OpenStack
4
+ module Real
5
+ def update_volume(volume_id, data = {})
6
+ request(
7
+ :body => Fog::JSON.encode('volume' => data),
8
+ :expects => 200,
9
+ :method => 'PUT',
10
+ :path => "volumes/#{volume_id}"
11
+ )
12
+ end
13
+ end
14
+
15
+ module Mock
16
+ def update_volume(volume_id, data = {})
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response.body = {'volume' => data.merge('id' => volume_id)}
20
+ response
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,2 @@
1
+ require 'fog/openstack/requests/volume/action'
2
+ require 'fog/openstack/requests/volume_v1/real'
@@ -0,0 +1,45 @@
1
+ require 'fog/openstack/requests/volume/create_snapshot'
2
+
3
+ module Fog
4
+ module Volume
5
+ class OpenStack
6
+ class V1
7
+ class Real
8
+ include Fog::Volume::OpenStack::Real
9
+
10
+ def create_snapshot(volume_id, name, description, force = false)
11
+ data = {
12
+ 'snapshot' => {
13
+ 'volume_id' => volume_id,
14
+ 'display_name' => name,
15
+ 'display_description' => description,
16
+ 'force' => force.nil? ? false : force
17
+ }
18
+ }
19
+
20
+ _create_snapshot(data)
21
+ end
22
+ end
23
+
24
+ class Mock
25
+ def create_snapshot(volume_id, name, description, _force = false)
26
+ response = Excon::Response.new
27
+ response.status = 202
28
+ response.body = {
29
+ "snapshot" => {
30
+ "status" => "creating",
31
+ "display_name" => name,
32
+ "created_at" => Time.now,
33
+ "display_description" => description,
34
+ "volume_id" => volume_id,
35
+ "id" => "5",
36
+ "size" => 1
37
+ }
38
+ }
39
+ response
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,2 @@
1
+ require 'fog/openstack/requests/volume/delete_metadata'
2
+ require 'fog/openstack/requests/volume_v1/real'
@@ -0,0 +1,2 @@
1
+ require 'fog/openstack/requests/volume/delete_snapshot_metadata'
2
+ require 'fog/openstack/requests/volume_v1/real'
@@ -0,0 +1,2 @@
1
+ require 'fog/openstack/requests/volume/replace_metadata'
2
+ require 'fog/openstack/requests/volume_v1/real'
@@ -0,0 +1,2 @@
1
+ require 'fog/openstack/requests/volume/update_metadata'
2
+ require 'fog/openstack/requests/volume_v1/real'
@@ -0,0 +1,2 @@
1
+ require 'fog/openstack/requests/volume/update_snapshot'
2
+ require 'fog/openstack/requests/volume_v1/real'
@@ -0,0 +1,2 @@
1
+ require 'fog/openstack/requests/volume/update_snapshot_metadata'
2
+ require 'fog/openstack/requests/volume_v1/real'
@@ -0,0 +1,2 @@
1
+ require 'fog/openstack/requests/volume/update_volume'
2
+ require 'fog/openstack/requests/volume_v1/real'
@@ -0,0 +1,2 @@
1
+ require 'fog/openstack/requests/volume/action'
2
+ require 'fog/openstack/requests/volume_v2/real'
@@ -0,0 +1,45 @@
1
+ require 'fog/openstack/requests/volume/create_snapshot'
2
+
3
+ module Fog
4
+ module Volume
5
+ class OpenStack
6
+ class V2
7
+ class Real
8
+ include Fog::Volume::OpenStack::Real
9
+
10
+ def create_snapshot(volume_id, name, description, force = false)
11
+ data = {
12
+ 'snapshot' => {
13
+ 'volume_id' => volume_id,
14
+ 'name' => name,
15
+ 'description' => description,
16
+ 'force' => force.nil? ? false : force
17
+ }
18
+ }
19
+
20
+ _create_snapshot(data)
21
+ end
22
+ end
23
+
24
+ class Mock
25
+ def create_snapshot(volume_id, name, description, _force = false)
26
+ response = Excon::Response.new
27
+ response.status = 202
28
+ response.body = {
29
+ "snapshot" => {
30
+ "status" => "creating",
31
+ "name" => name,
32
+ "created_at" => Time.now,
33
+ "description" => description,
34
+ "volume_id" => volume_id,
35
+ "id" => "5",
36
+ "size" => 1
37
+ }
38
+ }
39
+ response
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,2 @@
1
+ require 'fog/openstack/requests/volume/delete_metadata'
2
+ require 'fog/openstack/requests/volume_v2/real'
@@ -0,0 +1,2 @@
1
+ require 'fog/openstack/requests/volume/delete_snapshot_metadata'
2
+ require 'fog/openstack/requests/volume_v2/real'
@@ -0,0 +1,2 @@
1
+ require 'fog/openstack/requests/volume/replace_metadata'
2
+ require 'fog/openstack/requests/volume_v2/real'
@@ -0,0 +1,2 @@
1
+ require 'fog/openstack/requests/volume/update_metadata'
2
+ require 'fog/openstack/requests/volume_v2/real'
@@ -0,0 +1,2 @@
1
+ require 'fog/openstack/requests/volume/update_snapshot'
2
+ require 'fog/openstack/requests/volume_v2/real'
@@ -0,0 +1,2 @@
1
+ require 'fog/openstack/requests/volume/update_snapshot_metadata'
2
+ require 'fog/openstack/requests/volume_v2/real'
@@ -0,0 +1,2 @@
1
+ require 'fog/openstack/requests/volume/update_volume'
2
+ require 'fog/openstack/requests/volume_v2/real'
@@ -10,7 +10,7 @@ module Fog
10
10
  :openstack_api_key, :openstack_username, :openstack_identity_endpoint,
11
11
  :current_user, :current_tenant, :openstack_region,
12
12
  :openstack_endpoint_type, :openstack_auth_omit_default_port,
13
- :openstack_project_name, :openstack_project_id,
13
+ :openstack_project_name, :openstack_project_id, :openstack_cache_ttl,
14
14
  :openstack_project_domain, :openstack_user_domain, :openstack_domain_name,
15
15
  :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id,
16
16
  :openstack_identity_prefix, :openstack_temp_url_key
@@ -1,5 +1,5 @@
1
1
  module Fog
2
2
  module Openstack
3
- VERSION = "0.1.5"
3
+ VERSION = "0.1.6"
4
4
  end
5
5
  end
@@ -8,7 +8,7 @@ module Fog
8
8
  :openstack_tenant, :openstack_tenant_id,
9
9
  :openstack_api_key, :openstack_username, :openstack_identity_endpoint,
10
10
  :current_user, :current_tenant, :openstack_region,
11
- :openstack_endpoint_type,
11
+ :openstack_endpoint_type, :openstack_cache_ttl,
12
12
  :openstack_project_name, :openstack_project_id,
13
13
  :openstack_project_domain, :openstack_user_domain, :openstack_domain_name,
14
14
  :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id,
@@ -1,4 +1,4 @@
1
-
1
+ require 'fog/openstack/core'
2
2
  require 'fog/openstack/common'
3
3
  require 'fog/openstack/volume'
4
4
 
@@ -23,6 +23,9 @@ module Fog
23
23
  model :volume_type
24
24
  collection :volume_types
25
25
 
26
+ model :snapshot
27
+ collection :snapshots
28
+
26
29
  model :transfer
27
30
  collection :transfers
28
31
 
@@ -32,6 +35,7 @@ module Fog
32
35
  request :list_volumes
33
36
  request :list_volumes_detailed
34
37
  request :create_volume
38
+ request :update_volume
35
39
  request :get_volume_details
36
40
  request :extend_volume
37
41
  request :delete_volume
@@ -43,11 +47,14 @@ module Fog
43
47
  request :delete_volume_type
44
48
  request :get_volume_type_details
45
49
 
46
- request :create_volume_snapshot
50
+ request :create_snapshot
51
+ request :update_snapshot
47
52
  request :list_snapshots
48
53
  request :list_snapshots_detailed
49
54
  request :get_snapshot_details
50
55
  request :delete_snapshot
56
+ request :update_snapshot_metadata
57
+ request :delete_snapshot_metadata
51
58
 
52
59
  request :list_transfers
53
60
  request :list_transfers_detailed
@@ -59,22 +66,26 @@ module Fog
59
66
  request :update_quota
60
67
  request :get_quota
61
68
  request :get_quota_defaults
62
-
63
69
  request :get_quota_usage
64
70
 
71
+ request :update_metadata
72
+ request :replace_metadata
73
+ request :delete_metadata
74
+
65
75
  request :set_tenant
76
+ request :action
66
77
 
67
78
  class Mock
68
79
  def self.data
69
80
  @data ||= Hash.new do |hash, key|
70
81
  hash[key] = {
71
- :users => {},
72
- :tenants => {},
73
- :quota => {
74
- 'gigabytes' => 1000,
75
- 'volumes' => 10,
76
- 'snapshots' => 10
77
- }
82
+ :users => {},
83
+ :tenants => {},
84
+ :quota => {
85
+ 'gigabytes' => 1000,
86
+ 'volumes' => 10,
87
+ 'snapshots' => 10
88
+ }
78
89
  }
79
90
  end
80
91
  end
@@ -83,7 +94,7 @@ module Fog
83
94
  @data = nil
84
95
  end
85
96
 
86
- def initialize(options={})
97
+ def initialize(options = {})
87
98
  @openstack_username = options[:openstack_username]
88
99
  @openstack_tenant = options[:openstack_tenant]
89
100
  @openstack_auth_uri = URI.parse(options[:openstack_auth_url])
@@ -100,11 +111,11 @@ module Fog
100
111
  unless @data[:users].find { |u| u['name'] == options[:openstack_username] }
101
112
  id = Fog::Mock.random_numbers(6).to_s
102
113
  @data[:users][id] = {
103
- 'id' => id,
104
- 'name' => options[:openstack_username],
105
- 'email' => "#{options[:openstack_username]}@mock.com",
106
- 'tenantId' => Fog::Mock.random_numbers(6).to_s,
107
- 'enabled' => true
114
+ 'id' => id,
115
+ 'name' => options[:openstack_username],
116
+ 'email' => "#{options[:openstack_username]}@mock.com",
117
+ 'tenantId' => Fog::Mock.random_numbers(6).to_s,
118
+ 'enabled' => true
108
119
  }
109
120
  end
110
121
  end
@@ -132,7 +143,7 @@ module Fog
132
143
  end
133
144
  include Fog::OpenStack::Common
134
145
 
135
- def initialize(options={})
146
+ def initialize(options = {})
136
147
  initialize_identity options
137
148
 
138
149
  @openstack_service_type = options[:openstack_service_type] || ['volume']
@@ -153,11 +164,8 @@ module Fog
153
164
  @persistent = options[:persistent] || false
154
165
  @connection = Fog::Core::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
155
166
  end
156
-
157
- private
158
-
159
167
  end
160
168
  end
161
169
  end
162
170
  end
163
- end
171
+ end