fog-brightbox 1.6.0 → 1.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/lib/fog/brightbox/compute.rb +7 -0
  4. data/lib/fog/brightbox/models/compute/account.rb +30 -18
  5. data/lib/fog/brightbox/models/compute/api_client.rb +10 -2
  6. data/lib/fog/brightbox/models/compute/application.rb +8 -0
  7. data/lib/fog/brightbox/models/compute/cloud_ip.rb +11 -11
  8. data/lib/fog/brightbox/models/compute/collaboration.rb +11 -0
  9. data/lib/fog/brightbox/models/compute/config_map.rb +14 -0
  10. data/lib/fog/brightbox/models/compute/config_maps.rb +22 -0
  11. data/lib/fog/brightbox/models/compute/database_server.rb +19 -15
  12. data/lib/fog/brightbox/models/compute/database_snapshot.rb +13 -6
  13. data/lib/fog/brightbox/models/compute/database_type.rb +6 -3
  14. data/lib/fog/brightbox/models/compute/event.rb +5 -4
  15. data/lib/fog/brightbox/models/compute/firewall_policy.rb +10 -4
  16. data/lib/fog/brightbox/models/compute/firewall_rule.rb +9 -6
  17. data/lib/fog/brightbox/models/compute/flavor.rb +3 -3
  18. data/lib/fog/brightbox/models/compute/image.rb +16 -14
  19. data/lib/fog/brightbox/models/compute/load_balancer.rb +12 -8
  20. data/lib/fog/brightbox/models/compute/server.rb +19 -17
  21. data/lib/fog/brightbox/models/compute/server_group.rb +13 -5
  22. data/lib/fog/brightbox/models/compute/user.rb +9 -4
  23. data/lib/fog/brightbox/models/compute/user_collaboration.rb +11 -0
  24. data/lib/fog/brightbox/models/compute/volume.rb +15 -14
  25. data/lib/fog/brightbox/models/compute/zone.rb +3 -4
  26. data/lib/fog/brightbox/models/storage/directory.rb +2 -2
  27. data/lib/fog/brightbox/requests/compute/create_config_map.rb +22 -0
  28. data/lib/fog/brightbox/requests/compute/delete_config_map.rb +20 -0
  29. data/lib/fog/brightbox/requests/compute/get_config_map.rb +18 -0
  30. data/lib/fog/brightbox/requests/compute/list_config_maps.rb +18 -0
  31. data/lib/fog/brightbox/requests/compute/update_config_map.rb +22 -0
  32. data/lib/fog/brightbox/storage.rb +2 -1
  33. data/lib/fog/brightbox/version.rb +1 -1
  34. metadata +8 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4ed1e1f608af748e905cfeafeb9f1a72674074f11720c854988e324de9e1fa84
4
- data.tar.gz: c078791baaf84d13fb09c1f0d8ff17b9c1116f247cfb8c73647b529b97ce3bea
3
+ metadata.gz: f51c2ad35b105ddc3a6506eba7efc70aeebc19836871abed4b4094495d81b7b5
4
+ data.tar.gz: c07306a38945cbf30b87fe108a136015c1f25042edc33dd641e21f2fae9c2bd5
5
5
  SHA512:
6
- metadata.gz: fbfd902483fc3bb101255c4915d8fec6e54c5edf2995f6aa1b0eebe510e210a0b6173b109aa19811fee8fabc1c5f05c294d36b49fbcc9b15056bedf22e1ebac2
7
- data.tar.gz: e3b208fa57e74eca736fa8d53683cbfa78645a6aa75a15b680f59365bbd26538cbb373828f92ba4d6de7a79a867e2377500179c9ef18171c35748dd3fa759e17
6
+ metadata.gz: 8c418bab634f034c05ee7ca8f53d309e5f6683182d47be8f9a9cb8513904a2545a35a0bc466babcb8ab054cef2c6692dec8af7c0e9d3fb16f9aeceab102305de
7
+ data.tar.gz: 2b22777c14423713ca9c8ce454bfc2b524b7409986b6a8d1d008dd51dbb7f83587a1835e6204360785e7aca104fd569bbd21c199333116bf98a2637b575f4ea8
data/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ ### 1.7.2 / 2022-08-17
2
+
3
+ * Fix in `Storage.escape` regexp which failed to handle dashes correctly and broke generated URLs.
4
+
5
+ ### 1.7.1 / 2022-08-17
6
+
7
+ Bug fixes:
8
+
9
+ * Implement `Storage::Directory#public_url` to allow generation of `File` public URLs correctly.
10
+
11
+ ### 1.7.0 / 2022-07-28
12
+
13
+ Changes:
14
+
15
+ * Adds support for `ConfigMaps` which are simple key/value stores for configuring
16
+ other resources.
17
+ * Updated the API models to include the latest set of attributes defined in the
18
+ Brightbox API enabling them to be referenced.
19
+
1
20
  ### 1.6.0 / 2022-07-25
2
21
 
3
22
  Changes:
@@ -37,6 +37,8 @@ module Fog
37
37
  model :api_client
38
38
  collection :collaborations
39
39
  model :collaboration
40
+ collection :config_maps
41
+ model :config_map
40
42
  collection :servers
41
43
  model :server
42
44
  collection :server_groups
@@ -85,6 +87,7 @@ module Fog
85
87
  request :create_application
86
88
  request :create_cloud_ip
87
89
  request :create_collaboration
90
+ request :create_config_map
88
91
  request :create_firewall_policy
89
92
  request :create_firewall_rule
90
93
  request :create_image
@@ -97,6 +100,7 @@ module Fog
97
100
  request :delete_application
98
101
  request :delete_cloud_ip
99
102
  request :delete_collaboration
103
+ request :delete_config_map
100
104
  request :delete_firewall_policy
101
105
  request :delete_firewall_rule
102
106
  request :delete_image
@@ -114,6 +118,7 @@ module Fog
114
118
  request :get_authenticated_user
115
119
  request :get_cloud_ip
116
120
  request :get_collaboration
121
+ request :get_config_map
117
122
  request :get_firewall_policy
118
123
  request :get_firewall_rule
119
124
  request :get_image
@@ -135,6 +140,7 @@ module Fog
135
140
  request :list_applications
136
141
  request :list_cloud_ips
137
142
  request :list_collaborations
143
+ request :list_config_maps
138
144
  request :list_events
139
145
  request :list_firewall_policies
140
146
  request :list_images
@@ -188,6 +194,7 @@ module Fog
188
194
  request :update_api_client
189
195
  request :update_application
190
196
  request :update_cloud_ip
197
+ request :update_config_map
191
198
  request :update_firewall_policy
192
199
  request :update_firewall_rule
193
200
  request :update_image
@@ -3,8 +3,8 @@ module Fog
3
3
  class Compute
4
4
  class Account < Fog::Brightbox::Model
5
5
  identity :id
6
- attribute :url
7
6
  attribute :resource_type
7
+ attribute :url
8
8
 
9
9
  attribute :name
10
10
  attribute :status
@@ -20,35 +20,47 @@ module Fog
20
20
  attribute :telephone_number
21
21
  attribute :verified_telephone
22
22
  attribute :verified_ip
23
- attribute :servers_used
24
- attribute :ram_limit
25
- attribute :ram_used
26
- attribute :cloud_ips_limit
27
- attribute :cloud_ips_used
28
- attribute :load_balancers_limit
29
- attribute :load_balancers_used
30
- attribute :dbs_servers_used
31
- attribute :dbs_ram_limit
32
- attribute :dbs_ram_used
23
+
24
+ # Account limits (read-only)
25
+ attribute :block_storage_limit, type: :integer
26
+ attribute :block_storage_used, type: :integer
27
+ attribute :cloud_ips_limit, type: :integer
28
+ attribute :cloud_ips_used, type: :integer
29
+ attribute :dbs_instances_used, type: :integer
30
+ attribute :dbs_ram_limit, type: :integer
31
+ attribute :dbs_ram_used, type: :integer
32
+ attribute :load_balancers_limit, type: :integer
33
+ attribute :load_balancers_used, type: :integer
34
+ attribute :ram_limit, type: :integer
35
+ attribute :ram_used, type: :integer
36
+ attribute :servers_used, type: :integer
37
+
33
38
  attribute :library_ftp_host
34
39
  attribute :library_ftp_user
35
40
  # This is always returned as nil unless after a call to reset_ftp_password
36
41
  attribute :library_ftp_password
37
42
 
38
43
  # Boolean flags
39
- attribute :valid_credit_card
40
- attribute :telephone_verified
44
+ attribute :valid_credit_card, type: :boolean
45
+ attribute :telephone_verified, type: :boolean
41
46
 
42
- # Times
43
- attribute :created_at, :type => :time
44
- attribute :verified_at, :type => :time
47
+ # Timestamps
48
+ attribute :created_at, type: :time
49
+ attribute :verified_at, type: :time
45
50
 
46
- # Links - to be replaced
47
- attribute :owner_id, :aliases => "owner", :squash => "id"
51
+ # Links
52
+ attribute :owner_id, aliases: "owner", squash: "id"
48
53
  attribute :clients
54
+ attribute :cloud_ips
55
+ attribute :database_servers
56
+ attribute :database_snapshots
57
+ attribute :firewall_policies
49
58
  attribute :images
59
+ attribute :load_balancers
60
+ attribute :server_groups
50
61
  attribute :servers
51
62
  attribute :users
63
+ attribute :volumes
52
64
  attribute :zones
53
65
 
54
66
  # Resets the account's image library FTP password returning the new value
@@ -3,12 +3,20 @@ module Fog
3
3
  class Compute
4
4
  class ApiClient < Fog::Brightbox::Model
5
5
  identity :id
6
+ attribute :resource_type
7
+ attribute :url
8
+
6
9
  attribute :name
7
10
  attribute :description
11
+
8
12
  attribute :secret
9
- attribute :revoked_at, :type => :time
10
13
  attribute :permissions_group
11
- attribute :account_id
14
+
15
+ # Timestamps
16
+ attribute :revoked_at, type: :time
17
+
18
+ # Links
19
+ attribute :account_id, aliases: "account", squash: "id"
12
20
 
13
21
  def save
14
22
  raise Fog::Errors::Error.new("Resaving an existing object may create a duplicate") if persisted?
@@ -3,10 +3,18 @@ module Fog
3
3
  class Compute
4
4
  class Application < Fog::Brightbox::Model
5
5
  identity :id
6
+ attribute :resource_type
6
7
  attribute :url
8
+
7
9
  attribute :name
10
+ attribute :description
8
11
  attribute :secret
9
12
 
13
+ # Timestamps
14
+ attribute :created_at, type: :time
15
+ attribute :updated_at, type: :time
16
+ attribute :revoked_at, type: :time
17
+
10
18
  def save
11
19
  raise Fog::Errors::Error.new("Resaving an existing object may create a duplicate") if persisted?
12
20
  options = {
@@ -3,28 +3,28 @@ module Fog
3
3
  class Compute
4
4
  class CloudIp < Fog::Brightbox::Model
5
5
  identity :id
6
- attribute :url
7
6
  attribute :resource_type
7
+ attribute :url
8
8
 
9
9
  attribute :name
10
10
  attribute :status
11
11
  attribute :description
12
12
 
13
- attribute :reverse_dns
13
+ attribute :fqdn
14
+ attribute :mode
14
15
  attribute :public_ip
15
16
  attribute :public_ipv4
16
17
  attribute :public_ipv6
17
- attribute :fqdn
18
+ attribute :reverse_dns
18
19
 
19
- # Links - to be replaced
20
- attribute :account_id, :aliases => "account", :squash => "id"
21
- attribute :interface_id, :aliases => "interface", :squash => "id"
22
- attribute :server_id, :aliases => "server", :squash => "id"
23
- attribute :load_balancer, :alias => "load_balancer", :squash => "id"
24
- attribute :server_group, :alias => "server_group", :squash => "id"
25
- attribute :database_server, :alias => "database_server", :squash => "id"
20
+ # Links
21
+ attribute :account_id, aliases: "account", squash: "id"
22
+ attribute :interface_id, aliases: "interface", squash: "id"
23
+ attribute :server_id, aliases: "server", squash: "id"
24
+ attribute :load_balancer, :alias => "load_balancer", squash: "id"
25
+ attribute :server_group, :alias => "server_group", squash: "id"
26
+ attribute :database_server, :alias => "database_server", squash: "id"
26
27
  attribute :port_translators
27
- attribute :name
28
28
 
29
29
  # Attempt to map or point the Cloud IP to the destination resource.
30
30
  #
@@ -3,10 +3,21 @@ module Fog
3
3
  class Compute
4
4
  class Collaboration < Fog::Brightbox::Model
5
5
  identity :id
6
+ attribute :resource_type
7
+ attribute :url
8
+
6
9
  attribute :status
10
+
7
11
  attribute :email
8
12
  attribute :role
9
13
  attribute :role_label
14
+
15
+ # Timestamps
16
+ attribute :created_at, type: :time
17
+ attribute :started_at, type: :time
18
+ attribute :finished_at, type: :time
19
+
20
+ # Links
10
21
  attribute :account
11
22
  attribute :user
12
23
  attribute :inviter
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Brightbox
3
+ class Compute
4
+ class ConfigMap < Fog::Brightbox::Model
5
+ identity :id
6
+ attribute :resource_type
7
+ attribute :url
8
+
9
+ attribute :name
10
+ attribute :data
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,22 @@
1
+ module Fog
2
+ module Brightbox
3
+ class Compute
4
+ class ConfigMaps < Fog::Collection
5
+ model Fog::Brightbox::Compute::ConfigMap
6
+
7
+ def all
8
+ data = service.list_config_maps
9
+ load(data)
10
+ end
11
+
12
+ def get(identifier)
13
+ return nil if identifier.nil? || identifier == ""
14
+ data = service.get_config_map(identifier)
15
+ new(data)
16
+ rescue Excon::Errors::NotFound
17
+ nil
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -5,39 +5,43 @@ module Fog
5
5
  include Fog::Brightbox::Compute::ResourceLocking
6
6
 
7
7
  identity :id
8
- attribute :url
9
8
  attribute :resource_type
9
+ attribute :url
10
10
 
11
11
  attribute :name
12
12
  attribute :description
13
- attribute :state, :aliases => "status"
13
+ attribute :state, aliases: "status"
14
14
 
15
15
  attribute :admin_username
16
16
  attribute :admin_password
17
-
17
+ attribute :allow_access
18
18
  attribute :database_engine
19
19
  attribute :database_version
20
+ attribute :maintenance_hour #, type: :integer
21
+ attribute :maintenance_weekday #, type: :integer
22
+ attribute :source
20
23
 
21
- attribute :maintenance_weekday
22
- attribute :maintenance_hour
24
+ attribute :snapshots_retention, type: :string
23
25
 
24
26
  # This is a crontab formatted string e.g. "* 5 * * 0"
25
- attribute :snapshots_schedule, :type => :string
26
- attribute :snapshots_schedule_next_at, :type => :time
27
+ attribute :snapshots_schedule, type: :string
28
+ attribute :snapshots_schedule_next_at, type: :time
27
29
 
28
- attribute :created_at, :type => :time
29
- attribute :updated_at, :type => :time
30
- attribute :deleted_at, :type => :time
30
+ # Timestamps
31
+ attribute :created_at, type: :time
32
+ attribute :updated_at, type: :time
33
+ attribute :deleted_at, type: :time
31
34
 
32
- attribute :allow_access
35
+ # Links
36
+ attribute :flavor_id, alias: "database_server_type", squash: "id"
37
+ attribute :zone_id, alias: "zone", squash: "id"
33
38
 
34
- attribute :flavor_id, "alias" => "database_server_type", :squash => "id"
35
- attribute :zone_id, "alias" => "zone", :squash => "id"
39
+ attribute :account
40
+ attribute :cloud_ips
36
41
 
42
+ # Generated from snapshot action and not a real attribute
37
43
  attribute :snapshot_id
38
44
 
39
- attribute :cloud_ips
40
-
41
45
  def save
42
46
  options = {
43
47
  :name => name,
@@ -7,21 +7,28 @@ module Fog
7
7
  include Fog::Brightbox::Compute::ResourceLocking
8
8
 
9
9
  identity :id
10
- attribute :url
11
10
  attribute :resource_type
11
+ attribute :url
12
12
 
13
13
  attribute :name
14
14
  attribute :description
15
- attribute :state, :aliases => "status"
15
+ attribute :state, aliases: "status"
16
16
 
17
17
  attribute :database_engine
18
18
  attribute :database_version
19
19
 
20
- attribute :size
20
+ attribute :size, type: :integer
21
+ attribute :source
22
+ attribute :source_trigger
23
+
24
+ # Timestamps
25
+ attribute :created_at, type: :time
26
+ attribute :updated_at, type: :time
27
+ attribute :deleted_at, type: :time
21
28
 
22
- attribute :created_at, :type => :time
23
- attribute :updated_at, :type => :time
24
- attribute :deleted_at, :type => :time
29
+ # Links
30
+ attribute :account
31
+ attribute :account_id, aliases: "account", squash: "id"
25
32
 
26
33
  def save
27
34
  options = {
@@ -3,14 +3,17 @@ module Fog
3
3
  class Compute
4
4
  class DatabaseType < Fog::Brightbox::Model
5
5
  identity :id
6
- attribute :url
7
6
  attribute :resource_type
7
+ attribute :url
8
8
 
9
9
  attribute :name
10
10
  attribute :description
11
11
 
12
- attribute :disk, :aliases => "disk_size"
13
- attribute :ram
12
+ attribute :disk, aliases: "disk_size", type: :integer
13
+ attribute :ram, type: :integer
14
+
15
+ # Boolean flags
16
+ attribute :default, type: :boolean
14
17
  end
15
18
  end
16
19
  end
@@ -4,17 +4,18 @@ module Fog
4
4
  # @api private
5
5
  class Event < Fog::Brightbox::Model
6
6
  identity :id
7
- attribute :url
8
7
  attribute :resource_type
8
+ attribute :url
9
9
 
10
10
  attribute :action
11
11
  attribute :message
12
12
  attribute :short_message
13
13
 
14
- # Times
15
- attribute :created_at, :type => :time
14
+ # Timestamps
15
+ attribute :created_at, type: :time
16
16
 
17
- # Links - to be replaced
17
+ # Links
18
+ attribute :affects
18
19
  attribute :resource
19
20
  attribute :client
20
21
  attribute :user
@@ -3,16 +3,22 @@ module Fog
3
3
  class Compute
4
4
  class FirewallPolicy < Fog::Brightbox::Model
5
5
  identity :id
6
- attribute :url
7
6
  attribute :resource_type
7
+ attribute :url
8
8
 
9
9
  attribute :name
10
10
  attribute :description
11
11
 
12
- attribute :default
12
+ # Boolean flags
13
+ attribute :default, type: :boolean
14
+
15
+ # Timestamps
16
+ attribute :created_at, type: :time
17
+
18
+ # Links
19
+ attribute :account_id, aliases: "account", squash: "id"
20
+ attribute :server_group_id, aliases: "server_group", squash: "id"
13
21
 
14
- attribute :server_group_id, :aliases => "server_group", :squash => "id"
15
- attribute :created_at, :type => :time
16
22
  attribute :rules
17
23
 
18
24
  # Sticking with existing Fog behaviour, save does not update but creates a new resource
@@ -3,20 +3,23 @@ module Fog
3
3
  class Compute
4
4
  class FirewallRule < Fog::Brightbox::Model
5
5
  identity :id
6
- attribute :url
7
6
  attribute :resource_type
7
+ attribute :url
8
8
 
9
9
  attribute :description
10
10
 
11
- attribute :source
12
- attribute :source_port
13
11
  attribute :destination
14
12
  attribute :destination_port
15
- attribute :protocol
16
13
  attribute :icmp_type_name
17
- attribute :created_at, :type => :time
14
+ attribute :protocol
15
+ attribute :source
16
+ attribute :source_port
17
+
18
+ # Timestamps
19
+ attribute :created_at, type: :time
18
20
 
19
- attribute :firewall_policy_id, :aliases => "firewall_policy", :squash => "id"
21
+ # Links
22
+ attribute :firewall_policy_id, aliases: "firewall_policy", squash: "id"
20
23
 
21
24
  # Sticking with existing Fog behaviour, save does not update but creates a new resource
22
25
  def save
@@ -3,19 +3,19 @@ module Fog
3
3
  class Compute
4
4
  class Flavor < Fog::Brightbox::Model
5
5
  identity :id
6
- attribute :url
7
6
  attribute :resource_type
7
+ attribute :url
8
8
 
9
9
  attribute :name
10
10
  attribute :status
11
- attribute :description
12
11
 
13
12
  attribute :handle
14
13
 
15
14
  attribute :bits
16
15
  attribute :cores
17
- attribute :disk, :aliases => "disk_size"
16
+ attribute :disk, aliases: "disk_size"
18
17
  attribute :ram
18
+ attribute :storage_type
19
19
 
20
20
  def bits
21
21
  64 # This is actually based on the Image type used. 32bit or 64bit Images are supported
@@ -5,32 +5,34 @@ module Fog
5
5
  include Fog::Brightbox::Compute::ResourceLocking
6
6
 
7
7
  identity :id
8
- attribute :url
9
8
  attribute :resource_type
9
+ attribute :url
10
10
 
11
11
  attribute :name
12
- attribute :username
13
12
  attribute :status
14
13
  attribute :description
15
14
 
16
- attribute :source
17
- attribute :source_type
18
15
  attribute :arch
19
- attribute :virtual_size
20
- attribute :disk_size
16
+ attribute :disk_size, type: :integer
21
17
  attribute :licence_name
18
+ attribute :min_ram, type: :integer
19
+ attribute :source
20
+ attribute :source_trigger
21
+ attribute :source_type
22
+ attribute :username
23
+ attribute :virtual_size, type: :integer
22
24
 
23
25
  # Boolean flags
24
- attribute :public
25
- attribute :official
26
- attribute :compatibility_mode
26
+ attribute :compatibility_mode, type: :boolean
27
+ attribute :official, type: :boolean
28
+ attribute :public, type: :boolean
27
29
 
28
- # Times
29
- attribute :created_at, :type => :time
30
+ # Timestamps
31
+ attribute :created_at, type: :time
30
32
 
31
- # Links - to be replaced
32
- attribute :ancestor_id, :aliases => "ancestor", :squash => "id"
33
- attribute :owner_id, :aliases => "owner", :squash => "id"
33
+ # Links
34
+ attribute :ancestor_id, aliases: "ancestor", squash: "id"
35
+ attribute :owner_id, aliases: "owner", squash: "id"
34
36
 
35
37
  def ready?
36
38
  status == "available"
@@ -5,13 +5,13 @@ module Fog
5
5
  include Fog::Brightbox::Compute::ResourceLocking
6
6
 
7
7
  identity :id
8
- attribute :url
9
8
  attribute :resource_type
9
+ attribute :url
10
10
 
11
11
  attribute :name
12
12
  attribute :status
13
13
 
14
- attribute :buffer_size
14
+ attribute :buffer_size, type: :integer
15
15
 
16
16
  attribute :policy
17
17
  attribute :nodes
@@ -34,14 +34,18 @@ module Fog
34
34
  # List of domains for ACME
35
35
  attribute :domains
36
36
 
37
- # Times
38
- attribute :created_at, :type => :time
39
- attribute :deleted_at, :type => :time
37
+ # Booleans
38
+ attribute :https_redirect, type: :boolean
39
+
40
+ # Timestamps
41
+ attribute :created_at, type: :time
42
+ attribute :deleted_at, type: :time
40
43
 
41
- # Links - to be replaced
44
+ # Links
42
45
  attribute :account
43
- attribute :server
44
- attribute :cloud_ip
46
+
47
+ attribute :nodes
48
+ attribute :cloud_ips
45
49
 
46
50
  def ready?
47
51
  status == "active"
@@ -14,35 +14,37 @@ module Fog
14
14
  attribute :url
15
15
 
16
16
  attribute :name
17
- attribute :state, :aliases => "status"
17
+ attribute :state, aliases: "status"
18
18
 
19
- attribute :hostname
20
- attribute :fqdn
21
- attribute :user_data
19
+ attribute :console_token
22
20
  attribute :console_url
23
21
  attribute :fqdn
24
- attribute :console_token
22
+ attribute :hostname
23
+ attribute :user_data
25
24
 
26
- attribute :disk_encrypted
25
+ # Boolean flags
26
+ attribute :compatibility_mode, type: :boolean
27
+ attribute :disk_encrypted, type: :boolean
27
28
 
28
- # Times
29
- attribute :created_at, :type => :time
30
- attribute :started_at, :type => :time
31
- attribute :console_token_expires, :type => :time
32
- attribute :deleted_at, :type => :time
29
+ # Timestamps
30
+ attribute :created_at, type: :time
31
+ attribute :started_at, type: :time
32
+ attribute :console_token_expires, type: :time
33
+ attribute :deleted_at, type: :time
33
34
 
34
- # Links - to be replaced
35
- attribute :account_id, :aliases => "account", :squash => "id"
36
- attribute :image_id, :aliases => "image", :squash => "id"
35
+ # Links
36
+ attribute :account_id, aliases: "account", squash: "id"
37
+ attribute :image_id, aliases: "image", squash: "id"
37
38
 
38
- attribute :snapshots
39
+ attribute :server_type
40
+ attribute :zone
39
41
  attribute :cloud_ip # Creation option only
42
+
40
43
  attribute :cloud_ips
41
44
  attribute :interfaces
42
45
  attribute :server_groups
46
+ attribute :snapshots
43
47
  attribute :volumes
44
- attribute :zone
45
- attribute :server_type
46
48
 
47
49
  def initialize(attributes = {})
48
50
  # Call super first to initialize the service object for our default image
@@ -6,15 +6,23 @@ module Fog
6
6
  # Certain actions can accept a server group and affect all members
7
7
  class ServerGroup < Fog::Brightbox::Model
8
8
  identity :id
9
-
10
- attribute :url
11
9
  attribute :resource_type
10
+ attribute :url
11
+
12
12
  attribute :name
13
13
  attribute :description
14
- attribute :default
15
- attribute :created_at, :type => :time
14
+ attribute :fqdn
15
+
16
+ # Booleans
17
+ attribute :default, type: :boolean
18
+
19
+ # Timestamps
20
+ attribute :created_at, type: :time
16
21
 
17
- attribute :server_ids, :aliases => "servers"
22
+ # Links
23
+ attribute :account_id, aliases: "account", squash: "id"
24
+ attribute :firewall_policy_id, aliases: "firewall_policy", squash: "id"
25
+ attribute :server_ids, aliases: "servers"
18
26
 
19
27
  def save
20
28
  options = {
@@ -11,13 +11,18 @@ module Fog
11
11
  attribute :ssh_key
12
12
 
13
13
  # Boolean flags
14
- attribute :email_verified
15
- attribute :messaging_pref
14
+ attribute :email_verified, type: :boolean
16
15
 
17
- # Links - to be replaced
18
- attribute :account_id, :aliases => "default_account", :squash => "id"
16
+ # Timestamps
17
+ attribute :created_at, type: :time
18
+
19
+ # Links
20
+ attribute :account_id, aliases: "default_account", squash: "id"
19
21
  attribute :accounts
20
22
 
23
+ # Deprecated
24
+ attribute :messaging_pref, type: :boolean
25
+
21
26
  def save
22
27
  requires :identity
23
28
 
@@ -3,10 +3,21 @@ module Fog
3
3
  class Compute
4
4
  class UserCollaboration < Fog::Brightbox::Model
5
5
  identity :id
6
+ # resource_type is buggy for this resource
7
+ attribute :url
8
+
6
9
  attribute :status
10
+
7
11
  attribute :email
8
12
  attribute :role
9
13
  attribute :role_label
14
+
15
+ # Timestamps
16
+ attribute :created_at, type: :time
17
+ attribute :started_at, type: :time
18
+ attribute :finished_at, type: :time
19
+
20
+ # Links
10
21
  attribute :account
11
22
  attribute :user
12
23
  attribute :inviter
@@ -5,34 +5,35 @@ module Fog
5
5
  include Fog::Brightbox::Compute::ResourceLocking
6
6
 
7
7
  identity :id
8
- attribute :url
9
8
  attribute :resource_type
9
+ attribute :url
10
10
 
11
11
  attribute :name
12
- attribute :state, :aliases => "status"
13
-
12
+ attribute :state, aliases: "status"
14
13
  attribute :description
14
+
15
15
  attribute :filesystem_label
16
16
  attribute :filesystem_type
17
17
  attribute :serial
18
- attribute :size
18
+ attribute :size, type: :integer
19
19
  attribute :source
20
20
  attribute :source_type
21
21
  attribute :storage_type
22
22
 
23
- attribute :boot
24
- attribute :delete_with_server
25
- attribute :encrypted
23
+ # Boolean flags
24
+ attribute :boot, type: :boolean
25
+ attribute :delete_with_server, type: :boolean
26
+ attribute :encrypted, type: :boolean
26
27
 
27
- # Times
28
- attribute :created_at, :type => :time
29
- attribute :updated_at, :type => :time
30
- attribute :deleted_at, :type => :time
28
+ # Timestamps
29
+ attribute :created_at, type: :time
30
+ attribute :updated_at, type: :time
31
+ attribute :deleted_at, type: :time
31
32
 
32
33
  # Links
33
- attribute :account_id, :aliases => "account", :squash => "id"
34
- attribute :image_id, :aliases => "image", :squash => "id"
35
- attribute :server_id, :aliases => "server", :squash => "id"
34
+ attribute :account_id, aliases: "account", squash: "id"
35
+ attribute :image_id, aliases: "image", squash: "id"
36
+ attribute :server_id, aliases: "server", squash: "id"
36
37
 
37
38
  def attach(server)
38
39
  requires :identity
@@ -3,13 +3,12 @@ module Fog
3
3
  class Compute
4
4
  class Zone < Fog::Brightbox::Model
5
5
  identity :id
6
- attribute :url
7
6
  attribute :resource_type
8
-
9
- attribute :status
10
- attribute :handle
7
+ attribute :url
11
8
 
12
9
  attribute :description
10
+ attribute :handle
11
+ attribute :status
13
12
  end
14
13
  end
15
14
  end
@@ -31,8 +31,8 @@ module Fog
31
31
  attr_writer :public
32
32
 
33
33
  def public_url
34
- # raise NotImplementedError
35
- ""
34
+ requires :key
35
+ @public_url ||= [service.management_url , Fog::Brightbox::Storage.escape(key, "/")].join("/")
36
36
  end
37
37
 
38
38
  def save
@@ -0,0 +1,22 @@
1
+ module Fog
2
+ module Brightbox
3
+ class Compute
4
+ class Real
5
+ # Create a new config map
6
+ #
7
+ # @param [Hash] options
8
+ # @option options [String] :name to identify this config map
9
+ # @option options [Hash] :data key/values to expose in config map
10
+ # @option options [Boolean] :nested passed through with the API request. When true nested resources are expanded.
11
+ #
12
+ # @return [Hash] if successful Hash version of JSON object
13
+ # @return [NilClass] if no options were passed
14
+ #
15
+ def create_config_map(options)
16
+ return nil if options.empty? || options.nil?
17
+ wrapped_request("post", "/1.0/config_maps", [200], options)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,20 @@
1
+ module Fog
2
+ module Brightbox
3
+ class Compute
4
+ class Real
5
+ # Destroy the config map
6
+ #
7
+ # @param [String] identifier Unique reference to identify the resource
8
+ # @param [Hash] options
9
+ # @option options [Boolean] :nested passed through with the API request. When true nested resources are expanded.
10
+ #
11
+ # @return [Hash] if successful Hash version of JSON object
12
+ #
13
+ def delete_config_map(identifier, options = {})
14
+ return nil if identifier.nil? || identifier == ""
15
+ wrapped_request("delete", "/1.0/config_maps/#{identifier}", [200], options)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ module Fog
2
+ module Brightbox
3
+ class Compute
4
+ class Real
5
+ # @param [String] identifier Unique reference to identify the resource
6
+ # @param [Hash] options
7
+ # @option options [Boolean] :nested passed through with the API request. When true nested resources are expanded.
8
+ #
9
+ # @return [Hash] if successful Hash version of JSON object
10
+ #
11
+ def get_config_map(identifier, options = {})
12
+ return nil if identifier.nil? || identifier == ""
13
+ wrapped_request("get", "/1.0/config_maps/#{identifier}", [200], options)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ module Fog
2
+ module Brightbox
3
+ class Compute
4
+ class Real
5
+ # Lists summary details of config maps owned by the account.
6
+ #
7
+ # @param [Hash] options
8
+ # @option options [Boolean] :nested passed through with the API request. When true nested resources are expanded.
9
+ #
10
+ # @return [Hash] if successful Hash version of JSON object
11
+ #
12
+ def list_config_maps(options = {})
13
+ wrapped_request("get", "/1.0/config_maps", [200], options)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,22 @@
1
+ module Fog
2
+ module Brightbox
3
+ class Compute
4
+ class Real
5
+ # @param [String] identifier Unique reference to identify the resource
6
+ # @param [Hash] options
7
+ # @option options [String] :name to identifier this config map
8
+ # @option options [Hash] :data key/values to expose in config map
9
+ # @option options [Boolean] :nested passed through with the API request. When true nested resources are expanded.
10
+ #
11
+ # @return [Hash] if successful Hash version of JSON object
12
+ # @return [NilClass] if no options were passed
13
+ #
14
+ def update_config_map(identifier, options)
15
+ return nil if identifier.nil? || identifier == ""
16
+ return nil if options.empty? || options.nil?
17
+ wrapped_request("put", "/1.0/config_maps/#{identifier}", [200], options)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -215,7 +215,8 @@ module Fog
215
215
 
216
216
  # CGI.escape, but without special treatment on spaces
217
217
  def self.escape(str, extra_exclude_chars = "")
218
- str.gsub(/([^a-zA-Z0-9_.-#{extra_exclude_chars}]+)/) do
218
+ # Includes fix to Regexp so "-" is correctly handled by placing last
219
+ str.gsub(/([^a-zA-Z0-9_.#{extra_exclude_chars}-]+)/) do
219
220
  "%" + Regexp.last_match[1].unpack("H2" * Regexp.last_match[1].bytesize).join("%").upcase
220
221
  end
221
222
  end
@@ -1,5 +1,5 @@
1
1
  module Fog
2
2
  module Brightbox
3
- VERSION = "1.6.0"
3
+ VERSION = "1.7.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fog-brightbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Thornthwaite
@@ -193,6 +193,8 @@ files:
193
193
  - lib/fog/brightbox/models/compute/cloud_ips.rb
194
194
  - lib/fog/brightbox/models/compute/collaboration.rb
195
195
  - lib/fog/brightbox/models/compute/collaborations.rb
196
+ - lib/fog/brightbox/models/compute/config_map.rb
197
+ - lib/fog/brightbox/models/compute/config_maps.rb
196
198
  - lib/fog/brightbox/models/compute/database_server.rb
197
199
  - lib/fog/brightbox/models/compute/database_servers.rb
198
200
  - lib/fog/brightbox/models/compute/database_snapshot.rb
@@ -240,6 +242,7 @@ files:
240
242
  - lib/fog/brightbox/requests/compute/create_application.rb
241
243
  - lib/fog/brightbox/requests/compute/create_cloud_ip.rb
242
244
  - lib/fog/brightbox/requests/compute/create_collaboration.rb
245
+ - lib/fog/brightbox/requests/compute/create_config_map.rb
243
246
  - lib/fog/brightbox/requests/compute/create_database_server.rb
244
247
  - lib/fog/brightbox/requests/compute/create_firewall_policy.rb
245
248
  - lib/fog/brightbox/requests/compute/create_firewall_rule.rb
@@ -252,6 +255,7 @@ files:
252
255
  - lib/fog/brightbox/requests/compute/delete_application.rb
253
256
  - lib/fog/brightbox/requests/compute/delete_cloud_ip.rb
254
257
  - lib/fog/brightbox/requests/compute/delete_collaboration.rb
258
+ - lib/fog/brightbox/requests/compute/delete_config_map.rb
255
259
  - lib/fog/brightbox/requests/compute/delete_database_server.rb
256
260
  - lib/fog/brightbox/requests/compute/delete_database_snapshot.rb
257
261
  - lib/fog/brightbox/requests/compute/delete_firewall_policy.rb
@@ -269,6 +273,7 @@ files:
269
273
  - lib/fog/brightbox/requests/compute/get_authenticated_user.rb
270
274
  - lib/fog/brightbox/requests/compute/get_cloud_ip.rb
271
275
  - lib/fog/brightbox/requests/compute/get_collaboration.rb
276
+ - lib/fog/brightbox/requests/compute/get_config_map.rb
272
277
  - lib/fog/brightbox/requests/compute/get_database_server.rb
273
278
  - lib/fog/brightbox/requests/compute/get_database_snapshot.rb
274
279
  - lib/fog/brightbox/requests/compute/get_database_type.rb
@@ -290,6 +295,7 @@ files:
290
295
  - lib/fog/brightbox/requests/compute/list_applications.rb
291
296
  - lib/fog/brightbox/requests/compute/list_cloud_ips.rb
292
297
  - lib/fog/brightbox/requests/compute/list_collaborations.rb
298
+ - lib/fog/brightbox/requests/compute/list_config_maps.rb
293
299
  - lib/fog/brightbox/requests/compute/list_database_servers.rb
294
300
  - lib/fog/brightbox/requests/compute/list_database_snapshots.rb
295
301
  - lib/fog/brightbox/requests/compute/list_database_types.rb
@@ -342,6 +348,7 @@ files:
342
348
  - lib/fog/brightbox/requests/compute/update_api_client.rb
343
349
  - lib/fog/brightbox/requests/compute/update_application.rb
344
350
  - lib/fog/brightbox/requests/compute/update_cloud_ip.rb
351
+ - lib/fog/brightbox/requests/compute/update_config_map.rb
345
352
  - lib/fog/brightbox/requests/compute/update_database_server.rb
346
353
  - lib/fog/brightbox/requests/compute/update_database_snapshot.rb
347
354
  - lib/fog/brightbox/requests/compute/update_firewall_policy.rb