fog-brightbox 0.1.1 → 0.2.0
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/CHANGELOG.md +11 -0
- data/lib/fog/brightbox/compute.rb +10 -0
- data/lib/fog/brightbox/compute/resource_locking.rb +27 -0
- data/lib/fog/brightbox/models/compute/database_server.rb +3 -0
- data/lib/fog/brightbox/models/compute/database_snapshot.rb +3 -0
- data/lib/fog/brightbox/models/compute/image.rb +3 -0
- data/lib/fog/brightbox/models/compute/load_balancer.rb +2 -0
- data/lib/fog/brightbox/models/compute/server.rb +2 -2
- data/lib/fog/brightbox/requests/compute/lock_resource_database_server.rb +19 -0
- data/lib/fog/brightbox/requests/compute/lock_resource_database_snapshot.rb +19 -0
- data/lib/fog/brightbox/requests/compute/lock_resource_image.rb +19 -0
- data/lib/fog/brightbox/requests/compute/lock_resource_load_balancer.rb +19 -0
- data/lib/fog/brightbox/requests/compute/lock_resource_server.rb +19 -0
- data/lib/fog/brightbox/requests/compute/unlock_resource_database_server.rb +19 -0
- data/lib/fog/brightbox/requests/compute/unlock_resource_database_snapshot.rb +19 -0
- data/lib/fog/brightbox/requests/compute/unlock_resource_image.rb +19 -0
- data/lib/fog/brightbox/requests/compute/unlock_resource_load_balancer.rb +19 -0
- data/lib/fog/brightbox/requests/compute/unlock_resource_server.rb +19 -0
- data/lib/fog/brightbox/version.rb +1 -1
- data/spec/fog/compute/brightbox/database_server_spec.rb +1 -0
- data/spec/fog/compute/brightbox/database_snapshot_spec.rb +1 -0
- data/spec/fog/compute/brightbox/image_spec.rb +1 -0
- data/spec/fog/compute/brightbox/load_balancer_spec.rb +1 -0
- data/spec/fog/compute/brightbox/server_spec.rb +1 -0
- data/spec/model_setup.rb +22 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/supports_resource_locking.rb +41 -0
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ba0fd5a2af49de6bfd1c985302496ca96f0368c
|
4
|
+
data.tar.gz: 59f4dec412be2a7f9bd2f77585e4c045f62741a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6df22c1e489650cbf363a0c12f1a382235293108dc145ca089fb996d1720fed5a0e0de11e0120374102d75c4980541db203f681169f8af40ec0aa0729250017a
|
7
|
+
data.tar.gz: 8c186b06909f62c6d395a4ce85bfaa190ece428d761859dee413bc1b883ae4145282e15bb114d330bdadbad57ef495d30dde860d68c98b520b0915af371c929b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
### 0.2.0 / 2014-08-07
|
2
|
+
|
3
|
+
Enhancements:
|
4
|
+
|
5
|
+
* Add resource locks to prevent accidental deleting of the following resources:
|
6
|
+
* Database servers
|
7
|
+
* Database snapshots
|
8
|
+
* Images
|
9
|
+
* Load balancers
|
10
|
+
* Servers
|
11
|
+
|
1
12
|
### 0.1.1 / 2014-06-26
|
2
13
|
|
3
14
|
Bug fixes:
|
@@ -137,6 +137,11 @@ module Fog
|
|
137
137
|
request :list_users
|
138
138
|
request :list_user_collaborations
|
139
139
|
request :list_zones
|
140
|
+
request :lock_resource_database_server
|
141
|
+
request :lock_resource_database_snapshot
|
142
|
+
request :lock_resource_image
|
143
|
+
request :lock_resource_load_balancer
|
144
|
+
request :lock_resource_server
|
140
145
|
request :map_cloud_ip
|
141
146
|
request :move_servers_server_group
|
142
147
|
request :reject_user_collaboration
|
@@ -156,6 +161,11 @@ module Fog
|
|
156
161
|
request :snapshot_server
|
157
162
|
request :start_server
|
158
163
|
request :stop_server
|
164
|
+
request :unlock_resource_database_server
|
165
|
+
request :unlock_resource_database_snapshot
|
166
|
+
request :unlock_resource_image
|
167
|
+
request :unlock_resource_load_balancer
|
168
|
+
request :unlock_resource_server
|
159
169
|
request :unmap_cloud_ip
|
160
170
|
request :update_account
|
161
171
|
request :update_api_client
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module ResourceLocking
|
2
|
+
def locked?
|
3
|
+
if attributes.key?("locked") || attributes.key?(:locked)
|
4
|
+
attributes["locked"] || attributes[:locked] || false
|
5
|
+
else
|
6
|
+
false
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def lock!
|
11
|
+
locking_request(:lock)
|
12
|
+
end
|
13
|
+
|
14
|
+
def unlock!
|
15
|
+
locking_request(:unlock)
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def locking_request(lock_setting)
|
21
|
+
requires :identity
|
22
|
+
|
23
|
+
data = service.send(:"#{lock_setting}_resource_#{resource_name}", identity)
|
24
|
+
merge_attributes(data)
|
25
|
+
true
|
26
|
+
end
|
27
|
+
end
|
@@ -1,9 +1,12 @@
|
|
1
1
|
require "fog/brightbox/model"
|
2
|
+
require "fog/brightbox/compute/resource_locking"
|
2
3
|
|
3
4
|
module Fog
|
4
5
|
module Compute
|
5
6
|
class Brightbox
|
6
7
|
class DatabaseServer < Fog::Brightbox::Model
|
8
|
+
include ResourceLocking
|
9
|
+
|
7
10
|
identity :id
|
8
11
|
attribute :url
|
9
12
|
attribute :resource_type
|
@@ -1,9 +1,12 @@
|
|
1
1
|
require "fog/brightbox/model"
|
2
|
+
require "fog/brightbox/compute/resource_locking"
|
2
3
|
|
3
4
|
module Fog
|
4
5
|
module Compute
|
5
6
|
class Brightbox
|
6
7
|
class DatabaseSnapshot < Fog::Brightbox::Model
|
8
|
+
include ResourceLocking
|
9
|
+
|
7
10
|
identity :id
|
8
11
|
attribute :url
|
9
12
|
attribute :resource_type
|
@@ -1,9 +1,12 @@
|
|
1
1
|
require "fog/brightbox/model"
|
2
|
+
require "fog/brightbox/compute/resource_locking"
|
2
3
|
|
3
4
|
module Fog
|
4
5
|
module Compute
|
5
6
|
class Brightbox
|
6
7
|
class Image < Fog::Brightbox::Model
|
8
|
+
include ResourceLocking
|
9
|
+
|
7
10
|
identity :id
|
8
11
|
attribute :url
|
9
12
|
attribute :resource_type
|
@@ -1,11 +1,12 @@
|
|
1
1
|
require "fog/compute/models/server"
|
2
|
-
require "fog/brightbox/
|
2
|
+
require "fog/brightbox/compute/resource_locking"
|
3
3
|
|
4
4
|
module Fog
|
5
5
|
module Compute
|
6
6
|
class Brightbox
|
7
7
|
class Server < Fog::Compute::Server
|
8
8
|
include Fog::Brightbox::ModelHelper
|
9
|
+
include ResourceLocking
|
9
10
|
|
10
11
|
identity :id
|
11
12
|
attribute :resource_type
|
@@ -212,7 +213,6 @@ module Fog
|
|
212
213
|
end
|
213
214
|
end
|
214
215
|
end
|
215
|
-
|
216
216
|
end
|
217
217
|
end
|
218
218
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class Brightbox
|
4
|
+
class Real
|
5
|
+
# @param [String] identifier Unique reference to identify the resource
|
6
|
+
#
|
7
|
+
# @return [Hash] if successful Hash version of JSON object
|
8
|
+
#
|
9
|
+
# @see https://api.gb1.brightbox.com/1.0/#database_server_lock_resource_database_server
|
10
|
+
#
|
11
|
+
def lock_resource_database_server(identifier)
|
12
|
+
return nil if identifier.nil? || identifier == ""
|
13
|
+
wrapped_request("put", "/1.0/database_servers/#{identifier}/lock_resource", [200])
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class Brightbox
|
4
|
+
class Real
|
5
|
+
# @param [String] identifier Unique reference to identify the resource
|
6
|
+
#
|
7
|
+
# @return [Hash] if successful Hash version of JSON object
|
8
|
+
#
|
9
|
+
# @see https://api.gb1.brightbox.com/1.0/#database_snapshot_lock_resource_database_snapshot
|
10
|
+
#
|
11
|
+
def lock_resource_database_snapshot(identifier)
|
12
|
+
return nil if identifier.nil? || identifier == ""
|
13
|
+
wrapped_request("put", "/1.0/database_snapshots/#{identifier}/lock_resource", [200])
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class Brightbox
|
4
|
+
class Real
|
5
|
+
# @param [String] identifier Unique reference to identify the resource
|
6
|
+
#
|
7
|
+
# @return [Hash] if successful Hash version of JSON object
|
8
|
+
#
|
9
|
+
# @see https://api.gb1.brightbox.com/1.0/#image_lock_resource_image
|
10
|
+
#
|
11
|
+
def lock_resource_image(identifier)
|
12
|
+
return nil if identifier.nil? || identifier == ""
|
13
|
+
wrapped_request("put", "/1.0/images/#{identifier}/lock_resource", [200])
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class Brightbox
|
4
|
+
class Real
|
5
|
+
# @param [String] identifier Unique reference to identify the resource
|
6
|
+
#
|
7
|
+
# @return [Hash] if successful Hash version of JSON object
|
8
|
+
#
|
9
|
+
# @see https://api.gb1.brightbox.com/1.0/#load_balancer_lock_resource_load_balancer
|
10
|
+
#
|
11
|
+
def lock_resource_load_balancer(identifier)
|
12
|
+
return nil if identifier.nil? || identifier == ""
|
13
|
+
wrapped_request("put", "/1.0/load_balancers/#{identifier}/lock_resource", [200])
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class Brightbox
|
4
|
+
class Real
|
5
|
+
# @param [String] identifier Unique reference to identify the resource
|
6
|
+
#
|
7
|
+
# @return [Hash] if successful Hash version of JSON object
|
8
|
+
#
|
9
|
+
# @see https://api.gb1.brightbox.com/1.0/#server_lock_resource_server
|
10
|
+
#
|
11
|
+
def lock_resource_server(identifier)
|
12
|
+
return nil if identifier.nil? || identifier == ""
|
13
|
+
wrapped_request("put", "/1.0/servers/#{identifier}/lock_resource", [200])
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class Brightbox
|
4
|
+
class Real
|
5
|
+
# @param [String] identifier Unique reference to identify the resource
|
6
|
+
#
|
7
|
+
# @return [Hash] if successful Hash version of JSON object
|
8
|
+
#
|
9
|
+
# @see https://api.gb1.brightbox.com/1.0/#database_server_unlock_resource_database_server
|
10
|
+
#
|
11
|
+
def unlock_resource_database_server(identifier)
|
12
|
+
return nil if identifier.nil? || identifier == ""
|
13
|
+
wrapped_request("put", "/1.0/database_servers/#{identifier}/unlock_resource", [200])
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class Brightbox
|
4
|
+
class Real
|
5
|
+
# @param [String] identifier Unique reference to identify the resource
|
6
|
+
#
|
7
|
+
# @return [Hash] if successful Hash version of JSON object
|
8
|
+
#
|
9
|
+
# @see https://api.gb1.brightbox.com/1.0/#database_snapshot_unlock_resource_database_snapshot
|
10
|
+
#
|
11
|
+
def unlock_resource_database_snapshot(identifier)
|
12
|
+
return nil if identifier.nil? || identifier == ""
|
13
|
+
wrapped_request("put", "/1.0/database_snapshots/#{identifier}/unlock_resource", [200])
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class Brightbox
|
4
|
+
class Real
|
5
|
+
# @param [String] identifier Unique reference to identify the resource
|
6
|
+
#
|
7
|
+
# @return [Hash] if successful Hash version of JSON object
|
8
|
+
#
|
9
|
+
# @see https://api.gb1.brightbox.com/1.0/#image_unlock_resource_image
|
10
|
+
#
|
11
|
+
def unlock_resource_image(identifier)
|
12
|
+
return nil if identifier.nil? || identifier == ""
|
13
|
+
wrapped_request("put", "/1.0/images/#{identifier}/unlock_resource", [200])
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class Brightbox
|
4
|
+
class Real
|
5
|
+
# @param [String] identifier Unique reference to identify the resource
|
6
|
+
#
|
7
|
+
# @return [Hash] if successful Hash version of JSON object
|
8
|
+
#
|
9
|
+
# @see https://api.gb1.brightbox.com/1.0/#load_balancer_unlock_resource_load_balancer
|
10
|
+
#
|
11
|
+
def unlock_resource_load_balancer(identifier)
|
12
|
+
return nil if identifier.nil? || identifier == ""
|
13
|
+
wrapped_request("put", "/1.0/load_balancers/#{identifier}/unlock_resource", [200])
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class Brightbox
|
4
|
+
class Real
|
5
|
+
# @param [String] identifier Unique reference to identify the resource
|
6
|
+
#
|
7
|
+
# @return [Hash] if successful Hash version of JSON object
|
8
|
+
#
|
9
|
+
# @see https://api.gb1.brightbox.com/1.0/#server_unlock_resource_server
|
10
|
+
#
|
11
|
+
def unlock_resource_server(identifier)
|
12
|
+
return nil if identifier.nil? || identifier == ""
|
13
|
+
wrapped_request("put", "/1.0/servers/#{identifier}/unlock_resource", [200])
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/spec/model_setup.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
module ModelSetup
|
2
|
+
def self.included(base)
|
3
|
+
base.class_eval do
|
4
|
+
let(:configuration) do
|
5
|
+
{
|
6
|
+
:brightbox_auth_url => "http://localhost",
|
7
|
+
:brightbox_api_url => "http://localhost",
|
8
|
+
:brightbox_client_id => "",
|
9
|
+
:brightbox_secret => "",
|
10
|
+
:brightbox_username => "",
|
11
|
+
:brightbox_password => "",
|
12
|
+
:brightbox_account => "",
|
13
|
+
:brightbox_default_image => "img-test",
|
14
|
+
:brightbox_access_token => "FAKECACHEDTOKEN"
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
|
+
let(:config) { Fog::Brightbox::Config.new(configuration) }
|
19
|
+
let(:service) { Fog::Compute::Brightbox.new(config) }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -0,0 +1,41 @@
|
|
1
|
+
require "webmock/minitest"
|
2
|
+
|
3
|
+
module SupportsResourceLocking
|
4
|
+
def self.included(base)
|
5
|
+
base.class_eval do
|
6
|
+
let(:collection_name) { subject.collection_name }
|
7
|
+
|
8
|
+
def test_responds_to_locked
|
9
|
+
assert_respond_to subject, :locked?
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_responds_to_lock
|
13
|
+
assert_respond_to subject, :lock!
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_lock_makes_request
|
17
|
+
skip if RUBY_VERSION < "1.9"
|
18
|
+
|
19
|
+
subject.id = "tst-12345"
|
20
|
+
|
21
|
+
stub_request(:put, "http://localhost/1.0/#{collection_name}/tst-12345/lock_resource?account_id=").to_return(:status => 200, :body => "{}", :headers => {})
|
22
|
+
|
23
|
+
subject.lock!
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_responds_to_unlock
|
27
|
+
assert_respond_to subject, :unlock!
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_unlock_makes_request
|
31
|
+
skip if RUBY_VERSION < "1.9"
|
32
|
+
|
33
|
+
subject.id = "tst-12345"
|
34
|
+
|
35
|
+
stub_request(:put, "http://localhost/1.0/#{collection_name}/tst-12345/unlock_resource?account_id=").to_return(:status => 200, :body => "{}", :headers => {})
|
36
|
+
|
37
|
+
subject.unlock!
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fog-brightbox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Thornthwaite
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fog-core
|
@@ -142,6 +142,7 @@ files:
|
|
142
142
|
- lib/fog/brightbox/compute.rb
|
143
143
|
- lib/fog/brightbox/compute/config.rb
|
144
144
|
- lib/fog/brightbox/compute/image_selector.rb
|
145
|
+
- lib/fog/brightbox/compute/resource_locking.rb
|
145
146
|
- lib/fog/brightbox/compute/shared.rb
|
146
147
|
- lib/fog/brightbox/config.rb
|
147
148
|
- lib/fog/brightbox/core.rb
|
@@ -255,6 +256,11 @@ files:
|
|
255
256
|
- lib/fog/brightbox/requests/compute/list_user_collaborations.rb
|
256
257
|
- lib/fog/brightbox/requests/compute/list_users.rb
|
257
258
|
- lib/fog/brightbox/requests/compute/list_zones.rb
|
259
|
+
- lib/fog/brightbox/requests/compute/lock_resource_database_server.rb
|
260
|
+
- lib/fog/brightbox/requests/compute/lock_resource_database_snapshot.rb
|
261
|
+
- lib/fog/brightbox/requests/compute/lock_resource_image.rb
|
262
|
+
- lib/fog/brightbox/requests/compute/lock_resource_load_balancer.rb
|
263
|
+
- lib/fog/brightbox/requests/compute/lock_resource_server.rb
|
258
264
|
- lib/fog/brightbox/requests/compute/map_cloud_ip.rb
|
259
265
|
- lib/fog/brightbox/requests/compute/move_servers_server_group.rb
|
260
266
|
- lib/fog/brightbox/requests/compute/reject_user_collaboration.rb
|
@@ -273,6 +279,11 @@ files:
|
|
273
279
|
- lib/fog/brightbox/requests/compute/snapshot_server.rb
|
274
280
|
- lib/fog/brightbox/requests/compute/start_server.rb
|
275
281
|
- lib/fog/brightbox/requests/compute/stop_server.rb
|
282
|
+
- lib/fog/brightbox/requests/compute/unlock_resource_database_server.rb
|
283
|
+
- lib/fog/brightbox/requests/compute/unlock_resource_database_snapshot.rb
|
284
|
+
- lib/fog/brightbox/requests/compute/unlock_resource_image.rb
|
285
|
+
- lib/fog/brightbox/requests/compute/unlock_resource_load_balancer.rb
|
286
|
+
- lib/fog/brightbox/requests/compute/unlock_resource_server.rb
|
276
287
|
- lib/fog/brightbox/requests/compute/unmap_cloud_ip.rb
|
277
288
|
- lib/fog/brightbox/requests/compute/update_account.rb
|
278
289
|
- lib/fog/brightbox/requests/compute/update_api_client.rb
|
@@ -311,7 +322,9 @@ files:
|
|
311
322
|
- spec/fog/compute/brightbox/zone_spec.rb
|
312
323
|
- spec/fog/compute/brightbox_spec.rb
|
313
324
|
- spec/model_helper.rb
|
325
|
+
- spec/model_setup.rb
|
314
326
|
- spec/spec_helper.rb
|
327
|
+
- spec/supports_resource_locking.rb
|
315
328
|
homepage: ''
|
316
329
|
licenses:
|
317
330
|
- MIT
|
@@ -360,4 +373,7 @@ test_files:
|
|
360
373
|
- spec/fog/compute/brightbox/zone_spec.rb
|
361
374
|
- spec/fog/compute/brightbox_spec.rb
|
362
375
|
- spec/model_helper.rb
|
376
|
+
- spec/model_setup.rb
|
363
377
|
- spec/spec_helper.rb
|
378
|
+
- spec/supports_resource_locking.rb
|
379
|
+
has_rdoc:
|