fog 1.27.0 → 1.28.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +71 -0
  3. data/Rakefile +2 -2
  4. data/bin/fog +2 -2
  5. data/fog.gemspec +4 -3
  6. data/lib/fog/bin/clodo.rb +1 -1
  7. data/lib/fog/bin/openstack.rb +5 -0
  8. data/lib/fog/digitalocean/examples/getting_started.md +46 -4
  9. data/lib/fog/digitalocean/models/compute/server.rb +1 -3
  10. data/lib/fog/digitalocean/models/compute/servers.rb +30 -0
  11. data/lib/fog/fogdocker/compute.rb +3 -2
  12. data/lib/fog/fogdocker/requests/compute/container_action.rb +1 -1
  13. data/lib/fog/fogdocker/requests/compute/container_all.rb +1 -1
  14. data/lib/fog/fogdocker/requests/compute/container_commit.rb +1 -1
  15. data/lib/fog/fogdocker/requests/compute/container_create.rb +1 -1
  16. data/lib/fog/fogdocker/requests/compute/container_delete.rb +1 -1
  17. data/lib/fog/fogdocker/requests/compute/container_get.rb +1 -1
  18. data/lib/fog/fogdocker/requests/compute/image_all.rb +1 -1
  19. data/lib/fog/fogdocker/requests/compute/image_create.rb +1 -1
  20. data/lib/fog/fogdocker/requests/compute/image_delete.rb +1 -1
  21. data/lib/fog/fogdocker/requests/compute/image_get.rb +1 -1
  22. data/lib/fog/fogdocker/requests/compute/image_search.rb +1 -1
  23. data/lib/fog/google/compute.rb +2 -1
  24. data/lib/fog/google/core.rb +42 -12
  25. data/lib/fog/google/dns.rb +2 -1
  26. data/lib/fog/google/monitoring.rb +1 -1
  27. data/lib/fog/google/sql.rb +1 -1
  28. data/lib/fog/hp/requests/storage/get_object.rb +5 -3
  29. data/lib/fog/joyent/compute.rb +2 -0
  30. data/lib/fog/openstack.rb +1 -0
  31. data/lib/fog/openstack/baremetal.rb +370 -0
  32. data/lib/fog/openstack/core.rb +1 -0
  33. data/lib/fog/openstack/docs/orchestration.md +318 -0
  34. data/lib/fog/openstack/docs/storage.md +1 -7
  35. data/lib/fog/openstack/models/baremetal/chassis.rb +60 -0
  36. data/lib/fog/openstack/models/baremetal/chassis_collection.rb +38 -0
  37. data/lib/fog/openstack/models/baremetal/driver.rb +30 -0
  38. data/lib/fog/openstack/models/baremetal/drivers.rb +21 -0
  39. data/lib/fog/openstack/models/baremetal/node.rb +85 -0
  40. data/lib/fog/openstack/models/baremetal/nodes.rb +38 -0
  41. data/lib/fog/openstack/models/baremetal/port.rb +61 -0
  42. data/lib/fog/openstack/models/baremetal/ports.rb +38 -0
  43. data/lib/fog/openstack/models/orchestration/event.rb +20 -0
  44. data/lib/fog/openstack/models/orchestration/events.rb +28 -0
  45. data/lib/fog/openstack/models/orchestration/resource.rb +32 -0
  46. data/lib/fog/openstack/models/orchestration/resource_schemas.rb +17 -0
  47. data/lib/fog/openstack/models/orchestration/resources.rb +35 -0
  48. data/lib/fog/openstack/models/orchestration/stack.rb +91 -24
  49. data/lib/fog/openstack/models/orchestration/stacks.rb +38 -4
  50. data/lib/fog/openstack/models/orchestration/template.rb +15 -0
  51. data/lib/fog/openstack/models/orchestration/templates.rb +44 -0
  52. data/lib/fog/openstack/orchestration.rb +48 -2
  53. data/lib/fog/openstack/requests/baremetal/create_chassis.rb +44 -0
  54. data/lib/fog/openstack/requests/baremetal/create_node.rb +54 -0
  55. data/lib/fog/openstack/requests/baremetal/create_port.rb +46 -0
  56. data/lib/fog/openstack/requests/baremetal/delete_chassis.rb +25 -0
  57. data/lib/fog/openstack/requests/baremetal/delete_node.rb +25 -0
  58. data/lib/fog/openstack/requests/baremetal/delete_port.rb +25 -0
  59. data/lib/fog/openstack/requests/baremetal/get_chassis.rb +24 -0
  60. data/lib/fog/openstack/requests/baremetal/get_driver.rb +24 -0
  61. data/lib/fog/openstack/requests/baremetal/get_driver_properties.rb +40 -0
  62. data/lib/fog/openstack/requests/baremetal/get_node.rb +24 -0
  63. data/lib/fog/openstack/requests/baremetal/get_port.rb +24 -0
  64. data/lib/fog/openstack/requests/baremetal/list_chassis.rb +48 -0
  65. data/lib/fog/openstack/requests/baremetal/list_chassis_detailed.rb +31 -0
  66. data/lib/fog/openstack/requests/baremetal/list_drivers.rb +24 -0
  67. data/lib/fog/openstack/requests/baremetal/list_nodes.rb +40 -0
  68. data/lib/fog/openstack/requests/baremetal/list_nodes_detailed.rb +31 -0
  69. data/lib/fog/openstack/requests/baremetal/list_ports.rb +48 -0
  70. data/lib/fog/openstack/requests/baremetal/list_ports_detailed.rb +31 -0
  71. data/lib/fog/openstack/requests/baremetal/patch_chassis.rb +42 -0
  72. data/lib/fog/openstack/requests/baremetal/patch_node.rb +41 -0
  73. data/lib/fog/openstack/requests/baremetal/patch_port.rb +41 -0
  74. data/lib/fog/openstack/requests/compute/create_server.rb +1 -0
  75. data/lib/fog/openstack/requests/orchestration/abandon_stack.rb +15 -0
  76. data/lib/fog/openstack/requests/orchestration/build_info.rb +15 -0
  77. data/lib/fog/openstack/requests/orchestration/create_stack.rb +31 -12
  78. data/lib/fog/openstack/requests/orchestration/delete_stack.rb +28 -5
  79. data/lib/fog/openstack/requests/orchestration/get_stack_template.rb +20 -0
  80. data/lib/fog/openstack/requests/orchestration/list_resource_events.rb +23 -0
  81. data/lib/fog/openstack/requests/orchestration/list_resource_types.rb +26 -0
  82. data/lib/fog/openstack/requests/orchestration/list_resources.rb +23 -0
  83. data/lib/fog/openstack/requests/orchestration/list_stack_data.rb +27 -0
  84. data/lib/fog/openstack/requests/orchestration/list_stack_events.rb +23 -0
  85. data/lib/fog/openstack/requests/orchestration/preview_stack.rb +16 -0
  86. data/lib/fog/openstack/requests/orchestration/show_event_details.rb +26 -0
  87. data/lib/fog/openstack/requests/orchestration/show_resource_data.rb +26 -0
  88. data/lib/fog/openstack/requests/orchestration/show_resource_metadata.rb +26 -0
  89. data/lib/fog/openstack/requests/orchestration/show_resource_schema.rb +15 -0
  90. data/lib/fog/openstack/requests/orchestration/show_resource_template.rb +20 -0
  91. data/lib/fog/openstack/requests/orchestration/show_stack_details.rb +26 -0
  92. data/lib/fog/openstack/requests/orchestration/update_stack.rb +34 -7
  93. data/lib/fog/openstack/requests/orchestration/validate_template.rb +16 -0
  94. data/lib/fog/openstack/volume.rb +0 -1
  95. data/lib/fog/ovirt/compute.rb +6 -0
  96. data/lib/fog/ovirt/models/compute/server.rb +10 -0
  97. data/lib/fog/ovirt/models/compute/template.rb +1 -0
  98. data/lib/fog/ovirt/models/compute/volumes.rb +1 -2
  99. data/lib/fog/ovirt/requests/compute/attach_volume.rb +22 -0
  100. data/lib/fog/ovirt/requests/compute/detach_volume.rb +22 -0
  101. data/lib/fog/ovirt/requests/compute/list_volumes.rb +19 -0
  102. data/lib/fog/ovirt/requests/compute/mock_files/disks.xml +58 -0
  103. data/lib/fog/vcloud_director/models/compute/task.rb +2 -2
  104. data/lib/fog/version.rb +1 -1
  105. data/lib/fog/vsphere/compute.rb +3 -0
  106. data/lib/fog/vsphere/requests/compute/cloudinit_to_customspec.rb +20 -11
  107. data/lib/fog/vsphere/requests/compute/get_compute_resource.rb +41 -0
  108. data/lib/fog/vsphere/requests/compute/get_network.rb +35 -6
  109. data/lib/fog/vsphere/requests/compute/get_resource_pool.rb +1 -1
  110. data/lib/fog/vsphere/requests/compute/get_virtual_machine.rb +19 -13
  111. data/lib/fog/vsphere/requests/compute/list_compute_resources.rb +92 -0
  112. data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +16 -11
  113. data/lib/fog/vsphere/requests/compute/vm_clone.rb +6 -5
  114. data/lib/fog/xenserver/requests/compute/create_sr.rb +3 -4
  115. data/lib/tasks/changelog_task.rb +1 -0
  116. data/tests/helper.rb +3 -3
  117. data/tests/helpers/mock_helper.rb +0 -4
  118. data/tests/openstack/requests/baremetal/chassis_tests.rb +48 -0
  119. data/tests/openstack/requests/baremetal/driver_tests.rb +40 -0
  120. data/tests/openstack/requests/baremetal/node_tests.rb +65 -0
  121. data/tests/openstack/requests/baremetal/port_tests.rb +56 -0
  122. data/tests/openstack/requests/compute/server_tests.rb +2 -0
  123. data/tests/openstack/requests/orchestration/stack_tests.rb +2 -2
  124. data/tests/vsphere/requests/compute/get_network_tests.rb +48 -0
  125. metadata +88 -23
  126. data/lib/fog/aws.rb +0 -23
  127. data/lib/fog/bin/riakcs.rb +0 -25
  128. data/lib/fog/openstack/requests/orchestration/list_stacks.rb +0 -47
  129. data/lib/fog/riakcs.rb +0 -2
  130. data/lib/fog/riakcs/core.rb +0 -121
  131. data/lib/fog/riakcs/provisioning.rb +0 -98
  132. data/lib/fog/riakcs/requests/provisioning/create_user.rb +0 -77
  133. data/lib/fog/riakcs/requests/provisioning/disable_user.rb +0 -23
  134. data/lib/fog/riakcs/requests/provisioning/enable_user.rb +0 -23
  135. data/lib/fog/riakcs/requests/provisioning/get_user.rb +0 -41
  136. data/lib/fog/riakcs/requests/provisioning/list_users.rb +0 -43
  137. data/lib/fog/riakcs/requests/provisioning/regrant_secret.rb +0 -23
  138. data/lib/fog/riakcs/requests/provisioning/update_user.rb +0 -23
  139. data/lib/fog/riakcs/requests/usage/get_usage.rb +0 -68
  140. data/lib/fog/riakcs/usage.rb +0 -62
  141. data/tests/riakcs/requests/provisioning/provisioning_tests.rb +0 -174
  142. data/tests/riakcs/requests/usage/usage_tests.rb +0 -29
@@ -336,7 +336,7 @@ Swift requires files larger than 5 GB (the Swift default limit) to be uploaded i
336
336
  SEGMENT_LIMIT = 5368709119.0 # 5GB -1
337
337
  BUFFER_SIZE = 1024 * 1024 # 1MB
338
338
 
339
- File.open(file_name) do |f|
339
+ File.open(file_name) do |file|
340
340
  segment = 0
341
341
  until file.eof?
342
342
  segment += 1
@@ -358,12 +358,6 @@ Swift requires files larger than 5 GB (the Swift default limit) to be uploaded i
358
358
 
359
359
  # write manifest file
360
360
  service.put_object_manifest("my_container", "large_file", 'X-Object-Manifest' => "my_container/large_file/")
361
-
362
- # write manifest file
363
- service.put_object_manifest("my_container", "large_file", 'X-Object-Manifest' => "my_container/large_file/")
364
-
365
- # write manifest file
366
- service.put_object_manifest("my_container", "large_file", 'X-Object-Manifest' => "my_container/large_file/")
367
361
  ```
368
362
 
369
363
  Segmented files are downloaded like ordinary files. See [Download Files](#download-files) section for more information.
@@ -0,0 +1,60 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module Baremetal
5
+ class OpenStack
6
+ class Chassis < Fog::Model
7
+ identity :uuid
8
+
9
+ attribute :description
10
+ attribute :uuid
11
+
12
+ #detailed
13
+ attribute :created_at
14
+ attribute :updated_at
15
+ attribute :extra
16
+
17
+ def initialize(attributes)
18
+ # Old 'connection' is renamed as service and should be used instead
19
+ prepare_service_value(attributes)
20
+ super
21
+ end
22
+
23
+ def save
24
+ requires :description
25
+ identity ? update : create
26
+ end
27
+
28
+ def create
29
+ requires :description
30
+ merge_attributes(service.create_chassis(self.attributes).body)
31
+ self
32
+ end
33
+
34
+ def update(patch=nil)
35
+ requires :uuid
36
+ if patch
37
+ merge_attributes(service.patch_chassis(uuid, patch).body)
38
+ else
39
+ # TODO implement update_node method using PUT method and self.attributes
40
+ # once it is supported by Ironic
41
+ raise ArgumentError, ('You need to provide patch attribute. Ironic does '
42
+ 'not support update by hash yet, only by jsonpatch.')
43
+ end
44
+ self
45
+ end
46
+
47
+ def destroy
48
+ requires :uuid
49
+ service.delete_chassis(self.uuid)
50
+ true
51
+ end
52
+
53
+ def metadata
54
+ requires :uuid
55
+ service.get_chassis(self.uuid).headers
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,38 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/openstack/models/baremetal/chassis'
3
+
4
+ module Fog
5
+ module Baremetal
6
+ class OpenStack
7
+ class ChassisCollection < Fog::Collection
8
+ model Fog::Baremetal::OpenStack::Chassis
9
+
10
+ def all
11
+ load(service.list_chassis.body['chassis'])
12
+ end
13
+
14
+ def details(parameters=nil)
15
+ load(service.list_chassis_detailed(parameters).body['chassis'])
16
+ end
17
+
18
+ def find_by_uuid(uuid)
19
+ new(service.get_chassis(uuid).body)
20
+ end
21
+ alias_method :get, :find_by_uuid
22
+
23
+ def destroy(uuid)
24
+ chassis = self.find_by_id(uuid)
25
+ chassis.destroy
26
+ end
27
+
28
+ def method_missing(method_sym, *arguments, &block)
29
+ if method_sym.to_s =~ /^find_by_(.*)$/
30
+ load(service.list_chassis_detailed({$1 => arguments.first}).body['chassis'])
31
+ else
32
+ super
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,30 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module Baremetal
5
+ class OpenStack
6
+ class Driver < Fog::Model
7
+ identity :name
8
+
9
+ attribute :name
10
+ attribute :hosts
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
+ def properties
19
+ requires :name
20
+ service.get_driver_properties(self.name).body
21
+ end
22
+
23
+ def metadata
24
+ requires :name
25
+ service.get_driver(self.name).headers
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,21 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/openstack/models/baremetal/driver'
3
+
4
+ module Fog
5
+ module Baremetal
6
+ class OpenStack
7
+ class Drivers < Fog::Collection
8
+ model Fog::Baremetal::OpenStack::Driver
9
+
10
+ def all
11
+ load(service.list_drivers.body['drivers'])
12
+ end
13
+
14
+ def find_by_name(name)
15
+ new(service.get_driver(name).body)
16
+ end
17
+ alias_method :get, :find_by_name
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,85 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module Baremetal
5
+ class OpenStack
6
+ class Node < Fog::Model
7
+ identity :uuid
8
+
9
+ attribute :instance_uuid
10
+ attribute :maintenance
11
+ attribute :power_state
12
+ attribute :provision_state
13
+ attribute :uuid
14
+
15
+ #detailed
16
+ attribute :created_at
17
+ attribute :updated_at
18
+ attribute :chassis_uuid
19
+ attribute :console_enabled
20
+ attribute :driver
21
+ attribute :driver_info
22
+ attribute :extra
23
+ attribute :instance_info
24
+ attribute :last_error
25
+ attribute :maintenance_reason
26
+ attribute :properties
27
+ attribute :provision_updated_at
28
+ attribute :reservation
29
+ attribute :target_power_state
30
+ attribute :target_provision_state
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
+ def create
44
+ requires :driver
45
+ merge_attributes(service.create_node(self.attributes).body)
46
+ self
47
+ end
48
+
49
+ def update(patch=nil)
50
+ requires :uuid
51
+ if patch
52
+ merge_attributes(service.patch_node(uuid, patch).body)
53
+ else
54
+ # TODO implement update_node method using PUT method and self.attributes
55
+ # once it is supported by Ironic
56
+ raise ArgumentError, ('You need to provide patch attribute. Ironic does '
57
+ 'not support update by hash yet, only by jsonpatch.')
58
+ end
59
+ self
60
+ end
61
+
62
+ def destroy
63
+ requires :uuid
64
+ service.delete_node(self.uuid)
65
+ true
66
+ end
67
+
68
+ def chassis
69
+ requires :uuid
70
+ service.get_chassis(self.chassis_uuid).body
71
+ end
72
+
73
+ def ports
74
+ requires :uuid
75
+ service.list_ports_detailed({:node_uuid => self.uuid}).body['ports']
76
+ end
77
+
78
+ def metadata
79
+ requires :uuid
80
+ service.get_node(self.uuid).headers
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,38 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/openstack/models/baremetal/node'
3
+
4
+ module Fog
5
+ module Baremetal
6
+ class OpenStack
7
+ class Nodes < Fog::Collection
8
+ model Fog::Baremetal::OpenStack::Node
9
+
10
+ def all
11
+ load(service.list_nodes.body['nodes'])
12
+ end
13
+
14
+ def details(parameters=nil)
15
+ load(service.list_nodes_detailed(parameters).body['nodes'])
16
+ end
17
+
18
+ def find_by_uuid(uuid)
19
+ new(service.get_node(uuid).body)
20
+ end
21
+ alias_method :get, :find_by_uuid
22
+
23
+ def destroy(uuid)
24
+ node = self.find_by_id(uuid)
25
+ node.destroy
26
+ end
27
+
28
+ def method_missing(method_sym, *arguments, &block)
29
+ if method_sym.to_s =~ /^find_by_(.*)$/
30
+ load(service.list_nodes_detailed({$1 => arguments.first}).body['nodes'])
31
+ else
32
+ super
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,61 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module Baremetal
5
+ class OpenStack
6
+ class Port < Fog::Model
7
+ identity :uuid
8
+
9
+ attribute :address
10
+ attribute :uuid
11
+
12
+ #detailed
13
+ attribute :created_at
14
+ attribute :updated_at
15
+ attribute :extra
16
+ attribute :node_uuid
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
+ def create
30
+ requires :address, :node_uuid
31
+ merge_attributes(service.create_port(self.attributes).body)
32
+ self
33
+ end
34
+
35
+ def update(patch=nil)
36
+ requires :uuid
37
+ if patch
38
+ merge_attributes(service.patch_port(uuid, patch).body)
39
+ else
40
+ # TODO implement update_node method using PUT method and self.attributes
41
+ # once it is supported by Ironic
42
+ raise ArgumentError, ('You need to provide patch attribute. Ironic does '
43
+ 'not support update by hash yet, only by jsonpatch.')
44
+ end
45
+ self
46
+ end
47
+
48
+ def destroy
49
+ requires :uuid
50
+ service.delete_port(self.uuid)
51
+ true
52
+ end
53
+
54
+ def metadata
55
+ requires :uuid
56
+ service.get_port(self.uuid).headers
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,38 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/openstack/models/baremetal/port'
3
+
4
+ module Fog
5
+ module Baremetal
6
+ class OpenStack
7
+ class Ports < Fog::Collection
8
+ model Fog::Baremetal::OpenStack::Port
9
+
10
+ def all
11
+ load(service.list_ports.body['ports'])
12
+ end
13
+
14
+ def details(parameters=nil)
15
+ load(service.list_ports_detailed(parameters).body['ports'])
16
+ end
17
+
18
+ def find_by_uuid(uuid)
19
+ new(service.get_port(uuid).body)
20
+ end
21
+ alias_method :get, :find_by_uuid
22
+
23
+ def destroy(uuid)
24
+ port = self.find_by_id(uuid)
25
+ port.destroy
26
+ end
27
+
28
+ def method_missing(method_sym, *arguments, &block)
29
+ if method_sym.to_s =~ /^find_by_(.*)$/
30
+ load(service.list_ports_detailed({$1 => arguments.first}).body['ports'])
31
+ else
32
+ super
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,20 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module Orchestration
5
+ class OpenStack
6
+ class Event < Fog::Model
7
+
8
+ include Reflectable
9
+
10
+ identity :id
11
+
12
+ %w{resource_name event_time links logical_resource_id resource_status
13
+ resource_status_reason physical_resource_id}.each do |a|
14
+ attribute a.to_sym
15
+ end
16
+
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,28 @@
1
+ require 'fog/openstack/models/orchestration/event'
2
+
3
+ module Fog
4
+ module Orchestration
5
+ class OpenStack
6
+ class Events < Fog::Collection
7
+ model Fog::Orchestration::OpenStack::Event
8
+
9
+ def all(obj, options={})
10
+ data = if obj.is_a?(Stack)
11
+ service.list_stack_events(obj, options).body['events']
12
+ else
13
+ service.list_resource_events(obj.stack, obj, options).body['events']
14
+ end
15
+
16
+ load data
17
+ end
18
+
19
+ def get(stack, resource, event_id)
20
+ data = service.show_event_details(stack, resource, event_id).body['event']
21
+ new(data)
22
+ rescue Fog::Compute::OpenStack::NotFound
23
+ nil
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end