fog-openstack 0.1.12 → 0.1.13
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/.travis.yml +0 -1
- data/README.md +2 -2
- data/Rakefile +1 -8
- data/docs/orchestration.md +19 -0
- data/fog-openstack.gemspec +2 -1
- data/gemfiles/Gemfile-1.9 +2 -1
- data/lib/fog/dns/openstack/v2.rb +20 -0
- data/lib/fog/dns/openstack/v2/models/recordset.rb +55 -0
- data/lib/fog/dns/openstack/v2/models/recordsets.rb +30 -0
- data/lib/fog/dns/openstack/v2/models/zone.rb +50 -0
- data/lib/fog/dns/openstack/v2/models/zones.rb +30 -0
- data/lib/fog/dns/openstack/v2/requests/delete_recordset.rb +5 -3
- data/lib/fog/dns/openstack/v2/requests/delete_zone.rb +5 -3
- data/lib/fog/dns/openstack/v2/requests/get_quota.rb +4 -2
- data/lib/fog/dns/openstack/v2/requests/get_recordset.rb +4 -2
- data/lib/fog/dns/openstack/v2/requests/get_zone.rb +5 -3
- data/lib/fog/dns/openstack/v2/requests/list_recordsets.rb +29 -5
- data/lib/fog/dns/openstack/v2/requests/list_zones.rb +4 -1
- data/lib/fog/dns/openstack/v2/requests/update_quota.rb +4 -3
- data/lib/fog/dns/openstack/v2/requests/update_recordset.rb +4 -1
- data/lib/fog/dns/openstack/v2/requests/update_zone.rb +4 -1
- data/lib/fog/introspection/openstack.rb +3 -8
- data/lib/fog/monitoring/openstack.rb +7 -1
- data/lib/fog/monitoring/openstack/models/alarm.rb +0 -1
- data/lib/fog/monitoring/openstack/models/alarm_definition.rb +1 -0
- data/lib/fog/monitoring/openstack/models/dimension_value.rb +19 -0
- data/lib/fog/monitoring/openstack/models/dimension_values.rb +16 -0
- data/lib/fog/monitoring/openstack/models/metrics.rb +8 -0
- data/lib/fog/monitoring/openstack/models/notification_method.rb +8 -1
- data/lib/fog/monitoring/openstack/models/notification_methods.rb +4 -0
- data/lib/fog/monitoring/openstack/requests/list_dimension_values.rb +21 -0
- data/lib/fog/monitoring/openstack/requests/list_notification_method_types.rb +21 -0
- data/lib/fog/monitoring/openstack/requests/{update_notification_method.rb → patch_notification_method.rb} +1 -1
- data/lib/fog/monitoring/openstack/requests/put_notification_method.rb +19 -0
- data/lib/fog/network/openstack.rb +12 -8
- data/lib/fog/network/openstack/requests/create_network.rb +54 -63
- data/lib/fog/network/openstack/requests/update_network.rb +27 -8
- data/lib/fog/openstack.rb +44 -28
- data/lib/fog/openstack/version.rb +1 -1
- data/lib/fog/orchestration/openstack.rb +1 -0
- data/lib/fog/orchestration/openstack/models/stack.rb +4 -0
- data/lib/fog/orchestration/openstack/requests/cancel_update.rb +26 -0
- metadata +13 -30
- data/tests/fixtures/introspection.yaml +0 -287
- data/tests/helper.rb +0 -24
- data/tests/helpers/collection_helper.rb +0 -97
- data/tests/helpers/compute/flavors_helper.rb +0 -32
- data/tests/helpers/compute/server_helper.rb +0 -25
- data/tests/helpers/compute/servers_helper.rb +0 -10
- data/tests/helpers/formats_helper.rb +0 -98
- data/tests/helpers/formats_helper_tests.rb +0 -110
- data/tests/helpers/mock_helper.rb +0 -17
- data/tests/helpers/model_helper.rb +0 -31
- data/tests/helpers/responds_to_helper.rb +0 -11
- data/tests/helpers/schema_validator_tests.rb +0 -107
- data/tests/helpers/succeeds_helper.rb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2e12b17ba616a2d5b1d1290312ff5d1cd489c62
|
4
|
+
data.tar.gz: b81c3f55d47899d6f5ecc77b25065ad77f3df5d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b0cc3dfc3872a6cf24819aa45831807d5cbfec03cc9e992aced62f3576218befdb1e67502029e6b708b7a6d3fd3228924b09873e510ffa68304570b99003b5a
|
7
|
+
data.tar.gz: f3d442b936d042cdbdc13c3c446fc6f3af09a5c9e602152b154dd61abe18c3b71bd219ce93156df38d220520e7a45d0bdc3dc9c826be1d3e488e3bc211636d76
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -59,7 +59,7 @@ If you're using Keystone V2, you don't need to supply domain details but ensure
|
|
59
59
|
|
60
60
|
```ruby
|
61
61
|
@connection_params = {
|
62
|
-
openstack_auth_url: "http://devstack.test:5000/v2.0/tokens"
|
62
|
+
openstack_auth_url: "http://devstack.test:5000/v2.0/tokens",
|
63
63
|
openstack_username: "admin",
|
64
64
|
openstack_api_key: "password",
|
65
65
|
openstack_project_name: "admin"
|
@@ -514,7 +514,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
514
514
|
|
515
515
|
## Contributing
|
516
516
|
|
517
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
517
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/fog/fog-openstack. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
518
518
|
|
519
519
|
|
520
520
|
## License
|
data/Rakefile
CHANGED
@@ -6,15 +6,8 @@ RuboCop::RakeTask.new
|
|
6
6
|
|
7
7
|
task :default => :test
|
8
8
|
|
9
|
-
# To be removed once after Minitest migration
|
10
|
-
desc 'Run fog-openstack unit tests with Shindo'
|
11
|
-
task :test do
|
12
|
-
mock = ENV['FOG_MOCK'] || 'true'
|
13
|
-
sh("export FOG_MOCK=#{mock} && bundle exec shindont")
|
14
|
-
end
|
15
|
-
|
16
9
|
desc 'Run fog-openstack unit tests with Minitest'
|
17
|
-
task :
|
10
|
+
task :test do
|
18
11
|
mock = ENV['FOG_MOCK'] || 'true'
|
19
12
|
sh("export FOG_MOCK=#{mock} && bundle exec rake tests:unit")
|
20
13
|
end
|
data/docs/orchestration.md
CHANGED
@@ -316,3 +316,22 @@ service.templates.validate(:template => content)
|
|
316
316
|
content=nil
|
317
317
|
>
|
318
318
|
```
|
319
|
+
|
320
|
+
## Cancel Update
|
321
|
+
When the stack is updating, you can cancel the update:
|
322
|
+
|
323
|
+
```ruby
|
324
|
+
# stack.stack_status == 'UPDATE_IN_PROGRESS'
|
325
|
+
stack.cancel_update
|
326
|
+
=> nil
|
327
|
+
```
|
328
|
+
|
329
|
+
Then you can see the status changed to ROLLBACK_IN_PROGRESS:
|
330
|
+
|
331
|
+
```ruby
|
332
|
+
stack = service.stacks.get(stack.stack_name, stack.id)
|
333
|
+
stack.stack_status
|
334
|
+
=> "ROLLBACK_IN_PROGRESS"
|
335
|
+
```
|
336
|
+
|
337
|
+
|
data/fog-openstack.gemspec
CHANGED
@@ -24,7 +24,8 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_dependency 'ipaddress', '>= 0.8'
|
25
25
|
|
26
26
|
spec.add_development_dependency 'bundler', '~> 1.6'
|
27
|
-
|
27
|
+
# TODO: remove when https://github.com/fog/fog-openstack/issues/202 is fixed
|
28
|
+
# spec.add_development_dependency 'coveralls'
|
28
29
|
spec.add_development_dependency "mime-types"
|
29
30
|
spec.add_development_dependency "mime-types-data"
|
30
31
|
spec.add_development_dependency 'rake', '~> 10.0'
|
data/gemfiles/Gemfile-1.9
CHANGED
data/lib/fog/dns/openstack/v2.rb
CHANGED
@@ -18,6 +18,12 @@ module Fog
|
|
18
18
|
:openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id,
|
19
19
|
:openstack_identity_prefix, :openstack_temp_url_key, :openstack_cache_ttl
|
20
20
|
|
21
|
+
model_path 'fog/dns/openstack/v2/models'
|
22
|
+
model :zone
|
23
|
+
collection :zones
|
24
|
+
model :recordset
|
25
|
+
collection :recordsets
|
26
|
+
|
21
27
|
request_path 'fog/dns/openstack/v2/requests'
|
22
28
|
|
23
29
|
request :list_zones
|
@@ -35,6 +41,20 @@ module Fog
|
|
35
41
|
request :get_quota
|
36
42
|
request :update_quota
|
37
43
|
|
44
|
+
def self.setup_headers(options)
|
45
|
+
# user needs to have admin privileges to ask for all projects
|
46
|
+
all_projects = options.delete(:all_projects) || false
|
47
|
+
|
48
|
+
# user needs to have admin privileges to impersonate another project
|
49
|
+
# don't ask for all and one project at the same time
|
50
|
+
project_id = options.delete(:project_id) unless all_projects
|
51
|
+
|
52
|
+
headers = {'X-Auth-All-Projects' => all_projects}
|
53
|
+
headers['X-Auth-Sudo-Project-Id'] = project_id unless project_id.nil?
|
54
|
+
|
55
|
+
[headers, options]
|
56
|
+
end
|
57
|
+
|
38
58
|
class Mock
|
39
59
|
def self.data
|
40
60
|
@data ||= Hash.new do |hash, key|
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'fog/openstack/models/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module DNS
|
5
|
+
class OpenStack
|
6
|
+
class V2
|
7
|
+
class Recordset < Fog::OpenStack::Model
|
8
|
+
identity :id
|
9
|
+
|
10
|
+
attribute :name
|
11
|
+
attribute :project_id
|
12
|
+
attribute :status
|
13
|
+
attribute :action
|
14
|
+
attribute :zone_id
|
15
|
+
attribute :zone_name
|
16
|
+
attribute :type
|
17
|
+
attribute :records
|
18
|
+
attribute :version
|
19
|
+
attribute :created_at
|
20
|
+
attribute :links
|
21
|
+
|
22
|
+
attribute :ttl
|
23
|
+
attribute :description
|
24
|
+
attribute :updated_at
|
25
|
+
|
26
|
+
def save
|
27
|
+
raise Fog::Errors::Error, 'Resaving an existing object may create a duplicate' if persisted?
|
28
|
+
requires :zone_id, :name, :type, :records
|
29
|
+
merge_attributes(service.create_recordset(zone_id, name, type, records, attributes).body)
|
30
|
+
true
|
31
|
+
end
|
32
|
+
|
33
|
+
# overwritten because zone_id is needed for get
|
34
|
+
def reload(options = {})
|
35
|
+
requires :zone_id, :id
|
36
|
+
merge_attributes(collection.get(zone_id, id, options).attributes)
|
37
|
+
self
|
38
|
+
end
|
39
|
+
|
40
|
+
def update(options = nil)
|
41
|
+
requires :zone_id, :id
|
42
|
+
merge_attributes(service.update_recordset(zone_id, id, options || attributes).body)
|
43
|
+
self
|
44
|
+
end
|
45
|
+
|
46
|
+
def destroy(options = {})
|
47
|
+
requires :zone_id, :id
|
48
|
+
service.delete_recordset(zone_id, id, options)
|
49
|
+
true
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'fog/openstack/models/collection'
|
2
|
+
require 'fog/dns/openstack/v2/models/recordset'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module DNS
|
6
|
+
class OpenStack
|
7
|
+
class V2
|
8
|
+
class Recordsets < Fog::OpenStack::Collection
|
9
|
+
model Fog::DNS::OpenStack::V2::Recordset
|
10
|
+
|
11
|
+
def all(options = {})
|
12
|
+
load_response(service.list_recordsets(options), 'recordsets')
|
13
|
+
end
|
14
|
+
|
15
|
+
def find_by_id(zone_id, id, options = {})
|
16
|
+
recordset_hash = service.get_recordset(zone_id, id, options).body
|
17
|
+
new(recordset_hash.merge(:service => service))
|
18
|
+
end
|
19
|
+
|
20
|
+
alias get find_by_id
|
21
|
+
|
22
|
+
def destroy(zone_id, id, options = {})
|
23
|
+
recordset = find_by_id(zone_id, id, options)
|
24
|
+
recordset.destroy
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'fog/openstack/models/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module DNS
|
5
|
+
class OpenStack
|
6
|
+
class V2
|
7
|
+
class Zone < Fog::OpenStack::Model
|
8
|
+
identity :id
|
9
|
+
|
10
|
+
attribute :name
|
11
|
+
attribute :email
|
12
|
+
attribute :pool_id
|
13
|
+
attribute :project_id
|
14
|
+
attribute :serial
|
15
|
+
attribute :status
|
16
|
+
attribute :action
|
17
|
+
attribute :masters
|
18
|
+
attribute :version
|
19
|
+
attribute :links
|
20
|
+
attribute :created_at
|
21
|
+
attribute :transfered_at
|
22
|
+
|
23
|
+
attribute :ttl
|
24
|
+
attribute :description
|
25
|
+
attribute :type
|
26
|
+
attribute :updated_at
|
27
|
+
|
28
|
+
def save
|
29
|
+
raise Fog::Errors::Error, 'Resaving an existing object may create a duplicate' if persisted?
|
30
|
+
requires :name, :email
|
31
|
+
merge_attributes(service.create_zone(name, email, attributes).body)
|
32
|
+
true
|
33
|
+
end
|
34
|
+
|
35
|
+
def update(options = nil)
|
36
|
+
requires :id
|
37
|
+
merge_attributes(service.update_zone(id, options || attributes).body)
|
38
|
+
self
|
39
|
+
end
|
40
|
+
|
41
|
+
def destroy(options = {})
|
42
|
+
requires :id
|
43
|
+
service.delete_zone(id, options)
|
44
|
+
true
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'fog/openstack/models/collection'
|
2
|
+
require 'fog/dns/openstack/v2/models/zone'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module DNS
|
6
|
+
class OpenStack
|
7
|
+
class V2
|
8
|
+
class Zones < Fog::OpenStack::Collection
|
9
|
+
model Fog::DNS::OpenStack::V2::Zone
|
10
|
+
|
11
|
+
def all(options = {})
|
12
|
+
load_response(service.list_zones(options), 'zones')
|
13
|
+
end
|
14
|
+
|
15
|
+
def find_by_id(id, options = {})
|
16
|
+
zone_hash = service.get_zone(id, options).body
|
17
|
+
new(zone_hash.merge(:service => service))
|
18
|
+
end
|
19
|
+
|
20
|
+
alias get find_by_id
|
21
|
+
|
22
|
+
def destroy(id, options = {})
|
23
|
+
zone = find_by_id(id, options)
|
24
|
+
zone.destroy
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -3,17 +3,19 @@ module Fog
|
|
3
3
|
class OpenStack
|
4
4
|
class V2
|
5
5
|
class Real
|
6
|
-
def delete_recordset(zone_id, id)
|
6
|
+
def delete_recordset(zone_id, id, options = {})
|
7
|
+
headers, _options = Fog::DNS::OpenStack::V2.setup_headers(options)
|
7
8
|
request(
|
8
9
|
:expects => 202,
|
9
10
|
:method => 'DELETE',
|
10
|
-
:path => "zones/#{zone_id}/recordsets/#{id}"
|
11
|
+
:path => "zones/#{zone_id}/recordsets/#{id}",
|
12
|
+
:headers => headers
|
11
13
|
)
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
15
17
|
class Mock
|
16
|
-
def delete_recordset(zone_id, id)
|
18
|
+
def delete_recordset(zone_id, id, _options = {})
|
17
19
|
response = Excon::Response.new
|
18
20
|
response.status = 202
|
19
21
|
|
@@ -3,17 +3,19 @@ module Fog
|
|
3
3
|
class OpenStack
|
4
4
|
class V2
|
5
5
|
class Real
|
6
|
-
def delete_zone(id)
|
6
|
+
def delete_zone(id, options = {})
|
7
|
+
headers, _options = Fog::DNS::OpenStack::V2.setup_headers(options)
|
7
8
|
request(
|
8
9
|
:expects => 202,
|
9
10
|
:method => 'DELETE',
|
10
|
-
:path => "zones/#{id}"
|
11
|
+
:path => "zones/#{id}",
|
12
|
+
:headers => headers
|
11
13
|
)
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
15
17
|
class Mock
|
16
|
-
def delete_zone(id)
|
18
|
+
def delete_zone(id, _options = {})
|
17
19
|
response = Excon::Response.new
|
18
20
|
response.status = 202
|
19
21
|
|
@@ -4,11 +4,13 @@ module Fog
|
|
4
4
|
class V2
|
5
5
|
class Real
|
6
6
|
def get_quota(project_id = nil)
|
7
|
+
headers, _options = Fog::DNS::OpenStack::V2.setup_headers(:all_projects => !project_id.nil?)
|
8
|
+
|
7
9
|
request(
|
8
|
-
:headers => {"X-Auth-All-Projects" => !project_id.nil?},
|
9
10
|
:expects => 200,
|
10
11
|
:method => 'GET',
|
11
|
-
:path => "quotas/#{project_id}"
|
12
|
+
:path => "quotas/#{project_id}",
|
13
|
+
:headers => headers
|
12
14
|
)
|
13
15
|
end
|
14
16
|
end
|
@@ -3,11 +3,13 @@ module Fog
|
|
3
3
|
class OpenStack
|
4
4
|
class V2
|
5
5
|
class Real
|
6
|
-
def get_recordset(zone_id, id)
|
6
|
+
def get_recordset(zone_id, id, options = {})
|
7
|
+
headers, _options = Fog::DNS::OpenStack::V2.setup_headers(options)
|
7
8
|
request(
|
8
9
|
:expects => 200,
|
9
10
|
:method => 'GET',
|
10
|
-
:path => "zones/#{zone_id}/recordsets/#{id}"
|
11
|
+
:path => "zones/#{zone_id}/recordsets/#{id}",
|
12
|
+
:headers => headers
|
11
13
|
)
|
12
14
|
end
|
13
15
|
end
|
@@ -3,17 +3,19 @@ module Fog
|
|
3
3
|
class OpenStack
|
4
4
|
class V2
|
5
5
|
class Real
|
6
|
-
def get_zone(id)
|
6
|
+
def get_zone(id, options = {})
|
7
|
+
headers, _options = Fog::DNS::OpenStack::V2.setup_headers(options)
|
7
8
|
request(
|
8
9
|
:expects => 200,
|
9
10
|
:method => 'GET',
|
10
|
-
:path => "zones/#{id}"
|
11
|
+
:path => "zones/#{id}",
|
12
|
+
:headers => headers
|
11
13
|
)
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
15
17
|
class Mock
|
16
|
-
def get_zone(id)
|
18
|
+
def get_zone(id, _options = {})
|
17
19
|
response = Excon::Response.new
|
18
20
|
response.status = 200
|
19
21
|
zone = data[:zone_updated] || data[:zones].first
|
@@ -3,22 +3,46 @@ module Fog
|
|
3
3
|
class OpenStack
|
4
4
|
class V2
|
5
5
|
class Real
|
6
|
-
def list_recordsets(zone_id, options = {})
|
6
|
+
def list_recordsets(zone_id = nil, options = {})
|
7
|
+
# for backward compatability: consider removing the zone_id param (breaking change)
|
8
|
+
unless zone_id.nil?
|
9
|
+
if zone_id.kind_of?(Hash)
|
10
|
+
options = zone_id
|
11
|
+
zone_id = nil
|
12
|
+
else
|
13
|
+
Fog::Logger.deprecation(
|
14
|
+
'Calling list_recordsets(zone_id) is deprecated, use .list_recordsets(zone_id: value) instead'
|
15
|
+
)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
zone_id = options.delete(:zone_id) if zone_id.nil?
|
20
|
+
path = zone_id.nil? ? 'recordsets' : "zones/#{zone_id}/recordsets"
|
21
|
+
|
22
|
+
headers, options = Fog::DNS::OpenStack::V2.setup_headers(options)
|
23
|
+
|
7
24
|
request(
|
8
25
|
:expects => 200,
|
9
26
|
:method => 'GET',
|
10
|
-
:path =>
|
11
|
-
:query => options
|
27
|
+
:path => path,
|
28
|
+
:query => options,
|
29
|
+
:headers => headers
|
12
30
|
)
|
13
31
|
end
|
14
32
|
end
|
15
33
|
|
16
34
|
class Mock
|
17
|
-
def list_recordsets(zone_id,
|
35
|
+
def list_recordsets(zone_id = nil, options = {})
|
36
|
+
if zone_id.kind_of?(Hash)
|
37
|
+
options = zone_id
|
38
|
+
zone_id = nil
|
39
|
+
end
|
40
|
+
zone_id = options.delete(:zone_id) if zone_id.nil?
|
41
|
+
|
18
42
|
response = Excon::Response.new
|
19
43
|
response.status = 200
|
20
44
|
data[:recordsets]["recordsets"].each do |rs|
|
21
|
-
rs["zone_id"] = zone_id
|
45
|
+
rs["zone_id"] = zone_id unless zone_id.nil?
|
22
46
|
end
|
23
47
|
response.body = data[:recordsets]
|
24
48
|
response
|