Class: Fog::KeyManager::OpenStack::Real
- Inherits:
-
Object
- Object
- Fog::KeyManager::OpenStack::Real
show all
- Includes:
- OpenStack::Core
- Defined in:
- lib/fog/key_manager/openstack.rb,
lib/fog/key_manager/openstack/requests/get_secret.rb,
lib/fog/key_manager/openstack/requests/list_secrets.rb,
lib/fog/key_manager/openstack/requests/create_secret.rb,
lib/fog/key_manager/openstack/requests/delete_secret.rb,
lib/fog/key_manager/openstack/requests/get_container.rb,
lib/fog/key_manager/openstack/requests/get_secret_acl.rb,
lib/fog/key_manager/openstack/requests/list_containers.rb,
lib/fog/key_manager/openstack/requests/create_container.rb,
lib/fog/key_manager/openstack/requests/delete_container.rb,
lib/fog/key_manager/openstack/requests/delete_secret_acl.rb,
lib/fog/key_manager/openstack/requests/get_container_acl.rb,
lib/fog/key_manager/openstack/requests/update_secret_acl.rb,
lib/fog/key_manager/openstack/requests/get_secret_payload.rb,
lib/fog/key_manager/openstack/requests/replace_secret_acl.rb,
lib/fog/key_manager/openstack/requests/get_secret_metadata.rb,
lib/fog/key_manager/openstack/requests/delete_container_acl.rb,
lib/fog/key_manager/openstack/requests/update_container_acl.rb,
lib/fog/key_manager/openstack/requests/replace_container_acl.rb more...
Instance Attribute Summary
#auth_token, #auth_token_expiration, #current_tenant, #current_user, #current_user_id, #openstack_cache_ttl, #openstack_domain_id, #openstack_domain_name, #openstack_identity_prefix, #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
#credentials, #initialize_identity, #reload
Constructor Details
permalink
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
[View source]
99
100
101
102
103
104
105
106
107
108
109
110
111
|
# File 'lib/fog/key_manager/openstack.rb', line 99
def initialize(options = {})
initialize_identity options
@openstack_service_type = options[:openstack_service_type] || ['key-manager']
@openstack_service_name = options[:openstack_service_name]
@connection_options = options[:connection_options] || {}
authenticate
set_api_path
@persistent = options[:persistent] || false
@connection = Fog::Core::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
end
|
Instance Method Details
permalink
#create_container(options) ⇒ Object
[View source]
5
6
7
8
9
10
11
12
|
# File 'lib/fog/key_manager/openstack/requests/create_container.rb', line 5
def create_container(options)
request(
:body => Fog::JSON.encode(options),
:expects => [201],
:method => 'POST',
:path => 'containers'
)
end
|
permalink
#create_secret(options) ⇒ Object
[View source]
5
6
7
8
9
10
11
12
|
# File 'lib/fog/key_manager/openstack/requests/create_secret.rb', line 5
def create_secret(options)
request(
:body => Fog::JSON.encode(options),
:expects => [201],
:method => 'POST',
:path => 'secrets'
)
end
|
permalink
#delete_container(id) ⇒ Object
[View source]
5
6
7
8
9
10
11
|
# File 'lib/fog/key_manager/openstack/requests/delete_container.rb', line 5
def delete_container(id)
request(
:expects => [204],
:method => 'DELETE',
:path => "containers/#{id}"
)
end
|
permalink
#delete_container_acl(uuid) ⇒ Object
[View source]
5
6
7
8
9
10
11
|
# File 'lib/fog/key_manager/openstack/requests/delete_container_acl.rb', line 5
def delete_container_acl(uuid)
request(
:expects => [200],
:method => 'DELETE',
:path => "containers/#{uuid}/acl"
)
end
|
permalink
#delete_secret(id) ⇒ Object
[View source]
5
6
7
8
9
10
11
|
# File 'lib/fog/key_manager/openstack/requests/delete_secret.rb', line 5
def delete_secret(id)
request(
:expects => [204],
:method => 'DELETE',
:path => "secrets/#{id}"
)
end
|
permalink
#delete_secret_acl(uuid) ⇒ Object
[View source]
5
6
7
8
9
10
11
|
# File 'lib/fog/key_manager/openstack/requests/delete_secret_acl.rb', line 5
def delete_secret_acl(uuid)
request(
:expects => [200],
:method => 'DELETE',
:path => "secrets/#{uuid}/acl"
)
end
|
permalink
#get_container(uuid) ⇒ Object
[View source]
5
6
7
8
9
10
11
|
# File 'lib/fog/key_manager/openstack/requests/get_container.rb', line 5
def get_container(uuid)
request(
:expects => [200],
:method => 'GET',
:path => "containers/#{uuid}",
)
end
|
permalink
#get_container_acl(uuid) ⇒ Object
[View source]
5
6
7
8
9
10
11
|
# File 'lib/fog/key_manager/openstack/requests/get_container_acl.rb', line 5
def get_container_acl(uuid)
request(
:expects => [200],
:method => 'GET',
:path => "containers/#{uuid}/acl"
)
end
|
permalink
#get_secret(uuid) ⇒ Object
[View source]
5
6
7
8
9
10
11
|
# File 'lib/fog/key_manager/openstack/requests/get_secret.rb', line 5
def get_secret(uuid)
request(
:expects => [200],
:method => 'GET',
:path => "secrets/#{uuid}",
)
end
|
permalink
#get_secret_acl(uuid) ⇒ Object
[View source]
5
6
7
8
9
10
11
|
# File 'lib/fog/key_manager/openstack/requests/get_secret_acl.rb', line 5
def get_secret_acl(uuid)
request(
:expects => [200],
:method => 'GET',
:path => "secrets/#{uuid}/acl"
)
end
|
[View source]
5
6
7
8
9
10
11
|
# File 'lib/fog/key_manager/openstack/requests/get_secret_metadata.rb', line 5
def get_secret_metadata(uuid)
request(
:expects => [200],
:method => 'GET',
:path => "secrets/#{uuid}/metadata",
)
end
|
permalink
#get_secret_payload(uuid) ⇒ Object
[View source]
5
6
7
8
9
10
11
12
13
14
|
# File 'lib/fog/key_manager/openstack/requests/get_secret_payload.rb', line 5
def get_secret_payload(uuid)
request(
:expects => [200],
:method => 'GET',
:path => "secrets/#{uuid}/payload",
:headers => {
'Accept' => '*/*'
}
)
end
|
permalink
#list_containers(options = {}) ⇒ Object
[View source]
5
6
7
8
9
10
11
12
|
# File 'lib/fog/key_manager/openstack/requests/list_containers.rb', line 5
def list_containers(options = {})
request(
:expects => [200],
:method => 'GET',
:path => 'containers',
:query => options
)
end
|
permalink
#list_secrets(options = {}) ⇒ Object
[View source]
5
6
7
8
9
10
11
12
|
# File 'lib/fog/key_manager/openstack/requests/list_secrets.rb', line 5
def list_secrets(options = {})
request(
:expects => [200],
:method => 'GET',
:path => 'secrets',
:query => options
)
end
|
permalink
#replace_container_acl(uuid, options) ⇒ Object
[View source]
5
6
7
8
9
10
11
12
|
# File 'lib/fog/key_manager/openstack/requests/replace_container_acl.rb', line 5
def replace_container_acl(uuid, options)
request(
:body => Fog::JSON.encode(options),
:expects => [200],
:method => 'PUT',
:path => "containers/#{uuid}/acl"
)
end
|
permalink
#replace_secret_acl(uuid, options) ⇒ Object
[View source]
5
6
7
8
9
10
11
12
|
# File 'lib/fog/key_manager/openstack/requests/replace_secret_acl.rb', line 5
def replace_secret_acl(uuid, options)
request(
:body => Fog::JSON.encode(options),
:expects => [200],
:method => 'PUT',
:path => "secrets/#{uuid}/acl"
)
end
|
permalink
#set_api_path ⇒ Object
[View source]
113
114
115
116
117
118
|
# File 'lib/fog/key_manager/openstack.rb', line 113
def set_api_path
@path.sub!(%r{/$}, '')
unless @path.match(SUPPORTED_VERSIONS)
@path = supported_version(SUPPORTED_VERSIONS, @openstack_management_uri, @auth_token, @connection_options)
end
end
|
permalink
#supported_version(supported_versions, uri, auth_token, connection_options = {}) ⇒ Object
[View source]
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
# File 'lib/fog/key_manager/openstack.rb', line 120
def supported_version(supported_versions, uri, auth_token, connection_options = {})
connection = Fog::Core::Connection.new("#{uri.scheme}://#{uri.host}:#{uri.port}", false, connection_options)
response = connection.request({ :expects => [200, 204, 300],
:headers => {'Content-Type' => 'application/json',
'Accept' => 'application/json',
'X-Auth-Token' => auth_token},
:method => 'GET'
})
body = Fog::JSON.decode(response.body)
version = nil
versions = body.fetch('versions',{}).fetch('values',[])
versions.each do |v|
if v.fetch('id', "").match(supported_versions) &&
['current', 'supported', 'stable'].include?(v.fetch('status','').downcase)
version = v['id']
end
end
if !version || version.empty?
raise Fog::OpenStack::Errors::ServiceUnavailable.new(
"OpenStack service only supports API versions #{supported_versions.inspect}")
end
version
end
|
permalink
#update_container_acl(uuid, options) ⇒ Object
[View source]
5
6
7
8
9
10
11
12
|
# File 'lib/fog/key_manager/openstack/requests/update_container_acl.rb', line 5
def update_container_acl(uuid, options)
request(
:body => Fog::JSON.encode(options),
:expects => [200],
:method => 'PATCH',
:path => "containers/#{uuid}/acl"
)
end
|
permalink
#update_secret_acl(uuid, options) ⇒ Object
[View source]
5
6
7
8
9
10
11
12
|
# File 'lib/fog/key_manager/openstack/requests/update_secret_acl.rb', line 5
def update_secret_acl(uuid, options)
request(
:body => Fog::JSON.encode(options),
:expects => [200],
:method => 'PATCH',
:path => "secrets/#{uuid}/acl"
)
end
|