fog-openstack 0.1.1 → 0.1.2
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/.hound.yml +2 -0
- data/.rubocop.yml +93 -0
- data/.travis.yml +13 -10
- data/{lib/fog/openstack/CHANGELOG.md → CHANGELOG.md} +0 -0
- data/CODE_OF_CONDUCT.md +1 -1
- data/Gemfile +2 -0
- data/README.md +497 -3
- data/Rakefile +5 -1
- data/fog-openstack.gemspec +8 -7
- data/gemfiles/Gemfile-1.9 +16 -0
- data/lib/fog/openstack.rb +55 -30
- data/lib/fog/openstack/docs/metering.md +29 -0
- data/lib/fog/openstack/metering.rb +6 -1
- data/lib/fog/openstack/models/metering/event.rb +16 -0
- data/lib/fog/openstack/models/metering/events.rb +23 -0
- data/lib/fog/openstack/models/network/floating_ip.rb +1 -24
- data/lib/fog/openstack/models/network/ike_policies.rb +32 -0
- data/lib/fog/openstack/models/network/ike_policy.rb +43 -0
- data/lib/fog/openstack/models/network/ipsec_policies.rb +32 -0
- data/lib/fog/openstack/models/network/ipsec_policy.rb +45 -0
- data/lib/fog/openstack/models/network/ipsec_site_connection.rb +51 -0
- data/lib/fog/openstack/models/network/ipsec_site_connections.rb +33 -0
- data/lib/fog/openstack/models/network/vpn_service.rb +42 -0
- data/lib/fog/openstack/models/network/vpn_services.rb +32 -0
- data/lib/fog/openstack/network.rb +52 -13
- data/lib/fog/openstack/requests/compute/create_volume.rb +28 -21
- data/lib/fog/openstack/requests/metering/get_event.rb +27 -0
- data/lib/fog/openstack/requests/metering/list_events.rb +42 -0
- data/lib/fog/openstack/requests/network/associate_floating_ip.rb +15 -10
- data/lib/fog/openstack/requests/network/create_floating_ip.rb +1 -1
- data/lib/fog/openstack/requests/network/create_ike_policy.rb +53 -0
- data/lib/fog/openstack/requests/network/create_ipsec_policy.rb +53 -0
- data/lib/fog/openstack/requests/network/create_ipsec_site_connection.rb +66 -0
- data/lib/fog/openstack/requests/network/create_vpn_service.rb +51 -0
- data/lib/fog/openstack/requests/network/delete_ike_policy.rb +28 -0
- data/lib/fog/openstack/requests/network/delete_ipsec_policy.rb +28 -0
- data/lib/fog/openstack/requests/network/delete_ipsec_site_connection.rb +29 -0
- data/lib/fog/openstack/requests/network/delete_vpn_service.rb +28 -0
- data/lib/fog/openstack/requests/network/disassociate_floating_ip.rb +15 -10
- data/lib/fog/openstack/requests/network/get_floating_ip.rb +12 -2
- data/lib/fog/openstack/requests/network/get_ike_policy.rb +28 -0
- data/lib/fog/openstack/requests/network/get_ipsec_policy.rb +28 -0
- data/lib/fog/openstack/requests/network/get_ipsec_site_connection.rb +28 -0
- data/lib/fog/openstack/requests/network/get_network.rb +1 -13
- data/lib/fog/openstack/requests/network/get_vpn_service.rb +28 -0
- data/lib/fog/openstack/requests/network/list_ike_policies.rb +25 -0
- data/lib/fog/openstack/requests/network/list_ipsec_policies.rb +25 -0
- data/lib/fog/openstack/requests/network/list_ipsec_site_connections.rb +25 -0
- data/lib/fog/openstack/requests/network/list_vpn_services.rb +25 -0
- data/lib/fog/openstack/requests/network/update_ike_policy.rb +49 -0
- data/lib/fog/openstack/requests/network/update_ipsec_policy.rb +52 -0
- data/lib/fog/openstack/requests/network/update_ipsec_site_connection.rb +64 -0
- data/lib/fog/openstack/requests/network/update_vpn_service.rb +46 -0
- data/lib/fog/openstack/storage.rb +2 -2
- data/lib/fog/openstack/version.rb +1 -1
- data/tests/helper.rb +3 -0
- data/tests/openstack/models/network/ike_policies_tests.rb +28 -0
- data/tests/openstack/models/network/ike_policy_tests.rb +36 -0
- data/tests/openstack/models/network/ipsec_policies_tests.rb +26 -0
- data/tests/openstack/models/network/ipsec_policy_tests.rb +36 -0
- data/tests/openstack/models/network/ipsec_site_connection_tests.rb +50 -0
- data/tests/openstack/models/network/ipsec_site_connections_tests.rb +32 -0
- data/tests/openstack/models/network/vpn_service_tests.rb +27 -0
- data/tests/openstack/models/network/vpn_services_tests.rb +22 -0
- data/tests/openstack/requests/metering/event_tests.rb +17 -0
- data/tests/openstack/requests/network/ike_policy_tests.rb +65 -0
- data/tests/openstack/requests/network/ipsec_policy_tests.rb +65 -0
- data/tests/openstack/requests/network/ipsec_site_connection_tests.rb +82 -0
- data/tests/openstack/requests/network/vpn_service_tests.rb +61 -0
- metadata +109 -47
- data/CONTRIBUTORS.md +0 -79
data/Rakefile
CHANGED
@@ -1,7 +1,11 @@
|
|
1
|
-
require
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'rubocop/rake_task'
|
3
|
+
|
4
|
+
RuboCop::RakeTask.new
|
2
5
|
|
3
6
|
task :default => :test
|
4
7
|
|
8
|
+
desc 'Run fog-openstack unit tests'
|
5
9
|
mock = ENV['FOG_MOCK'] || 'true'
|
6
10
|
task :test do
|
7
11
|
sh("export FOG_MOCK=#{mock} && bundle exec shindont")
|
data/fog-openstack.gemspec
CHANGED
@@ -19,15 +19,16 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
spec.add_development_dependency 'bundler', '~> 1.6'
|
23
|
-
spec.add_development_dependency 'rake', '~> 10.0'
|
24
|
-
spec.add_development_dependency 'shindo', '~> 0.3'
|
25
|
-
spec.add_development_dependency 'rubyzip', '~> 0.9.9'
|
26
|
-
spec.add_development_dependency "mime-types"
|
27
|
-
spec.add_development_dependency "mime-types-data"
|
28
|
-
|
29
22
|
spec.add_dependency 'fog-core', '>= 1.35'
|
30
23
|
spec.add_dependency 'fog-json', '>= 1.0'
|
31
24
|
spec.add_dependency 'fog-xml', '>= 0.1'
|
32
25
|
spec.add_dependency 'ipaddress', '>= 0.8'
|
26
|
+
|
27
|
+
spec.add_development_dependency 'bundler', '~> 1.6'
|
28
|
+
spec.add_development_dependency "mime-types"
|
29
|
+
spec.add_development_dependency "mime-types-data"
|
30
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
31
|
+
spec.add_development_dependency 'rubocop'
|
32
|
+
spec.add_development_dependency 'rubyzip', '~> 0.9.9'
|
33
|
+
spec.add_development_dependency 'shindo', '~> 0.3'
|
33
34
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
gem "coveralls", require: false
|
4
|
+
|
5
|
+
group :development, :test do
|
6
|
+
gem "fog-core", ">= 1.35"
|
7
|
+
gem "fog-json", ">= 1.0"
|
8
|
+
gem "fog-xml", ">= 0.1"
|
9
|
+
gem "ipaddress", ">= 0.8"
|
10
|
+
gem "bundler", "~> 1.6"
|
11
|
+
gem "mime-types", "2.6.2"
|
12
|
+
gem "rake", "~> 10.0"
|
13
|
+
gem "rubocop"
|
14
|
+
gem "rubyzip", "~> 0.9.9"
|
15
|
+
gem "shindo", "~> 0.3"
|
16
|
+
end
|
data/lib/fog/openstack.rb
CHANGED
@@ -6,6 +6,22 @@ require 'fog/openstack/core'
|
|
6
6
|
require 'fog/openstack/common'
|
7
7
|
require 'fog/openstack/errors'
|
8
8
|
|
9
|
+
require 'fog/openstack/compute'
|
10
|
+
require 'fog/openstack/identity_v2'
|
11
|
+
require 'fog/openstack/identity_v3'
|
12
|
+
require 'fog/openstack/image'
|
13
|
+
require 'fog/openstack/image_v1'
|
14
|
+
require 'fog/openstack/image_v2'
|
15
|
+
require 'fog/openstack/metering'
|
16
|
+
require 'fog/openstack/network'
|
17
|
+
require 'fog/openstack/orchestration'
|
18
|
+
require 'fog/openstack/storage'
|
19
|
+
require 'fog/openstack/volume'
|
20
|
+
require 'fog/openstack/volume_v1'
|
21
|
+
require 'fog/openstack/volume_v2'
|
22
|
+
require 'fog/openstack/baremetal'
|
23
|
+
require 'fog/openstack/planning'
|
24
|
+
|
9
25
|
module Fog
|
10
26
|
module OpenStack
|
11
27
|
extend Fog::Provider
|
@@ -284,11 +300,12 @@ module Fog
|
|
284
300
|
end
|
285
301
|
|
286
302
|
def self.retrieve_tokens_v2(options, connection_options = {})
|
287
|
-
api_key
|
288
|
-
username
|
289
|
-
tenant_name
|
290
|
-
auth_token
|
291
|
-
uri
|
303
|
+
api_key = options[:openstack_api_key].to_s
|
304
|
+
username = options[:openstack_username].to_s
|
305
|
+
tenant_name = options[:openstack_tenant].to_s
|
306
|
+
auth_token = options[:openstack_auth_token] || options[:unscoped_token]
|
307
|
+
uri = options[:openstack_auth_uri]
|
308
|
+
omit_default_port = options[:openstack_auth_omit_default_port]
|
292
309
|
|
293
310
|
identity_v2_connection = Fog::Core::Connection.new(uri.to_s, false, connection_options)
|
294
311
|
request_body = {:auth => Hash.new}
|
@@ -305,32 +322,36 @@ module Fog
|
|
305
322
|
end
|
306
323
|
request_body[:auth][:tenantName] = tenant_name if tenant_name
|
307
324
|
|
308
|
-
|
309
|
-
:expects
|
310
|
-
:headers
|
311
|
-
:body
|
312
|
-
:method
|
313
|
-
:path
|
314
|
-
}
|
325
|
+
request = {
|
326
|
+
:expects => [200, 204],
|
327
|
+
:headers => {'Content-Type' => 'application/json'},
|
328
|
+
:body => Fog::JSON.encode(request_body),
|
329
|
+
:method => 'POST',
|
330
|
+
:path => (uri.path and not uri.path.empty?) ? uri.path : 'v2.0'
|
331
|
+
}
|
332
|
+
request[:omit_default_port] = omit_default_port unless omit_default_port.nil?
|
333
|
+
|
334
|
+
response = identity_v2_connection.request(request)
|
315
335
|
|
316
336
|
Fog::JSON.decode(response.body)
|
317
337
|
end
|
318
338
|
|
319
339
|
def self.retrieve_tokens_v3(options, connection_options = {})
|
320
340
|
|
321
|
-
api_key
|
322
|
-
username
|
323
|
-
userid
|
324
|
-
domain_id
|
325
|
-
domain_name
|
326
|
-
project_domain
|
341
|
+
api_key = options[:openstack_api_key].to_s
|
342
|
+
username = options[:openstack_username].to_s
|
343
|
+
userid = options[:openstack_userid]
|
344
|
+
domain_id = options[:openstack_domain_id]
|
345
|
+
domain_name = options[:openstack_domain_name]
|
346
|
+
project_domain = options[:openstack_project_domain]
|
327
347
|
project_domain_id = options[:openstack_project_domain_id]
|
328
|
-
user_domain
|
329
|
-
user_domain_id
|
330
|
-
project_name
|
331
|
-
project_id
|
332
|
-
auth_token
|
333
|
-
uri
|
348
|
+
user_domain = options[:openstack_user_domain]
|
349
|
+
user_domain_id = options[:openstack_user_domain_id]
|
350
|
+
project_name = options[:openstack_project_name]
|
351
|
+
project_id = options[:openstack_project_id]
|
352
|
+
auth_token = options[:openstack_auth_token] || options[:unscoped_token]
|
353
|
+
uri = options[:openstack_auth_uri]
|
354
|
+
omit_default_port = options[:openstack_auth_omit_default_port]
|
334
355
|
|
335
356
|
connection = Fog::Core::Connection.new(uri.to_s, false, connection_options)
|
336
357
|
request_body = {:auth => {}}
|
@@ -389,12 +410,16 @@ module Fog
|
|
389
410
|
response, expires = @@token_cache[{body: request_body, path: path}]
|
390
411
|
|
391
412
|
unless response && expires > Time.now
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
413
|
+
request = {
|
414
|
+
:expects => [201],
|
415
|
+
:headers => {'Content-Type' => 'application/json'},
|
416
|
+
:body => Fog::JSON.encode(request_body),
|
417
|
+
:method => 'POST',
|
418
|
+
:path => path
|
419
|
+
}
|
420
|
+
request[:omit_default_port] = omit_default_port unless omit_default_port.nil?
|
421
|
+
|
422
|
+
response = connection.request(request)
|
398
423
|
@@token_cache[{body: request_body, path: path}] = response, Time.now + 30 # 30-second TTL, enough for most requests
|
399
424
|
end
|
400
425
|
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# OpenStack Metering (Ceilometer)
|
2
|
+
|
3
|
+
This document explains how to get started using OpenStack Metering (Ceilometer) with Fog. It assumes you have read the [Getting Started with Fog and the OpenStack](getting_started.md) document.
|
4
|
+
|
5
|
+
Fog uses the [OpenStack Metering API](http://docs.openstack.org/developer/ceilometer/webapi/v2.html).
|
6
|
+
|
7
|
+
## Metering Service
|
8
|
+
|
9
|
+
Get a handle on the Metering service:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
service = Fog::Metering::OpenStack.new({
|
13
|
+
:openstack_auth_url => 'http://KEYSTONE_HOST:KEYSTONE_PORT/v2.0/tokens', # OpenStack Keystone endpoint
|
14
|
+
:openstack_username => OPEN_STACK_USER, # Your OpenStack Username
|
15
|
+
:openstack_tenant => OPEN_STACK_TENANT, # Your tenant id
|
16
|
+
:openstack_api_key => OPEN_STACK_PASSWORD, # Your OpenStack Password
|
17
|
+
:connection_options => {} # Optional
|
18
|
+
})
|
19
|
+
```
|
20
|
+
|
21
|
+
## Events
|
22
|
+
|
23
|
+
* `service.events`: Return a list of events.
|
24
|
+
* `service.events.find_by_id(<message_id>)`: Return the event matching message_id, or nil if no such event exists.
|
25
|
+
|
26
|
+
## Resources
|
27
|
+
|
28
|
+
* `service.resources`: Return a list of resources.
|
29
|
+
* `service.resources.find_by_id(<resource_id>)`: Return the resource matching resource_id, or nil if no such resource exists.
|
@@ -20,12 +20,17 @@ module Fog
|
|
20
20
|
model :resource
|
21
21
|
collection :resources
|
22
22
|
|
23
|
+
model :event
|
24
|
+
collection :events
|
25
|
+
|
23
26
|
request_path 'fog/openstack/requests/metering'
|
24
27
|
|
25
28
|
# Metering
|
29
|
+
request :get_event
|
26
30
|
request :get_resource
|
27
31
|
request :get_samples
|
28
32
|
request :get_statistics
|
33
|
+
request :list_events
|
29
34
|
request :list_meters
|
30
35
|
request :list_resources
|
31
36
|
|
@@ -126,7 +131,7 @@ module Fog
|
|
126
131
|
rescue Excon::Errors::HTTPStatusError => error
|
127
132
|
raise case error
|
128
133
|
when Excon::Errors::NotFound
|
129
|
-
Fog::
|
134
|
+
Fog::Metering::OpenStack::NotFound.slurp(error)
|
130
135
|
else
|
131
136
|
error
|
132
137
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'fog/openstack/models/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Metering
|
5
|
+
class OpenStack
|
6
|
+
class Event < Fog::OpenStack::Model
|
7
|
+
identity :message_id
|
8
|
+
|
9
|
+
attribute :event_type
|
10
|
+
attribute :generated
|
11
|
+
attribute :raw
|
12
|
+
attribute :traits
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'fog/openstack/models/collection'
|
2
|
+
require 'fog/openstack/models/metering/event'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Metering
|
6
|
+
class OpenStack
|
7
|
+
class Events < Fog::OpenStack::Collection
|
8
|
+
model Fog::Metering::OpenStack::Event
|
9
|
+
|
10
|
+
def all(detailed=true)
|
11
|
+
load_response(service.list_events)
|
12
|
+
end
|
13
|
+
|
14
|
+
def find_by_id(message_id)
|
15
|
+
event = service.get_event(message_id).body
|
16
|
+
new(event)
|
17
|
+
rescue Fog::Metering::OpenStack::NotFound
|
18
|
+
nil
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -21,7 +21,7 @@ module Fog
|
|
21
21
|
requires :floating_network_id
|
22
22
|
merge_attributes(service.create_floating_ip(self.floating_network_id,
|
23
23
|
|
24
|
-
|
24
|
+
self.attributes).body['floatingip'])
|
25
25
|
self
|
26
26
|
end
|
27
27
|
|
@@ -34,29 +34,6 @@ module Fog
|
|
34
34
|
service.delete_floating_ip(self.id)
|
35
35
|
true
|
36
36
|
end
|
37
|
-
|
38
|
-
def associate(port_id, fixed_ip_address = nil)
|
39
|
-
requires :id
|
40
|
-
options = if !fixed_ip_address.nil?
|
41
|
-
{ 'fixed_ip_address': fixed_ip_address }
|
42
|
-
else
|
43
|
-
{}
|
44
|
-
end
|
45
|
-
merge_attributes(service.associate_floating_ip(self.id,
|
46
|
-
port_id,
|
47
|
-
options).body['floatingip'])
|
48
|
-
end
|
49
|
-
|
50
|
-
def disassociate(fixed_ip_address = nil)
|
51
|
-
requires :id
|
52
|
-
options = if !fixed_ip_address.nil?
|
53
|
-
{ 'fixed_ip_address': fixed_ip_address }
|
54
|
-
else
|
55
|
-
{}
|
56
|
-
end
|
57
|
-
merge_attributes(service.disassociate_floating_ip(self.id,
|
58
|
-
options).body['floatingip'])
|
59
|
-
end
|
60
37
|
end
|
61
38
|
end
|
62
39
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'fog/openstack/models/collection'
|
2
|
+
require 'fog/openstack/models/network/ike_policy'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Network
|
6
|
+
class OpenStack
|
7
|
+
class IkePolicies < Fog::OpenStack::Collection
|
8
|
+
attribute :filters
|
9
|
+
|
10
|
+
model Fog::Network::OpenStack::IkePolicy
|
11
|
+
|
12
|
+
def initialize(attributes)
|
13
|
+
self.filters ||= {}
|
14
|
+
super
|
15
|
+
end
|
16
|
+
|
17
|
+
def all(filters_arg = filters)
|
18
|
+
filters = filters_arg
|
19
|
+
load_response(service.list_ike_policies(filters), 'ikepolicies')
|
20
|
+
end
|
21
|
+
|
22
|
+
def get(ike_policy_id)
|
23
|
+
if ike_policy = service.get_ike_policy(ike_policy_id).body['ikepolicy']
|
24
|
+
new(ike_policy)
|
25
|
+
end
|
26
|
+
rescue Fog::Network::OpenStack::NotFound
|
27
|
+
nil
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'fog/openstack/models/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Network
|
5
|
+
class OpenStack
|
6
|
+
class IkePolicy < Fog::OpenStack::Model
|
7
|
+
identity :id
|
8
|
+
|
9
|
+
attribute :name
|
10
|
+
attribute :description
|
11
|
+
attribute :status
|
12
|
+
attribute :admin_state_up
|
13
|
+
attribute :tenant_id
|
14
|
+
attribute :auth_algorithm
|
15
|
+
attribute :encryption_algorithm
|
16
|
+
attribute :pfs
|
17
|
+
attribute :phase1_negotiation_mode
|
18
|
+
attribute :lifetime
|
19
|
+
attribute :ike_version
|
20
|
+
|
21
|
+
def create
|
22
|
+
requires :name, :auth_algorithm, :encryption_algorithm, :ike_version,
|
23
|
+
:lifetime, :pfs, :phase1_negotiation_mode
|
24
|
+
merge_attributes(service.create_ike_policy(attributes).body['ikepolicy'])
|
25
|
+
self
|
26
|
+
end
|
27
|
+
|
28
|
+
def update
|
29
|
+
requires :id, :name, :auth_algorithm, :encryption_algorithm, :ike_version,
|
30
|
+
:lifetime, :pfs, :phase1_negotiation_mode
|
31
|
+
merge_attributes(service.update_ike_policy(id, attributes).body['ikepolicy'])
|
32
|
+
self
|
33
|
+
end
|
34
|
+
|
35
|
+
def destroy
|
36
|
+
requires :id
|
37
|
+
service.delete_ike_policy(id)
|
38
|
+
true
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'fog/openstack/models/collection'
|
2
|
+
require 'fog/openstack/models/network/ipsec_policy'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Network
|
6
|
+
class OpenStack
|
7
|
+
class IpsecPolicies < Fog::OpenStack::Collection
|
8
|
+
attribute :filters
|
9
|
+
|
10
|
+
model Fog::Network::OpenStack::IpsecPolicy
|
11
|
+
|
12
|
+
def initialize(attributes)
|
13
|
+
self.filters ||= {}
|
14
|
+
super
|
15
|
+
end
|
16
|
+
|
17
|
+
def all(filters_arg = filters)
|
18
|
+
filters = filters_arg
|
19
|
+
load_response(service.list_ipsec_policies(filters), 'ipsecpolicies')
|
20
|
+
end
|
21
|
+
|
22
|
+
def get(ipsec_policy_id)
|
23
|
+
if ipsec_policy = service.get_ipsec_policy(ipsec_policy_id).body['ipsecpolicy']
|
24
|
+
new(ipsec_policy)
|
25
|
+
end
|
26
|
+
rescue Fog::Network::OpenStack::NotFound
|
27
|
+
nil
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'fog/openstack/models/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Network
|
5
|
+
class OpenStack
|
6
|
+
class IpsecPolicy < Fog::OpenStack::Model
|
7
|
+
identity :id
|
8
|
+
|
9
|
+
attribute :name
|
10
|
+
attribute :description
|
11
|
+
attribute :status
|
12
|
+
attribute :admin_state_up
|
13
|
+
attribute :tenant_id
|
14
|
+
attribute :auth_algorithm
|
15
|
+
attribute :encryption_algorithm
|
16
|
+
attribute :pfs
|
17
|
+
attribute :transform_protocol
|
18
|
+
attribute :encapsulation_mode
|
19
|
+
attribute :lifetime
|
20
|
+
|
21
|
+
def create
|
22
|
+
requires :name, :auth_algorithm, :encryption_algorithm,
|
23
|
+
:lifetime, :pfs, :transform_protocol,
|
24
|
+
:encapsulation_mode
|
25
|
+
merge_attributes(service.create_ipsec_policy(attributes).body['ipsecpolicy'])
|
26
|
+
self
|
27
|
+
end
|
28
|
+
|
29
|
+
def update
|
30
|
+
requires :id, :name, :auth_algorithm, :encryption_algorithm,
|
31
|
+
:lifetime, :pfs, :transform_protocol,
|
32
|
+
:encapsulation_mode
|
33
|
+
merge_attributes(service.update_ipsec_policy(id, attributes).body['ipsecpolicy'])
|
34
|
+
self
|
35
|
+
end
|
36
|
+
|
37
|
+
def destroy
|
38
|
+
requires :id
|
39
|
+
service.delete_ipsec_policy(id)
|
40
|
+
true
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|