fog 1.27.0 → 1.28.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +71 -0
- data/Rakefile +2 -2
- data/bin/fog +2 -2
- data/fog.gemspec +4 -3
- data/lib/fog/bin/clodo.rb +1 -1
- data/lib/fog/bin/openstack.rb +5 -0
- data/lib/fog/digitalocean/examples/getting_started.md +46 -4
- data/lib/fog/digitalocean/models/compute/server.rb +1 -3
- data/lib/fog/digitalocean/models/compute/servers.rb +30 -0
- data/lib/fog/fogdocker/compute.rb +3 -2
- data/lib/fog/fogdocker/requests/compute/container_action.rb +1 -1
- data/lib/fog/fogdocker/requests/compute/container_all.rb +1 -1
- data/lib/fog/fogdocker/requests/compute/container_commit.rb +1 -1
- data/lib/fog/fogdocker/requests/compute/container_create.rb +1 -1
- data/lib/fog/fogdocker/requests/compute/container_delete.rb +1 -1
- data/lib/fog/fogdocker/requests/compute/container_get.rb +1 -1
- data/lib/fog/fogdocker/requests/compute/image_all.rb +1 -1
- data/lib/fog/fogdocker/requests/compute/image_create.rb +1 -1
- data/lib/fog/fogdocker/requests/compute/image_delete.rb +1 -1
- data/lib/fog/fogdocker/requests/compute/image_get.rb +1 -1
- data/lib/fog/fogdocker/requests/compute/image_search.rb +1 -1
- data/lib/fog/google/compute.rb +2 -1
- data/lib/fog/google/core.rb +42 -12
- data/lib/fog/google/dns.rb +2 -1
- data/lib/fog/google/monitoring.rb +1 -1
- data/lib/fog/google/sql.rb +1 -1
- data/lib/fog/hp/requests/storage/get_object.rb +5 -3
- data/lib/fog/joyent/compute.rb +2 -0
- data/lib/fog/openstack.rb +1 -0
- data/lib/fog/openstack/baremetal.rb +370 -0
- data/lib/fog/openstack/core.rb +1 -0
- data/lib/fog/openstack/docs/orchestration.md +318 -0
- data/lib/fog/openstack/docs/storage.md +1 -7
- data/lib/fog/openstack/models/baremetal/chassis.rb +60 -0
- data/lib/fog/openstack/models/baremetal/chassis_collection.rb +38 -0
- data/lib/fog/openstack/models/baremetal/driver.rb +30 -0
- data/lib/fog/openstack/models/baremetal/drivers.rb +21 -0
- data/lib/fog/openstack/models/baremetal/node.rb +85 -0
- data/lib/fog/openstack/models/baremetal/nodes.rb +38 -0
- data/lib/fog/openstack/models/baremetal/port.rb +61 -0
- data/lib/fog/openstack/models/baremetal/ports.rb +38 -0
- data/lib/fog/openstack/models/orchestration/event.rb +20 -0
- data/lib/fog/openstack/models/orchestration/events.rb +28 -0
- data/lib/fog/openstack/models/orchestration/resource.rb +32 -0
- data/lib/fog/openstack/models/orchestration/resource_schemas.rb +17 -0
- data/lib/fog/openstack/models/orchestration/resources.rb +35 -0
- data/lib/fog/openstack/models/orchestration/stack.rb +91 -24
- data/lib/fog/openstack/models/orchestration/stacks.rb +38 -4
- data/lib/fog/openstack/models/orchestration/template.rb +15 -0
- data/lib/fog/openstack/models/orchestration/templates.rb +44 -0
- data/lib/fog/openstack/orchestration.rb +48 -2
- data/lib/fog/openstack/requests/baremetal/create_chassis.rb +44 -0
- data/lib/fog/openstack/requests/baremetal/create_node.rb +54 -0
- data/lib/fog/openstack/requests/baremetal/create_port.rb +46 -0
- data/lib/fog/openstack/requests/baremetal/delete_chassis.rb +25 -0
- data/lib/fog/openstack/requests/baremetal/delete_node.rb +25 -0
- data/lib/fog/openstack/requests/baremetal/delete_port.rb +25 -0
- data/lib/fog/openstack/requests/baremetal/get_chassis.rb +24 -0
- data/lib/fog/openstack/requests/baremetal/get_driver.rb +24 -0
- data/lib/fog/openstack/requests/baremetal/get_driver_properties.rb +40 -0
- data/lib/fog/openstack/requests/baremetal/get_node.rb +24 -0
- data/lib/fog/openstack/requests/baremetal/get_port.rb +24 -0
- data/lib/fog/openstack/requests/baremetal/list_chassis.rb +48 -0
- data/lib/fog/openstack/requests/baremetal/list_chassis_detailed.rb +31 -0
- data/lib/fog/openstack/requests/baremetal/list_drivers.rb +24 -0
- data/lib/fog/openstack/requests/baremetal/list_nodes.rb +40 -0
- data/lib/fog/openstack/requests/baremetal/list_nodes_detailed.rb +31 -0
- data/lib/fog/openstack/requests/baremetal/list_ports.rb +48 -0
- data/lib/fog/openstack/requests/baremetal/list_ports_detailed.rb +31 -0
- data/lib/fog/openstack/requests/baremetal/patch_chassis.rb +42 -0
- data/lib/fog/openstack/requests/baremetal/patch_node.rb +41 -0
- data/lib/fog/openstack/requests/baremetal/patch_port.rb +41 -0
- data/lib/fog/openstack/requests/compute/create_server.rb +1 -0
- data/lib/fog/openstack/requests/orchestration/abandon_stack.rb +15 -0
- data/lib/fog/openstack/requests/orchestration/build_info.rb +15 -0
- data/lib/fog/openstack/requests/orchestration/create_stack.rb +31 -12
- data/lib/fog/openstack/requests/orchestration/delete_stack.rb +28 -5
- data/lib/fog/openstack/requests/orchestration/get_stack_template.rb +20 -0
- data/lib/fog/openstack/requests/orchestration/list_resource_events.rb +23 -0
- data/lib/fog/openstack/requests/orchestration/list_resource_types.rb +26 -0
- data/lib/fog/openstack/requests/orchestration/list_resources.rb +23 -0
- data/lib/fog/openstack/requests/orchestration/list_stack_data.rb +27 -0
- data/lib/fog/openstack/requests/orchestration/list_stack_events.rb +23 -0
- data/lib/fog/openstack/requests/orchestration/preview_stack.rb +16 -0
- data/lib/fog/openstack/requests/orchestration/show_event_details.rb +26 -0
- data/lib/fog/openstack/requests/orchestration/show_resource_data.rb +26 -0
- data/lib/fog/openstack/requests/orchestration/show_resource_metadata.rb +26 -0
- data/lib/fog/openstack/requests/orchestration/show_resource_schema.rb +15 -0
- data/lib/fog/openstack/requests/orchestration/show_resource_template.rb +20 -0
- data/lib/fog/openstack/requests/orchestration/show_stack_details.rb +26 -0
- data/lib/fog/openstack/requests/orchestration/update_stack.rb +34 -7
- data/lib/fog/openstack/requests/orchestration/validate_template.rb +16 -0
- data/lib/fog/openstack/volume.rb +0 -1
- data/lib/fog/ovirt/compute.rb +6 -0
- data/lib/fog/ovirt/models/compute/server.rb +10 -0
- data/lib/fog/ovirt/models/compute/template.rb +1 -0
- data/lib/fog/ovirt/models/compute/volumes.rb +1 -2
- data/lib/fog/ovirt/requests/compute/attach_volume.rb +22 -0
- data/lib/fog/ovirt/requests/compute/detach_volume.rb +22 -0
- data/lib/fog/ovirt/requests/compute/list_volumes.rb +19 -0
- data/lib/fog/ovirt/requests/compute/mock_files/disks.xml +58 -0
- data/lib/fog/vcloud_director/models/compute/task.rb +2 -2
- data/lib/fog/version.rb +1 -1
- data/lib/fog/vsphere/compute.rb +3 -0
- data/lib/fog/vsphere/requests/compute/cloudinit_to_customspec.rb +20 -11
- data/lib/fog/vsphere/requests/compute/get_compute_resource.rb +41 -0
- data/lib/fog/vsphere/requests/compute/get_network.rb +35 -6
- data/lib/fog/vsphere/requests/compute/get_resource_pool.rb +1 -1
- data/lib/fog/vsphere/requests/compute/get_virtual_machine.rb +19 -13
- data/lib/fog/vsphere/requests/compute/list_compute_resources.rb +92 -0
- data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +16 -11
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +6 -5
- data/lib/fog/xenserver/requests/compute/create_sr.rb +3 -4
- data/lib/tasks/changelog_task.rb +1 -0
- data/tests/helper.rb +3 -3
- data/tests/helpers/mock_helper.rb +0 -4
- data/tests/openstack/requests/baremetal/chassis_tests.rb +48 -0
- data/tests/openstack/requests/baremetal/driver_tests.rb +40 -0
- data/tests/openstack/requests/baremetal/node_tests.rb +65 -0
- data/tests/openstack/requests/baremetal/port_tests.rb +56 -0
- data/tests/openstack/requests/compute/server_tests.rb +2 -0
- data/tests/openstack/requests/orchestration/stack_tests.rb +2 -2
- data/tests/vsphere/requests/compute/get_network_tests.rb +48 -0
- metadata +88 -23
- data/lib/fog/aws.rb +0 -23
- data/lib/fog/bin/riakcs.rb +0 -25
- data/lib/fog/openstack/requests/orchestration/list_stacks.rb +0 -47
- data/lib/fog/riakcs.rb +0 -2
- data/lib/fog/riakcs/core.rb +0 -121
- data/lib/fog/riakcs/provisioning.rb +0 -98
- data/lib/fog/riakcs/requests/provisioning/create_user.rb +0 -77
- data/lib/fog/riakcs/requests/provisioning/disable_user.rb +0 -23
- data/lib/fog/riakcs/requests/provisioning/enable_user.rb +0 -23
- data/lib/fog/riakcs/requests/provisioning/get_user.rb +0 -41
- data/lib/fog/riakcs/requests/provisioning/list_users.rb +0 -43
- data/lib/fog/riakcs/requests/provisioning/regrant_secret.rb +0 -23
- data/lib/fog/riakcs/requests/provisioning/update_user.rb +0 -23
- data/lib/fog/riakcs/requests/usage/get_usage.rb +0 -68
- data/lib/fog/riakcs/usage.rb +0 -62
- data/tests/riakcs/requests/provisioning/provisioning_tests.rb +0 -174
- 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 |
|
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
|