Class: Fog::OpenStack::Baremetal::Real
- Inherits:
-
Object
- Object
- Fog::OpenStack::Baremetal::Real
show all
- Includes:
- Core
- Defined in:
- lib/fog/openstack/baremetal.rb,
lib/fog/openstack/baremetal/requests/get_node.rb,
lib/fog/openstack/baremetal/requests/get_port.rb,
lib/fog/openstack/baremetal/requests/get_driver.rb,
lib/fog/openstack/baremetal/requests/list_nodes.rb,
lib/fog/openstack/baremetal/requests/list_ports.rb,
lib/fog/openstack/baremetal/requests/patch_node.rb,
lib/fog/openstack/baremetal/requests/patch_port.rb,
lib/fog/openstack/baremetal/requests/create_node.rb,
lib/fog/openstack/baremetal/requests/create_port.rb,
lib/fog/openstack/baremetal/requests/delete_node.rb,
lib/fog/openstack/baremetal/requests/delete_port.rb,
lib/fog/openstack/baremetal/requests/get_chassis.rb,
lib/fog/openstack/baremetal/requests/list_chassis.rb,
lib/fog/openstack/baremetal/requests/list_drivers.rb,
lib/fog/openstack/baremetal/requests/patch_chassis.rb,
lib/fog/openstack/baremetal/requests/create_chassis.rb,
lib/fog/openstack/baremetal/requests/delete_chassis.rb,
lib/fog/openstack/baremetal/requests/list_nodes_detailed.rb,
lib/fog/openstack/baremetal/requests/list_ports_detailed.rb,
lib/fog/openstack/baremetal/requests/set_node_maintenance.rb,
lib/fog/openstack/baremetal/requests/set_node_power_state.rb,
lib/fog/openstack/baremetal/requests/get_driver_properties.rb,
lib/fog/openstack/baremetal/requests/list_chassis_detailed.rb,
lib/fog/openstack/baremetal/requests/unset_node_maintenance.rb,
lib/fog/openstack/baremetal/requests/set_node_provision_state.rb
Instance Attribute Summary
Attributes included from Core
#auth_token, #auth_token_expiration, #current_tenant, #current_user, #current_user_id, #openstack_application_credential_id, #openstack_application_credential_secret, #openstack_cache_ttl, #openstack_domain_id, #openstack_domain_name, #openstack_identity_api_version, #openstack_project_domain, #openstack_project_domain_id, #openstack_project_id, #openstack_user_domain, #openstack_user_domain_id, #unscoped_token
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Core
#credentials, #initialize, #reload
Class Method Details
.not_found_class ⇒ Object
250
251
252
|
# File 'lib/fog/openstack/baremetal.rb', line 250
def self.not_found_class
Fog::OpenStack::Baremetal::NotFound
end
|
Instance Method Details
#create_chassis(attributes) ⇒ Object
Create a new chassis
Attributes ===
description = Free text description of the chassis
extra = Record arbitrary key/value metadata. Can be specified multiple times
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/fog/openstack/baremetal/requests/create_chassis.rb', line 10
def create_chassis(attributes)
desired_options = [
:description,
:extra
]
data = attributes.select { |key, _value| desired_options.include?(key.to_sym) }
request(
:body => Fog::JSON.encode(data),
:expects => [200, 201],
:method => 'POST',
:path => 'chassis'
)
end
|
#create_node(attributes) ⇒ Object
Create a new node
Attributes ===
chassis_uuid = UUID of the chassis that this node belongs to
driver = Driver used to control the node [REQUIRED]
driver_info = Key/value pairs used by the driver, such as out-of-band management credentials. Can be
specified multiple times
extra = Record arbitrary key/value metadata. Can be specified multiple times
uuid = Unique UUID for the node
properties = Key/value pairs describing the physical characteristics of the node. This is exported to
Nova and used by the scheduler. Can be specified multiple times
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/fog/openstack/baremetal/requests/create_node.rb', line 16
def create_node(attributes)
desired_options = [
:chassis_uuid,
:driver,
:driver_info,
:extra,
:uuid,
:properties
]
data = attributes.select { |key, _value| desired_options.include?(key.to_sym) }
request(
:body => Fog::JSON.encode(data),
:expects => [200, 201],
:method => 'POST',
:path => 'nodes'
)
end
|
#create_port(attributes) ⇒ Object
Create a new port
Attributes ===
address = MAC Address for this port
extra = Record arbitrary key/value metadata. Can be specified multiple times
node_uuid = UUID of the node that this port belongs to
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/fog/openstack/baremetal/requests/create_port.rb', line 11
def create_port(attributes)
desired_options = [
:address,
:extra,
:node_uuid
]
data = attributes.select { |key, _value| desired_options.include?(key.to_sym) }
request(
:body => Fog::JSON.encode(data),
:expects => [200, 201],
:method => 'POST',
:path => 'ports'
)
end
|
#default_service_type ⇒ Object
254
255
256
|
# File 'lib/fog/openstack/baremetal.rb', line 254
def default_service_type
%w[baremetal]
end
|
#delete_chassis(chassis_uuid) ⇒ Object
5
6
7
8
9
10
11
12
13
|
# File 'lib/fog/openstack/baremetal/requests/delete_chassis.rb', line 5
def delete_chassis(chassis_uuid)
data = {:chassis_uuid => chassis_uuid}
request(
:body => Fog::JSON.encode(data),
:expects => [200, 204],
:method => 'DELETE',
:path => 'chassis'
)
end
|
#delete_node(node_uuid) ⇒ Object
5
6
7
8
9
10
11
12
13
|
# File 'lib/fog/openstack/baremetal/requests/delete_node.rb', line 5
def delete_node(node_uuid)
data = {:node_ident => node_uuid}
request(
:body => Fog::JSON.encode(data),
:expects => [200, 204],
:method => 'DELETE',
:path => 'nodes'
)
end
|
#delete_port(port_uuid) ⇒ Object
5
6
7
8
9
10
11
12
13
|
# File 'lib/fog/openstack/baremetal/requests/delete_port.rb', line 5
def delete_port(port_uuid)
data = {:port_uuid => port_uuid}
request(
:body => Fog::JSON.encode(data),
:expects => [200, 204],
:method => 'DELETE',
:path => 'ports'
)
end
|
#get_chassis(chassis_uuid) ⇒ Object
5
6
7
8
9
10
11
|
# File 'lib/fog/openstack/baremetal/requests/get_chassis.rb', line 5
def get_chassis(chassis_uuid)
request(
:expects => [200, 204],
:method => 'GET',
:path => "chassis/#{chassis_uuid}"
)
end
|
#get_driver(driver_name) ⇒ Object
5
6
7
8
9
10
11
|
# File 'lib/fog/openstack/baremetal/requests/get_driver.rb', line 5
def get_driver(driver_name)
request(
:expects => [200, 204],
:method => 'GET',
:path => "drivers/#{driver_name}"
)
end
|
#get_driver_properties(driver_name) ⇒ Object
5
6
7
8
9
10
11
12
13
|
# File 'lib/fog/openstack/baremetal/requests/get_driver_properties.rb', line 5
def get_driver_properties(driver_name)
data = {:driver_name => driver_name}
request(
:body => Fog::JSON.encode(data),
:expects => [200, 204],
:method => 'GET',
:path => "drivers/properties"
)
end
|
#get_node(node_id) ⇒ Object
5
6
7
8
9
10
11
|
# File 'lib/fog/openstack/baremetal/requests/get_node.rb', line 5
def get_node(node_id)
request(
:expects => [200, 204],
:method => 'GET',
:path => "nodes/#{node_id}"
)
end
|
#get_port(port_id) ⇒ Object
5
6
7
8
9
10
11
|
# File 'lib/fog/openstack/baremetal/requests/get_port.rb', line 5
def get_port(port_id)
request(
:expects => [200, 204],
:method => 'GET',
:path => "ports/#{port_id}"
)
end
|
#list_chassis(options = {}) ⇒ Object
5
6
7
8
9
10
11
12
|
# File 'lib/fog/openstack/baremetal/requests/list_chassis.rb', line 5
def list_chassis(options = {})
request(
:expects => [200, 204],
:method => 'GET',
:path => 'chassis',
:query => options
)
end
|
#list_chassis_detailed(options = {}) ⇒ Object
5
6
7
8
9
10
11
12
|
# File 'lib/fog/openstack/baremetal/requests/list_chassis_detailed.rb', line 5
def list_chassis_detailed(options = {})
request(
:expects => [200, 204],
:method => 'GET',
:path => 'chassis/detail',
:query => options
)
end
|
#list_drivers(options = {}) ⇒ Object
5
6
7
8
9
10
11
12
|
# File 'lib/fog/openstack/baremetal/requests/list_drivers.rb', line 5
def list_drivers(options = {})
request(
:expects => [200, 204],
:method => 'GET',
:path => 'drivers',
:query => options
)
end
|
#list_nodes(options = {}) ⇒ Object
5
6
7
8
9
10
11
12
|
# File 'lib/fog/openstack/baremetal/requests/list_nodes.rb', line 5
def list_nodes(options = {})
request(
:expects => [200, 204],
:method => 'GET',
:path => 'nodes',
:query => options
)
end
|
#list_nodes_detailed(options = {}) ⇒ Object
5
6
7
8
9
10
11
12
|
# File 'lib/fog/openstack/baremetal/requests/list_nodes_detailed.rb', line 5
def list_nodes_detailed(options = {})
request(
:expects => [200, 204],
:method => 'GET',
:path => 'nodes/detail',
:query => options
)
end
|
#list_ports(options = {}) ⇒ Object
5
6
7
8
9
10
11
12
|
# File 'lib/fog/openstack/baremetal/requests/list_ports.rb', line 5
def list_ports(options = {})
request(
:expects => [200, 204],
:method => 'GET',
:path => 'ports',
:query => options
)
end
|
#list_ports_detailed(options = {}) ⇒ Object
5
6
7
8
9
10
11
12
|
# File 'lib/fog/openstack/baremetal/requests/list_ports_detailed.rb', line 5
def list_ports_detailed(options = {})
request(
:expects => [200, 204],
:method => 'GET',
:path => 'ports/detail',
:query => options
)
end
|
#patch_chassis(chassis_uuid, patch) ⇒ Object
Patch a chassis
parameter example:
['replace', :path => "/extra/placement", :value => "somewhere"]
Patch parameter, list of jsonpatch ===
op = Operations: 'add', 'replace' or 'remove'
path = Attributes to add/replace or remove (only PATH is necessary on remove),
e.g. /extra/placement
value = Value to set
15
16
17
18
19
20
21
22
|
# File 'lib/fog/openstack/baremetal/requests/patch_chassis.rb', line 15
def patch_chassis(chassis_uuid, patch)
request(
:body => Fog::JSON.encode(patch),
:expects => 200,
:method => 'PATCH',
:path => "chassis/#{chassis_uuid}"
)
end
|
#patch_node(node_uuid, patch) ⇒ Object
Patch a node
parameter example:
['replace', :path => "/driver", :value => "pxe_ssh"]
Patch parameter, list of jsonpatch ===
op = Operations: 'add', 'replace' or 'remove'
path = Attributes to add/replace or remove (only PATH is necessary on remove),
e.g. /driver_info/ipmi_address
value = Value to set
15
16
17
18
19
20
21
22
|
# File 'lib/fog/openstack/baremetal/requests/patch_node.rb', line 15
def patch_node(node_uuid, patch)
request(
:body => Fog::JSON.encode(patch),
:expects => 200,
:method => 'PATCH',
:path => "nodes/#{node_uuid}"
)
end
|
#patch_port(port_uuid, patch) ⇒ Object
Patch a port
parameter example:
['replace', :path => "/driver_info/ipmi_address", :value => "192.0.2.1"]
Patch parameter, list of jsonpatch ===
op = Operations: 'add', 'replace' or 'remove'
path = Attributes to add/replace or remove (only PATH is necessary on remove),
e.g. /driver_info/ipmi_address
value = Value to set
15
16
17
18
19
20
21
22
|
# File 'lib/fog/openstack/baremetal/requests/patch_port.rb', line 15
def patch_port(port_uuid, patch)
request(
:body => Fog::JSON.encode(patch),
:expects => 200,
:method => 'PATCH',
:path => "ports/#{port_uuid}"
)
end
|
#set_node_maintenance(node_uuid, parameters = nil) ⇒ Object
5
6
7
8
9
10
11
12
|
# File 'lib/fog/openstack/baremetal/requests/set_node_maintenance.rb', line 5
def set_node_maintenance(node_uuid, parameters = nil)
request(
:expects => [200, 202, 204],
:method => 'PUT',
:path => "nodes/#{node_uuid}/maintenance",
:query => parameters
)
end
|
#set_node_power_state(node_id, power_state) ⇒ Object
5
6
7
8
9
10
11
12
13
14
15
16
|
# File 'lib/fog/openstack/baremetal/requests/set_node_power_state.rb', line 5
def set_node_power_state(node_id, power_state)
data = {
'target' => power_state
}
request(
:body => Fog::JSON.encode(data),
:expects => 202,
:method => 'PUT',
:path => "nodes/#{node_id}/states/power"
)
end
|
#set_node_provision_state(node_id, provision_state) ⇒ Object
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# File 'lib/fog/openstack/baremetal/requests/set_node_provision_state.rb', line 5
def set_node_provision_state(node_id, provision_state)
data = {
'target' => provision_state
}
request(
:body => Fog::JSON.encode(data),
:expects => 202,
:method => 'PUT',
:path => "nodes/#{node_id}/states/provision",
:headers => {
:'X-OpenStack-Ironic-API-Version' => 'latest'
}
)
end
|
#unset_node_maintenance(node_uuid, parameters = nil) ⇒ Object
5
6
7
8
9
10
11
12
|
# File 'lib/fog/openstack/baremetal/requests/unset_node_maintenance.rb', line 5
def unset_node_maintenance(node_uuid, parameters = nil)
request(
:expects => [200, 202, 204],
:method => 'DELETE',
:path => "nodes/#{node_uuid}/maintenance",
:query => parameters
)
end
|