fog 1.32.0 → 1.33.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.
Files changed (204) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +59 -0
  3. data/Gemfile +1 -0
  4. data/Rakefile +4 -4
  5. data/fog.gemspec +3 -2
  6. data/lib/fog/linode/requests/compute/avail_datacenters.rb +8 -7
  7. data/lib/fog/openstack.rb +1 -0
  8. data/lib/fog/openstack/compute.rb +7 -1
  9. data/lib/fog/openstack/core.rb +28 -54
  10. data/lib/fog/openstack/identity.rb +1 -0
  11. data/lib/fog/openstack/identity_v3.rb +10 -9
  12. data/lib/fog/openstack/models/baremetal/chassis.rb +3 -14
  13. data/lib/fog/openstack/models/baremetal/chassis_collection.rb +5 -5
  14. data/lib/fog/openstack/models/baremetal/driver.rb +2 -8
  15. data/lib/fog/openstack/models/baremetal/drivers.rb +3 -5
  16. data/lib/fog/openstack/models/baremetal/node.rb +3 -14
  17. data/lib/fog/openstack/models/baremetal/nodes.rb +4 -4
  18. data/lib/fog/openstack/models/baremetal/port.rb +3 -14
  19. data/lib/fog/openstack/models/baremetal/ports.rb +4 -4
  20. data/lib/fog/openstack/models/collection.rb +45 -0
  21. data/lib/fog/openstack/models/compute/address.rb +2 -2
  22. data/lib/fog/openstack/models/compute/addresses.rb +3 -5
  23. data/lib/fog/openstack/models/compute/aggregate.rb +2 -8
  24. data/lib/fog/openstack/models/compute/aggregates.rb +3 -5
  25. data/lib/fog/openstack/models/compute/availability_zone.rb +14 -0
  26. data/lib/fog/openstack/models/compute/availability_zones.rb +22 -0
  27. data/lib/fog/openstack/models/compute/flavor.rb +2 -8
  28. data/lib/fog/openstack/models/compute/flavors.rb +6 -6
  29. data/lib/fog/openstack/models/compute/host.rb +1 -1
  30. data/lib/fog/openstack/models/compute/hosts.rb +4 -6
  31. data/lib/fog/openstack/models/compute/image.rb +2 -8
  32. data/lib/fog/openstack/models/compute/images.rb +4 -6
  33. data/lib/fog/openstack/models/compute/key_pair.rb +2 -2
  34. data/lib/fog/openstack/models/compute/key_pairs.rb +3 -4
  35. data/lib/fog/openstack/models/compute/metadata.rb +3 -2
  36. data/lib/fog/openstack/models/compute/metadatum.rb +2 -2
  37. data/lib/fog/openstack/models/compute/network.rb +2 -2
  38. data/lib/fog/openstack/models/compute/networks.rb +3 -2
  39. data/lib/fog/openstack/models/compute/security_group.rb +2 -2
  40. data/lib/fog/openstack/models/compute/security_group_rule.rb +2 -2
  41. data/lib/fog/openstack/models/compute/security_group_rules.rb +2 -2
  42. data/lib/fog/openstack/models/compute/security_groups.rb +3 -5
  43. data/lib/fog/openstack/models/compute/server.rb +20 -1
  44. data/lib/fog/openstack/models/compute/servers.rb +9 -5
  45. data/lib/fog/openstack/models/compute/service.rb +2 -8
  46. data/lib/fog/openstack/models/compute/services.rb +4 -4
  47. data/lib/fog/openstack/models/compute/snapshot.rb +2 -8
  48. data/lib/fog/openstack/models/compute/snapshots.rb +5 -5
  49. data/lib/fog/openstack/models/compute/tenant.rb +2 -2
  50. data/lib/fog/openstack/models/compute/tenants.rb +3 -4
  51. data/lib/fog/openstack/models/compute/volume.rb +2 -8
  52. data/lib/fog/openstack/models/compute/volumes.rb +5 -5
  53. data/lib/fog/openstack/models/identity_v2/ec2_credential.rb +3 -9
  54. data/lib/fog/openstack/models/identity_v2/ec2_credentials.rb +3 -5
  55. data/lib/fog/openstack/models/identity_v2/role.rb +3 -3
  56. data/lib/fog/openstack/models/identity_v2/roles.rb +3 -5
  57. data/lib/fog/openstack/models/identity_v2/tenant.rb +5 -9
  58. data/lib/fog/openstack/models/identity_v2/tenants.rb +3 -5
  59. data/lib/fog/openstack/models/identity_v2/user.rb +2 -8
  60. data/lib/fog/openstack/models/identity_v2/users.rb +3 -5
  61. data/lib/fog/openstack/models/identity_v3/domain.rb +5 -9
  62. data/lib/fog/openstack/models/identity_v3/domains.rb +3 -5
  63. data/lib/fog/openstack/models/identity_v3/endpoint.rb +5 -9
  64. data/lib/fog/openstack/models/identity_v3/endpoints.rb +3 -5
  65. data/lib/fog/openstack/models/identity_v3/group.rb +5 -9
  66. data/lib/fog/openstack/models/identity_v3/groups.rb +3 -5
  67. data/lib/fog/openstack/models/identity_v3/os_credential.rb +3 -3
  68. data/lib/fog/openstack/models/identity_v3/os_credentials.rb +3 -5
  69. data/lib/fog/openstack/models/identity_v3/policies.rb +3 -5
  70. data/lib/fog/openstack/models/identity_v3/policy.rb +5 -9
  71. data/lib/fog/openstack/models/identity_v3/project.rb +5 -8
  72. data/lib/fog/openstack/models/identity_v3/projects.rb +21 -10
  73. data/lib/fog/openstack/models/identity_v3/role.rb +3 -8
  74. data/lib/fog/openstack/models/identity_v3/role_assignment.rb +3 -3
  75. data/lib/fog/openstack/models/identity_v3/role_assignments.rb +3 -5
  76. data/lib/fog/openstack/models/identity_v3/roles.rb +3 -5
  77. data/lib/fog/openstack/models/identity_v3/service.rb +3 -3
  78. data/lib/fog/openstack/models/identity_v3/services.rb +3 -5
  79. data/lib/fog/openstack/models/identity_v3/token.rb +3 -3
  80. data/lib/fog/openstack/models/identity_v3/tokens.rb +3 -3
  81. data/lib/fog/openstack/models/identity_v3/user.rb +3 -9
  82. data/lib/fog/openstack/models/identity_v3/users.rb +3 -5
  83. data/lib/fog/openstack/models/image/image.rb +2 -13
  84. data/lib/fog/openstack/models/image/images.rb +5 -5
  85. data/lib/fog/openstack/models/metering/resource.rb +2 -7
  86. data/lib/fog/openstack/models/metering/resources.rb +3 -3
  87. data/lib/fog/openstack/models/model.rb +44 -0
  88. data/lib/fog/openstack/models/network/floating_ip.rb +2 -7
  89. data/lib/fog/openstack/models/network/floating_ips.rb +3 -5
  90. data/lib/fog/openstack/models/network/lb_health_monitor.rb +2 -12
  91. data/lib/fog/openstack/models/network/lb_health_monitors.rb +3 -5
  92. data/lib/fog/openstack/models/network/lb_member.rb +2 -12
  93. data/lib/fog/openstack/models/network/lb_members.rb +3 -5
  94. data/lib/fog/openstack/models/network/lb_pool.rb +2 -12
  95. data/lib/fog/openstack/models/network/lb_pools.rb +3 -5
  96. data/lib/fog/openstack/models/network/lb_vip.rb +2 -12
  97. data/lib/fog/openstack/models/network/lb_vips.rb +3 -5
  98. data/lib/fog/openstack/models/network/network.rb +2 -12
  99. data/lib/fog/openstack/models/network/networks.rb +3 -5
  100. data/lib/fog/openstack/models/network/port.rb +2 -13
  101. data/lib/fog/openstack/models/network/ports.rb +3 -5
  102. data/lib/fog/openstack/models/network/router.rb +2 -13
  103. data/lib/fog/openstack/models/network/routers.rb +3 -5
  104. data/lib/fog/openstack/models/network/security_group.rb +2 -2
  105. data/lib/fog/openstack/models/network/security_group_rule.rb +2 -2
  106. data/lib/fog/openstack/models/network/security_group_rules.rb +3 -5
  107. data/lib/fog/openstack/models/network/security_groups.rb +3 -5
  108. data/lib/fog/openstack/models/network/subnet.rb +3 -14
  109. data/lib/fog/openstack/models/network/subnets.rb +3 -5
  110. data/lib/fog/openstack/models/orchestration/event.rb +2 -2
  111. data/lib/fog/openstack/models/orchestration/events.rb +5 -7
  112. data/lib/fog/openstack/models/orchestration/resource.rb +2 -2
  113. data/lib/fog/openstack/models/orchestration/resource_schemas.rb +2 -2
  114. data/lib/fog/openstack/models/orchestration/resources.rb +3 -5
  115. data/lib/fog/openstack/models/orchestration/stack.rb +3 -7
  116. data/lib/fog/openstack/models/orchestration/stacks.rb +5 -5
  117. data/lib/fog/openstack/models/orchestration/template.rb +2 -2
  118. data/lib/fog/openstack/models/orchestration/templates.rb +1 -1
  119. data/lib/fog/openstack/models/planning/plan.rb +2 -13
  120. data/lib/fog/openstack/models/planning/plans.rb +3 -5
  121. data/lib/fog/openstack/models/planning/role.rb +2 -8
  122. data/lib/fog/openstack/models/planning/roles.rb +3 -6
  123. data/lib/fog/openstack/models/storage/directories.rb +4 -6
  124. data/lib/fog/openstack/models/storage/directory.rb +2 -2
  125. data/lib/fog/openstack/models/storage/file.rb +15 -2
  126. data/lib/fog/openstack/models/storage/files.rb +7 -8
  127. data/lib/fog/openstack/models/volume/availability_zone.rb +13 -0
  128. data/lib/fog/openstack/models/volume/availability_zones.rb +17 -0
  129. data/lib/fog/openstack/models/volume/transfer.rb +36 -0
  130. data/lib/fog/openstack/models/volume/transfers.rb +38 -0
  131. data/lib/fog/openstack/models/volume/volume.rb +9 -8
  132. data/lib/fog/openstack/models/volume/volume_type.rb +2 -8
  133. data/lib/fog/openstack/models/volume/volume_types.rb +3 -6
  134. data/lib/fog/openstack/models/volume/volumes.rb +5 -6
  135. data/lib/fog/openstack/requests/compute/list_servers.rb +8 -5
  136. data/lib/fog/openstack/requests/compute/list_servers_detail.rb +9 -6
  137. data/lib/fog/openstack/requests/compute/list_zones.rb +6 -5
  138. data/lib/fog/openstack/requests/compute/list_zones_detailed.rb +55 -0
  139. data/lib/fog/openstack/requests/compute/shelve_offload_server.rb +24 -0
  140. data/lib/fog/openstack/requests/compute/shelve_server.rb +24 -0
  141. data/lib/fog/openstack/requests/compute/unshelve_server.rb +24 -0
  142. data/lib/fog/openstack/requests/identity_v3/get_project.rb +2 -2
  143. data/lib/fog/openstack/requests/network/create_subnet.rb +1 -1
  144. data/lib/fog/openstack/requests/network/update_subnet.rb +8 -7
  145. data/lib/fog/openstack/requests/volume/accept_transfer.rb +24 -0
  146. data/lib/fog/openstack/requests/volume/create_transfer.rb +27 -0
  147. data/lib/fog/openstack/requests/volume/delete_transfer.rb +17 -0
  148. data/lib/fog/openstack/requests/volume/extend_volume.rb +25 -0
  149. data/lib/fog/openstack/requests/volume/get_transfer_details.rb +17 -0
  150. data/lib/fog/openstack/requests/volume/list_transfers.rb +18 -0
  151. data/lib/fog/openstack/requests/volume/list_transfers_detailed.rb +18 -0
  152. data/lib/fog/openstack/requests/volume/list_zones.rb +32 -0
  153. data/lib/fog/openstack/storage.rb +3 -1
  154. data/lib/fog/openstack/volume.rb +16 -0
  155. data/lib/fog/rackspace/examples/compute_v2/create_network.rb +1 -1
  156. data/lib/fog/vcloud_director/generators/compute/edge_gateway_service_configuration.rb +31 -30
  157. data/lib/fog/vcloud_director/models/compute/task.rb +2 -2
  158. data/lib/fog/version.rb +1 -1
  159. data/lib/fog/vsphere/compute.rb +1 -0
  160. data/lib/fog/vsphere/requests/compute/get_resource_pool.rb +1 -1
  161. data/lib/fog/vsphere/requests/compute/get_virtual_machine.rb +4 -3
  162. data/lib/fog/vsphere/requests/compute/list_clusters.rb +1 -1
  163. data/lib/fog/vsphere/requests/compute/list_vm_interfaces.rb +2 -2
  164. data/lib/fog/vsphere/requests/compute/vm_clone.rb +101 -30
  165. data/lib/fog/vsphere/requests/compute/vm_execute.rb +47 -0
  166. data/lib/tasks/changelog_task.rb +1 -0
  167. data/spec/fog/openstack/identity_v3/{idv3.yml → common_setup.yml} +0 -0
  168. data/spec/fog/openstack/identity_v3/idv3_project_hier_crud_list.yml +1394 -0
  169. data/spec/fog/openstack/identity_v3_spec.rb +255 -196
  170. data/spec/fog/openstack/network/common_setup.yml +131 -0
  171. data/spec/fog/openstack/network/subnets_crud.yml +140 -0
  172. data/spec/fog/openstack/network_spec.rb +43 -0
  173. data/spec/fog/openstack/shared_context.rb +98 -0
  174. data/spec/fog/openstack/volume/{volume_common_setup.yml → common_setup.yml} +0 -0
  175. data/spec/fog/openstack/volume/volume_extend.yml +762 -0
  176. data/spec/fog/openstack/volume/volume_transfer_and_accept.yml +1078 -0
  177. data/spec/fog/openstack/volume/volume_transfer_and_delete.yml +695 -0
  178. data/spec/fog/openstack/volume_spec.rb +232 -67
  179. data/tests/openstack/models/storage/file_tests.rb +26 -0
  180. data/tests/openstack/requests/compute/availability_zone_tests.rb +18 -0
  181. data/tests/openstack/requests/compute/server_tests.rb +12 -0
  182. data/tests/openstack/requests/network/subnet_tests.rb +2 -2
  183. data/tests/openstack/requests/volume/availability_zone_tests.rb +13 -0
  184. data/tests/vcloud_director/requests/compute/edge_gateway_tests.rb +2 -2
  185. metadata +61 -26
  186. data/lib/fog/dynect.rb +0 -1
  187. data/lib/fog/dynect/core.rb +0 -26
  188. data/lib/fog/dynect/dns.rb +0 -157
  189. data/lib/fog/dynect/models/dns/record.rb +0 -67
  190. data/lib/fog/dynect/models/dns/records.rb +0 -48
  191. data/lib/fog/dynect/models/dns/zone.rb +0 -56
  192. data/lib/fog/dynect/models/dns/zones.rb +0 -25
  193. data/lib/fog/dynect/requests/dns/delete_record.rb +0 -55
  194. data/lib/fog/dynect/requests/dns/delete_zone.rb +0 -41
  195. data/lib/fog/dynect/requests/dns/get_all_records.rb +0 -56
  196. data/lib/fog/dynect/requests/dns/get_node_list.rb +0 -55
  197. data/lib/fog/dynect/requests/dns/get_record.rb +0 -83
  198. data/lib/fog/dynect/requests/dns/get_zone.rb +0 -57
  199. data/lib/fog/dynect/requests/dns/post_record.rb +0 -71
  200. data/lib/fog/dynect/requests/dns/post_session.rb +0 -43
  201. data/lib/fog/dynect/requests/dns/post_zone.rb +0 -70
  202. data/lib/fog/dynect/requests/dns/put_record.rb +0 -76
  203. data/lib/fog/dynect/requests/dns/put_zone.rb +0 -76
  204. data/tests/dynect/requests/dns/dns_tests.rb +0 -258
@@ -1,20 +1,14 @@
1
- require 'fog/core/model'
1
+ require 'fog/openstack/models/model'
2
2
 
3
3
  module Fog
4
4
  module Baremetal
5
5
  class OpenStack
6
- class Driver < Fog::Model
6
+ class Driver < Fog::OpenStack::Model
7
7
  identity :name
8
8
 
9
9
  attribute :name
10
10
  attribute :hosts
11
11
 
12
- def initialize(attributes)
13
- # Old 'connection' is renamed as service and should be used instead
14
- prepare_service_value(attributes)
15
- super
16
- end
17
-
18
12
  def properties
19
13
  requires :name
20
14
  service.get_driver_properties(self.name).body
@@ -1,18 +1,16 @@
1
- require 'fog/core/collection'
1
+ require 'fog/openstack/models/collection'
2
2
  require 'fog/openstack/models/baremetal/driver'
3
3
 
4
4
  module Fog
5
5
  module Baremetal
6
6
  class OpenStack
7
- class Drivers < Fog::Collection
7
+ class Drivers < Fog::OpenStack::Collection
8
8
  model Fog::Baremetal::OpenStack::Driver
9
9
 
10
10
  def all(options = {})
11
- load(service.list_drivers(options).body['drivers'])
11
+ load_response(service.list_drivers(options), 'drivers')
12
12
  end
13
13
 
14
- alias_method :summary, :all
15
-
16
14
  def find_by_name(name)
17
15
  new(service.get_driver(name).body)
18
16
  end
@@ -1,9 +1,9 @@
1
- require 'fog/core/model'
1
+ require 'fog/openstack/models/model'
2
2
 
3
3
  module Fog
4
4
  module Baremetal
5
5
  class OpenStack
6
- class Node < Fog::Model
6
+ class Node < Fog::OpenStack::Model
7
7
  identity :uuid
8
8
 
9
9
  attribute :instance_uuid
@@ -29,17 +29,6 @@ module Fog
29
29
  attribute :target_power_state
30
30
  attribute :target_provision_state
31
31
 
32
- def initialize(attributes)
33
- # Old 'connection' is renamed as service and should be used instead
34
- prepare_service_value(attributes)
35
- super
36
- end
37
-
38
- def save
39
- requires :driver
40
- identity ? update : create
41
- end
42
-
43
32
  def create
44
33
  requires :driver
45
34
  merge_attributes(service.create_node(self.attributes).body)
@@ -47,7 +36,7 @@ module Fog
47
36
  end
48
37
 
49
38
  def update(patch=nil)
50
- requires :uuid
39
+ requires :uuid, :driver
51
40
  if patch
52
41
  merge_attributes(service.patch_node(uuid, patch).body)
53
42
  else
@@ -1,18 +1,18 @@
1
- require 'fog/core/collection'
1
+ require 'fog/openstack/models/collection'
2
2
  require 'fog/openstack/models/baremetal/node'
3
3
 
4
4
  module Fog
5
5
  module Baremetal
6
6
  class OpenStack
7
- class Nodes < Fog::Collection
7
+ class Nodes < Fog::OpenStack::Collection
8
8
  model Fog::Baremetal::OpenStack::Node
9
9
 
10
10
  def all(options = {})
11
- load(service.list_nodes_detailed(options).body['nodes'])
11
+ load_response(service.list_nodes_detailed(options), 'nodes')
12
12
  end
13
13
 
14
14
  def summary(options = {})
15
- load(service.list_nodes(options).body['nodes'])
15
+ load_response(service.list_nodes(options), 'nodes')
16
16
  end
17
17
 
18
18
  def details(options = {})
@@ -1,9 +1,9 @@
1
- require 'fog/core/model'
1
+ require 'fog/openstack/models/model'
2
2
 
3
3
  module Fog
4
4
  module Baremetal
5
5
  class OpenStack
6
- class Port < Fog::Model
6
+ class Port < Fog::OpenStack::Model
7
7
  identity :uuid
8
8
 
9
9
  attribute :address
@@ -15,17 +15,6 @@ module Fog
15
15
  attribute :extra
16
16
  attribute :node_uuid
17
17
 
18
- def initialize(attributes)
19
- # Old 'connection' is renamed as service and should be used instead
20
- prepare_service_value(attributes)
21
- super
22
- end
23
-
24
- def save
25
- requires :address, :node_uuid
26
- identity ? update : create
27
- end
28
-
29
18
  def create
30
19
  requires :address, :node_uuid
31
20
  merge_attributes(service.create_port(self.attributes).body)
@@ -33,7 +22,7 @@ module Fog
33
22
  end
34
23
 
35
24
  def update(patch=nil)
36
- requires :uuid
25
+ requires :uuid, :address, :node_uuid
37
26
  if patch
38
27
  merge_attributes(service.patch_port(uuid, patch).body)
39
28
  else
@@ -1,18 +1,18 @@
1
- require 'fog/core/collection'
1
+ require 'fog/openstack/models/collection'
2
2
  require 'fog/openstack/models/baremetal/port'
3
3
 
4
4
  module Fog
5
5
  module Baremetal
6
6
  class OpenStack
7
- class Ports < Fog::Collection
7
+ class Ports < Fog::OpenStack::Collection
8
8
  model Fog::Baremetal::OpenStack::Port
9
9
 
10
10
  def all(options = {})
11
- load(service.list_ports_detailed(options).body['ports'])
11
+ load_response(service.list_ports_detailed(options), 'ports')
12
12
  end
13
13
 
14
14
  def summary(options = {})
15
- load(service.list_ports(options).body['ports'])
15
+ load_response(service.list_ports(options), 'ports')
16
16
  end
17
17
 
18
18
  def details(options = {})
@@ -0,0 +1,45 @@
1
+ require 'fog/core/collection'
2
+
3
+ module Fog
4
+ module OpenStack
5
+ class Collection < Fog::Collection
6
+ # It's important to store the whole response, it contains e.g. important info about whether there is another
7
+ # page of data.
8
+ attr_accessor :response
9
+
10
+ def load_response(response, index = nil)
11
+ # Delete it index if it's there, so we don't store response with data twice, but we store only metadata
12
+ objects = index ? response.body.delete(index) : response.body
13
+
14
+ clear && objects.each { |object| self << new(object) }
15
+ self.response = response
16
+ self
17
+ end
18
+
19
+ ##################################################################################################################
20
+ # Abstract base class methods, please keep the consistent naming in all subclasses of the Collection class
21
+
22
+ # Returns detailed list of records
23
+ def all(options = {})
24
+ raise Fog::OpenStack::Errors::InterfaceNotImplemented.new('Method :all is not implemented')
25
+ end
26
+
27
+ # Returns non detailed list of records, usually just subset of attributes, which makes this call more effective.
28
+ # Not all openstack services support non detailed list, so it delegates to :all by default.
29
+ def summary(options = {})
30
+ all(options)
31
+ end
32
+
33
+ # Gets record given record's UUID
34
+ def get(uuid)
35
+ raise Fog::OpenStack::Errors::InterfaceNotImplemented.new('Method :get is not implemented')
36
+ end
37
+ alias_method :find_by_id, :get
38
+
39
+ # Destroys record given record's UUID
40
+ def destroy(uuid)
41
+ raise Fog::OpenStack::Errors::InterfaceNotImplemented.new('Method :destroy is not implemented')
42
+ end
43
+ end
44
+ end
45
+ end
@@ -1,9 +1,9 @@
1
- require 'fog/core/model'
1
+ require 'fog/openstack/models/model'
2
2
 
3
3
  module Fog
4
4
  module Compute
5
5
  class OpenStack
6
- class Address < Fog::Model
6
+ class Address < Fog::OpenStack::Model
7
7
  identity :id
8
8
 
9
9
  attribute :ip
@@ -1,18 +1,16 @@
1
- require 'fog/core/collection'
1
+ require 'fog/openstack/models/collection'
2
2
  require 'fog/openstack/models/compute/address'
3
3
 
4
4
  module Fog
5
5
  module Compute
6
6
  class OpenStack
7
- class Addresses < Fog::Collection
7
+ class Addresses < Fog::OpenStack::Collection
8
8
  model Fog::Compute::OpenStack::Address
9
9
 
10
10
  def all(options = {})
11
- load(service.list_all_addresses(options).body['floating_ips'])
11
+ load_response(service.list_all_addresses(options), 'floating_ips')
12
12
  end
13
13
 
14
- alias_method :summary, :all
15
-
16
14
  def get(address_id)
17
15
  if address = service.get_address(address_id).body['floating_ip']
18
16
  new(address)
@@ -1,9 +1,9 @@
1
- require 'fog/core/model'
1
+ require 'fog/openstack/models/model'
2
2
 
3
3
  module Fog
4
4
  module Compute
5
5
  class OpenStack
6
- class Aggregate < Fog::Model
6
+ class Aggregate < Fog::OpenStack::Model
7
7
  identity :id
8
8
 
9
9
  attribute :availability_zone
@@ -17,12 +17,6 @@ module Fog
17
17
  # Detailed
18
18
  attribute :hosts
19
19
 
20
- def initialize(attributes)
21
- # Old 'connection' is renamed as service and should be used instead
22
- prepare_service_value(attributes)
23
- super
24
- end
25
-
26
20
  def save
27
21
  requires :name
28
22
  identity ? update : create
@@ -1,18 +1,16 @@
1
- require 'fog/core/collection'
1
+ require 'fog/openstack/models/collection'
2
2
  require 'fog/openstack/models/compute/aggregate'
3
3
 
4
4
  module Fog
5
5
  module Compute
6
6
  class OpenStack
7
- class Aggregates < Fog::Collection
7
+ class Aggregates < Fog::OpenStack::Collection
8
8
  model Fog::Compute::OpenStack::Aggregate
9
9
 
10
10
  def all(options = {})
11
- load(service.list_aggregates(options).body['aggregates'])
11
+ load_response(service.list_aggregates(options), 'aggregates')
12
12
  end
13
13
 
14
- alias_method :summary, :all
15
-
16
14
  def find_by_id(id)
17
15
  new(service.get_aggregate(id).body['aggregate'])
18
16
  end
@@ -0,0 +1,14 @@
1
+ require 'fog/openstack/models/model'
2
+
3
+ module Fog
4
+ module Compute
5
+ class OpenStack
6
+ class AvailabilityZone < Fog::OpenStack::Model
7
+ identity :zoneName
8
+
9
+ attribute :hosts
10
+ attribute :zoneState
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,22 @@
1
+ require 'fog/openstack/models/collection'
2
+ require 'fog/openstack/models/compute/availability_zone'
3
+
4
+ module Fog
5
+ module Compute
6
+ class OpenStack
7
+ class AvailabilityZones < Fog::OpenStack::Collection
8
+ model Fog::Compute::OpenStack::AvailabilityZone
9
+
10
+ def all(options = {})
11
+ data = service.list_zones_detailed(options)
12
+ load_response(data, 'availabilityZoneInfo')
13
+ end
14
+
15
+ def summary(options = {})
16
+ data = service.list_zones(options)
17
+ load_response(data, 'availabilityZoneInfo')
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,9 +1,9 @@
1
- require 'fog/core/model'
1
+ require 'fog/openstack/models/model'
2
2
 
3
3
  module Fog
4
4
  module Compute
5
5
  class OpenStack
6
- class Flavor < Fog::Model
6
+ class Flavor < Fog::OpenStack::Model
7
7
  identity :id
8
8
 
9
9
  attribute :name
@@ -18,12 +18,6 @@ module Fog
18
18
  attribute :is_public, :aliases => 'os-flavor-access:is_public'
19
19
  attribute :disabled, :aliases => 'OS-FLV-DISABLED:disabled'
20
20
 
21
- def initialize(attributes)
22
- # Old 'connection' is renamed as service and should be used instead
23
- prepare_service_value(attributes)
24
- super
25
- end
26
-
27
21
  def save
28
22
  requires :name, :ram, :vcpus, :disk
29
23
  attributes[:ephemeral] = self.ephemeral || 0
@@ -1,20 +1,20 @@
1
- require 'fog/core/collection'
1
+ require 'fog/openstack/models/collection'
2
2
  require 'fog/openstack/models/compute/flavor'
3
3
 
4
4
  module Fog
5
5
  module Compute
6
6
  class OpenStack
7
- class Flavors < Fog::Collection
7
+ class Flavors < Fog::OpenStack::Collection
8
8
  model Fog::Compute::OpenStack::Flavor
9
9
 
10
10
  def all(options = {})
11
- data = service.list_flavors_detail(options).body['flavors']
12
- load(data)
11
+ data = service.list_flavors_detail(options)
12
+ load_response(data, 'flavors')
13
13
  end
14
14
 
15
15
  def summary(options = {})
16
- data = service.list_flavors(options).body['flavors']
17
- load(data)
16
+ data = service.list_flavors(options)
17
+ load_response(data, 'flavors')
18
18
  end
19
19
 
20
20
  def get(flavor_id)
@@ -4,7 +4,7 @@ require 'fog/openstack/models/compute/metadata'
4
4
  module Fog
5
5
  module Compute
6
6
  class OpenStack
7
- class Host < Fog::Model
7
+ class Host < Fog::OpenStack::Model
8
8
  attribute :host_name
9
9
  attribute :service_name
10
10
  attribute :details
@@ -1,19 +1,17 @@
1
- require 'fog/core/collection'
1
+ require 'fog/openstack/models/collection'
2
2
  require 'fog/openstack/models/compute/host'
3
3
 
4
4
  module Fog
5
5
  module Compute
6
6
  class OpenStack
7
- class Hosts < Fog::Collection
7
+ class Hosts < Fog::OpenStack::Collection
8
8
  model Fog::Compute::OpenStack::Host
9
9
 
10
10
  def all(options = {})
11
- data = service.list_hosts(options).body['hosts']
12
- load(data)
11
+ data = service.list_hosts(options)
12
+ load_response(data, 'hosts')
13
13
  end
14
14
 
15
- alias_method :summary, :all
16
-
17
15
  def get(host_name)
18
16
  if host = service.get_host_details(host_name).body['host']
19
17
  new({
@@ -1,10 +1,10 @@
1
- require 'fog/core/model'
1
+ require 'fog/openstack/models/model'
2
2
  require 'fog/openstack/models/compute/metadata'
3
3
 
4
4
  module Fog
5
5
  module Compute
6
6
  class OpenStack
7
- class Image < Fog::Model
7
+ class Image < Fog::OpenStack::Model
8
8
  identity :id
9
9
 
10
10
  attribute :name
@@ -18,12 +18,6 @@ module Fog
18
18
  attribute :metadata
19
19
  attribute :links
20
20
 
21
- def initialize(attributes)
22
- # Old 'connection' is renamed as service and should be used instead
23
- prepare_service_value(attributes)
24
- super
25
- end
26
-
27
21
  def metadata
28
22
  @metadata ||= begin
29
23
  Fog::Compute::OpenStack::Metadata.new({