fog-brightbox 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/fog-brightbox.gemspec +28 -0
- data/lib/fog/brightbox/compute/image_selector.rb +45 -0
- data/lib/fog/brightbox/compute/shared.rb +230 -0
- data/lib/fog/brightbox/compute.rb +305 -0
- data/lib/fog/brightbox/core.rb +11 -0
- data/lib/fog/brightbox/models/compute/account.rb +69 -0
- data/lib/fog/brightbox/models/compute/accounts.rb +29 -0
- data/lib/fog/brightbox/models/compute/api_client.rb +37 -0
- data/lib/fog/brightbox/models/compute/api_clients.rb +24 -0
- data/lib/fog/brightbox/models/compute/application.rb +24 -0
- data/lib/fog/brightbox/models/compute/applications.rb +28 -0
- data/lib/fog/brightbox/models/compute/cloud_ip.rb +68 -0
- data/lib/fog/brightbox/models/compute/cloud_ips.rb +34 -0
- data/lib/fog/brightbox/models/compute/collaboration.rb +49 -0
- data/lib/fog/brightbox/models/compute/collaborations.rb +47 -0
- data/lib/fog/brightbox/models/compute/database_server.rb +97 -0
- data/lib/fog/brightbox/models/compute/database_servers.rb +28 -0
- data/lib/fog/brightbox/models/compute/database_snapshot.rb +52 -0
- data/lib/fog/brightbox/models/compute/database_snapshots.rb +24 -0
- data/lib/fog/brightbox/models/compute/database_type.rb +19 -0
- data/lib/fog/brightbox/models/compute/database_types.rb +26 -0
- data/lib/fog/brightbox/models/compute/firewall_policies.rb +29 -0
- data/lib/fog/brightbox/models/compute/firewall_policy.rb +63 -0
- data/lib/fog/brightbox/models/compute/firewall_rule.rb +54 -0
- data/lib/fog/brightbox/models/compute/firewall_rules.rb +24 -0
- data/lib/fog/brightbox/models/compute/flavor.rb +32 -0
- data/lib/fog/brightbox/models/compute/flavors.rb +28 -0
- data/lib/fog/brightbox/models/compute/image.rb +64 -0
- data/lib/fog/brightbox/models/compute/images.rb +28 -0
- data/lib/fog/brightbox/models/compute/load_balancer.rb +107 -0
- data/lib/fog/brightbox/models/compute/load_balancers.rb +28 -0
- data/lib/fog/brightbox/models/compute/server.rb +217 -0
- data/lib/fog/brightbox/models/compute/server_group.rb +94 -0
- data/lib/fog/brightbox/models/compute/server_groups.rb +29 -0
- data/lib/fog/brightbox/models/compute/servers.rb +61 -0
- data/lib/fog/brightbox/models/compute/user.rb +43 -0
- data/lib/fog/brightbox/models/compute/user_collaboration.rb +44 -0
- data/lib/fog/brightbox/models/compute/user_collaborations.rb +31 -0
- data/lib/fog/brightbox/models/compute/users.rb +27 -0
- data/lib/fog/brightbox/models/compute/zone.rb +22 -0
- data/lib/fog/brightbox/models/compute/zones.rb +29 -0
- data/lib/fog/brightbox/oauth2.rb +166 -0
- data/lib/fog/brightbox/requests/compute/accept_user_collaboration.rb +21 -0
- data/lib/fog/brightbox/requests/compute/activate_console_server.rb +21 -0
- data/lib/fog/brightbox/requests/compute/add_listeners_load_balancer.rb +24 -0
- data/lib/fog/brightbox/requests/compute/add_nodes_load_balancer.rb +24 -0
- data/lib/fog/brightbox/requests/compute/add_servers_server_group.rb +34 -0
- data/lib/fog/brightbox/requests/compute/apply_to_firewall_policy.rb +24 -0
- data/lib/fog/brightbox/requests/compute/create_api_client.rb +23 -0
- data/lib/fog/brightbox/requests/compute/create_application.rb +23 -0
- data/lib/fog/brightbox/requests/compute/create_cloud_ip.rb +24 -0
- data/lib/fog/brightbox/requests/compute/create_collaboration.rb +23 -0
- data/lib/fog/brightbox/requests/compute/create_database_server.rb +25 -0
- data/lib/fog/brightbox/requests/compute/create_firewall_policy.rb +26 -0
- data/lib/fog/brightbox/requests/compute/create_firewall_rule.rb +29 -0
- data/lib/fog/brightbox/requests/compute/create_image.rb +30 -0
- data/lib/fog/brightbox/requests/compute/create_load_balancer.rb +26 -0
- data/lib/fog/brightbox/requests/compute/create_server.rb +29 -0
- data/lib/fog/brightbox/requests/compute/create_server_group.rb +23 -0
- data/lib/fog/brightbox/requests/compute/delete_api_client.rb +28 -0
- data/lib/fog/brightbox/requests/compute/delete_application.rb +28 -0
- data/lib/fog/brightbox/requests/compute/delete_cloud_ip.rb +28 -0
- data/lib/fog/brightbox/requests/compute/delete_collaboration.rb +28 -0
- data/lib/fog/brightbox/requests/compute/delete_database_server.rb +26 -0
- data/lib/fog/brightbox/requests/compute/delete_database_snapshot.rb +26 -0
- data/lib/fog/brightbox/requests/compute/delete_firewall_policy.rb +28 -0
- data/lib/fog/brightbox/requests/compute/delete_firewall_rule.rb +28 -0
- data/lib/fog/brightbox/requests/compute/delete_image.rb +28 -0
- data/lib/fog/brightbox/requests/compute/delete_load_balancer.rb +28 -0
- data/lib/fog/brightbox/requests/compute/delete_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/delete_server_group.rb +28 -0
- data/lib/fog/brightbox/requests/compute/delete_user_collaboration.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_account.rb +29 -0
- data/lib/fog/brightbox/requests/compute/get_api_client.rb +21 -0
- data/lib/fog/brightbox/requests/compute/get_application.rb +21 -0
- data/lib/fog/brightbox/requests/compute/get_authenticated_user.rb +17 -0
- data/lib/fog/brightbox/requests/compute/get_cloud_ip.rb +21 -0
- data/lib/fog/brightbox/requests/compute/get_collaboration.rb +21 -0
- data/lib/fog/brightbox/requests/compute/get_database_server.rb +19 -0
- data/lib/fog/brightbox/requests/compute/get_database_snapshot.rb +19 -0
- data/lib/fog/brightbox/requests/compute/get_database_type.rb +21 -0
- data/lib/fog/brightbox/requests/compute/get_firewall_policy.rb +21 -0
- data/lib/fog/brightbox/requests/compute/get_firewall_rule.rb +21 -0
- data/lib/fog/brightbox/requests/compute/get_image.rb +21 -0
- data/lib/fog/brightbox/requests/compute/get_interface.rb +21 -0
- data/lib/fog/brightbox/requests/compute/get_load_balancer.rb +21 -0
- data/lib/fog/brightbox/requests/compute/get_scoped_account.rb +15 -0
- data/lib/fog/brightbox/requests/compute/get_server.rb +21 -0
- data/lib/fog/brightbox/requests/compute/get_server_group.rb +21 -0
- data/lib/fog/brightbox/requests/compute/get_server_type.rb +21 -0
- data/lib/fog/brightbox/requests/compute/get_user.rb +29 -0
- data/lib/fog/brightbox/requests/compute/get_user_collaboration.rb +21 -0
- data/lib/fog/brightbox/requests/compute/get_zone.rb +21 -0
- data/lib/fog/brightbox/requests/compute/list_accounts.rb +17 -0
- data/lib/fog/brightbox/requests/compute/list_api_clients.rb +19 -0
- data/lib/fog/brightbox/requests/compute/list_applications.rb +19 -0
- data/lib/fog/brightbox/requests/compute/list_cloud_ips.rb +19 -0
- data/lib/fog/brightbox/requests/compute/list_collaborations.rb +19 -0
- data/lib/fog/brightbox/requests/compute/list_database_servers.rb +17 -0
- data/lib/fog/brightbox/requests/compute/list_database_snapshots.rb +17 -0
- data/lib/fog/brightbox/requests/compute/list_database_types.rb +19 -0
- data/lib/fog/brightbox/requests/compute/list_firewall_policies.rb +19 -0
- data/lib/fog/brightbox/requests/compute/list_images.rb +19 -0
- data/lib/fog/brightbox/requests/compute/list_load_balancers.rb +19 -0
- data/lib/fog/brightbox/requests/compute/list_server_groups.rb +19 -0
- data/lib/fog/brightbox/requests/compute/list_server_types.rb +19 -0
- data/lib/fog/brightbox/requests/compute/list_servers.rb +19 -0
- data/lib/fog/brightbox/requests/compute/list_user_collaborations.rb +19 -0
- data/lib/fog/brightbox/requests/compute/list_users.rb +19 -0
- data/lib/fog/brightbox/requests/compute/list_zones.rb +19 -0
- data/lib/fog/brightbox/requests/compute/map_cloud_ip.rb +24 -0
- data/lib/fog/brightbox/requests/compute/move_servers_server_group.rb +36 -0
- data/lib/fog/brightbox/requests/compute/reject_user_collaboration.rb +21 -0
- data/lib/fog/brightbox/requests/compute/remove_firewall_policy.rb +24 -0
- data/lib/fog/brightbox/requests/compute/remove_listeners_load_balancer.rb +24 -0
- data/lib/fog/brightbox/requests/compute/remove_nodes_load_balancer.rb +24 -0
- data/lib/fog/brightbox/requests/compute/remove_servers_server_group.rb +34 -0
- data/lib/fog/brightbox/requests/compute/resend_collaboration.rb +21 -0
- data/lib/fog/brightbox/requests/compute/reset_ftp_password_account.rb +32 -0
- data/lib/fog/brightbox/requests/compute/reset_ftp_password_scoped_account.rb +18 -0
- data/lib/fog/brightbox/requests/compute/reset_password_database_server.rb +19 -0
- data/lib/fog/brightbox/requests/compute/reset_secret_api_client.rb +25 -0
- data/lib/fog/brightbox/requests/compute/reset_secret_application.rb +21 -0
- data/lib/fog/brightbox/requests/compute/shutdown_server.rb +21 -0
- data/lib/fog/brightbox/requests/compute/snapshot_database_server.rb +19 -0
- data/lib/fog/brightbox/requests/compute/snapshot_server.rb +21 -0
- data/lib/fog/brightbox/requests/compute/start_server.rb +21 -0
- data/lib/fog/brightbox/requests/compute/stop_server.rb +21 -0
- data/lib/fog/brightbox/requests/compute/unmap_cloud_ip.rb +21 -0
- data/lib/fog/brightbox/requests/compute/update_account.rb +61 -0
- data/lib/fog/brightbox/requests/compute/update_api_client.rb +26 -0
- data/lib/fog/brightbox/requests/compute/update_application.rb +26 -0
- data/lib/fog/brightbox/requests/compute/update_cloud_ip.rb +27 -0
- data/lib/fog/brightbox/requests/compute/update_database_server.rb +25 -0
- data/lib/fog/brightbox/requests/compute/update_database_snapshot.rb +26 -0
- data/lib/fog/brightbox/requests/compute/update_firewall_policy.rb +26 -0
- data/lib/fog/brightbox/requests/compute/update_firewall_rule.rb +31 -0
- data/lib/fog/brightbox/requests/compute/update_image.rb +31 -0
- data/lib/fog/brightbox/requests/compute/update_load_balancer.rb +29 -0
- data/lib/fog/brightbox/requests/compute/update_scoped_account.rb +31 -0
- data/lib/fog/brightbox/requests/compute/update_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/update_server_group.rb +26 -0
- data/lib/fog/brightbox/requests/compute/update_user.rb +29 -0
- data/lib/fog/brightbox/version.rb +5 -0
- data/lib/fog/brightbox.rb +1 -0
- metadata +261 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
require 'fog/brightbox/models/compute/database_server'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Compute
|
6
|
+
class Brightbox
|
7
|
+
|
8
|
+
class DatabaseServers < Fog::Collection
|
9
|
+
|
10
|
+
model Fog::Compute::Brightbox::DatabaseServer
|
11
|
+
|
12
|
+
def all
|
13
|
+
data = service.list_database_servers
|
14
|
+
load(data)
|
15
|
+
end
|
16
|
+
|
17
|
+
def get(identifier)
|
18
|
+
data = service.get_database_server(identifier)
|
19
|
+
new(data)
|
20
|
+
rescue Excon::Errors::NotFound
|
21
|
+
nil
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'fog/core/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Compute
|
5
|
+
class Brightbox
|
6
|
+
class DatabaseSnapshot < Fog::Model
|
7
|
+
identity :id
|
8
|
+
attribute :url
|
9
|
+
attribute :resource_type
|
10
|
+
|
11
|
+
attribute :name
|
12
|
+
attribute :description
|
13
|
+
attribute :state, :aliases => "status"
|
14
|
+
|
15
|
+
attribute :database_engine
|
16
|
+
attribute :database_version
|
17
|
+
|
18
|
+
attribute :size
|
19
|
+
|
20
|
+
attribute :created_at, :type => :time
|
21
|
+
attribute :updated_at, :type => :time
|
22
|
+
attribute :deleted_at, :type => :time
|
23
|
+
|
24
|
+
def save
|
25
|
+
options = {
|
26
|
+
:name => name,
|
27
|
+
:description => description
|
28
|
+
}
|
29
|
+
data = update_database_snapshot(options)
|
30
|
+
merge_attributes(data)
|
31
|
+
true
|
32
|
+
end
|
33
|
+
|
34
|
+
def ready?
|
35
|
+
state == "available"
|
36
|
+
end
|
37
|
+
|
38
|
+
def destroy
|
39
|
+
requires :identity
|
40
|
+
merge_attributes(service.destroy_database_snapshot(identity))
|
41
|
+
true
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def update_database_snapshot(options)
|
47
|
+
service.update_database_snaphot(identity, options)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
require 'fog/brightbox/models/compute/database_snapshot'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Compute
|
6
|
+
class Brightbox
|
7
|
+
class DatabaseSnapshots < Fog::Collection
|
8
|
+
model Fog::Compute::Brightbox::DatabaseSnapshot
|
9
|
+
|
10
|
+
def all
|
11
|
+
data = service.list_database_snapshots
|
12
|
+
load(data)
|
13
|
+
end
|
14
|
+
|
15
|
+
def get(identifier)
|
16
|
+
data = service.get_database_snapshot(identifier)
|
17
|
+
new(data)
|
18
|
+
rescue Excon::Errors::NotFound
|
19
|
+
nil
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'fog/core/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Compute
|
5
|
+
class Brightbox
|
6
|
+
class DatabaseType < Fog::Model
|
7
|
+
identity :id
|
8
|
+
attribute :url
|
9
|
+
attribute :resource_type
|
10
|
+
|
11
|
+
attribute :name
|
12
|
+
attribute :description
|
13
|
+
|
14
|
+
attribute :disk, :aliases => "disk_size"
|
15
|
+
attribute :ram
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
require 'fog/brightbox/models/compute/database_type'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Compute
|
6
|
+
class Brightbox
|
7
|
+
|
8
|
+
class DatabaseTypes < Fog::Collection
|
9
|
+
|
10
|
+
model Fog::Compute::Brightbox::DatabaseType
|
11
|
+
|
12
|
+
def all
|
13
|
+
data = service.list_database_types
|
14
|
+
load(data)
|
15
|
+
end
|
16
|
+
|
17
|
+
def get(identifier)
|
18
|
+
data = service.get_database_type(identifier)
|
19
|
+
new(data)
|
20
|
+
rescue Excon::Errors::NotFound
|
21
|
+
nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
require 'fog/brightbox/models/compute/firewall_policy'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Compute
|
6
|
+
class Brightbox
|
7
|
+
|
8
|
+
class FirewallPolicies < Fog::Collection
|
9
|
+
|
10
|
+
model Fog::Compute::Brightbox::FirewallPolicy
|
11
|
+
|
12
|
+
def all
|
13
|
+
data = service.list_firewall_policies
|
14
|
+
load(data)
|
15
|
+
end
|
16
|
+
|
17
|
+
def get(identifier)
|
18
|
+
return nil if identifier.nil? || identifier == ""
|
19
|
+
data = service.get_firewall_policy(identifier)
|
20
|
+
new(data)
|
21
|
+
rescue Excon::Errors::NotFound
|
22
|
+
nil
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'fog/core/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Compute
|
5
|
+
class Brightbox
|
6
|
+
|
7
|
+
class FirewallPolicy < Fog::Model
|
8
|
+
|
9
|
+
identity :id
|
10
|
+
attribute :url
|
11
|
+
attribute :resource_type
|
12
|
+
|
13
|
+
attribute :name
|
14
|
+
attribute :description
|
15
|
+
|
16
|
+
attribute :default
|
17
|
+
|
18
|
+
attribute :server_group_id, :aliases => "server_group", :squash => "id"
|
19
|
+
attribute :created_at, :type => :time
|
20
|
+
attribute :rules
|
21
|
+
|
22
|
+
# Sticking with existing Fog behaviour, save does not update but creates a new resource
|
23
|
+
def save
|
24
|
+
raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if persisted?
|
25
|
+
options = {
|
26
|
+
:server_group => server_group_id,
|
27
|
+
:name => name,
|
28
|
+
:description => description
|
29
|
+
}.delete_if { |k, v| v.nil? || v == "" }
|
30
|
+
data = service.create_firewall_policy(options)
|
31
|
+
merge_attributes(data)
|
32
|
+
true
|
33
|
+
end
|
34
|
+
|
35
|
+
def apply_to(server_group_id)
|
36
|
+
requires :identity
|
37
|
+
options = {
|
38
|
+
:server_group => server_group_id
|
39
|
+
}
|
40
|
+
data = service.apply_to_firewall_policy(identity, options)
|
41
|
+
merge_attributes(data)
|
42
|
+
true
|
43
|
+
end
|
44
|
+
|
45
|
+
def remove(server_group_id)
|
46
|
+
requires :identity
|
47
|
+
options = {
|
48
|
+
:server_group => server_group_id
|
49
|
+
}
|
50
|
+
data = service.remove_firewall_policy(identity, options)
|
51
|
+
merge_attributes(data)
|
52
|
+
true
|
53
|
+
end
|
54
|
+
|
55
|
+
def destroy
|
56
|
+
requires :identity
|
57
|
+
service.destroy_firewall_policy(identity)
|
58
|
+
true
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'fog/core/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Compute
|
5
|
+
class Brightbox
|
6
|
+
|
7
|
+
class FirewallRule < Fog::Model
|
8
|
+
|
9
|
+
identity :id
|
10
|
+
attribute :url
|
11
|
+
attribute :resource_type
|
12
|
+
|
13
|
+
attribute :description
|
14
|
+
|
15
|
+
attribute :source
|
16
|
+
attribute :source_port
|
17
|
+
attribute :destination
|
18
|
+
attribute :destination_port
|
19
|
+
attribute :protocol
|
20
|
+
attribute :icmp_type_name
|
21
|
+
attribute :created_at, :type => :time
|
22
|
+
|
23
|
+
attribute :firewall_policy_id, :aliases => "firewall_policy", :squash => "id"
|
24
|
+
|
25
|
+
# Sticking with existing Fog behaviour, save does not update but creates a new resource
|
26
|
+
def save
|
27
|
+
raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if persisted?
|
28
|
+
requires :firewall_policy_id
|
29
|
+
options = {
|
30
|
+
:firewall_policy => firewall_policy_id,
|
31
|
+
:protocol => protocol,
|
32
|
+
:description => description,
|
33
|
+
:source => source,
|
34
|
+
:source_port => source_port,
|
35
|
+
:destination => destination,
|
36
|
+
:destination_port => destination_port,
|
37
|
+
:icmp_type_name => icmp_type_name
|
38
|
+
}.delete_if { |k, v| v.nil? || v == "" }
|
39
|
+
data = service.create_firewall_rule(options)
|
40
|
+
merge_attributes(data)
|
41
|
+
true
|
42
|
+
end
|
43
|
+
|
44
|
+
def destroy
|
45
|
+
requires :identity
|
46
|
+
service.destroy_firewall_rule(identity)
|
47
|
+
true
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
require 'fog/brightbox/models/compute/firewall_rule'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Compute
|
6
|
+
class Brightbox
|
7
|
+
|
8
|
+
class FirewallRules < Fog::Collection
|
9
|
+
|
10
|
+
model Fog::Compute::Brightbox::FirewallRule
|
11
|
+
|
12
|
+
def get(identifier)
|
13
|
+
return nil if identifier.nil? || identifier == ""
|
14
|
+
data = service.get_firewall_rule(identifier)
|
15
|
+
new(data)
|
16
|
+
rescue Excon::Errors::NotFound
|
17
|
+
nil
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'fog/core/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Compute
|
5
|
+
class Brightbox
|
6
|
+
|
7
|
+
class Flavor < Fog::Model
|
8
|
+
|
9
|
+
identity :id
|
10
|
+
attribute :url
|
11
|
+
attribute :resource_type
|
12
|
+
|
13
|
+
attribute :name
|
14
|
+
attribute :status
|
15
|
+
attribute :description
|
16
|
+
|
17
|
+
attribute :handle
|
18
|
+
|
19
|
+
attribute :bits
|
20
|
+
attribute :cores
|
21
|
+
attribute :disk, :aliases => "disk_size"
|
22
|
+
attribute :ram
|
23
|
+
|
24
|
+
def bits
|
25
|
+
0 # This is actually based on the Image type used. 32bit or 64bit Images are supported
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
require 'fog/brightbox/models/compute/flavor'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Compute
|
6
|
+
class Brightbox
|
7
|
+
|
8
|
+
class Flavors < Fog::Collection
|
9
|
+
|
10
|
+
model Fog::Compute::Brightbox::Flavor
|
11
|
+
|
12
|
+
def all
|
13
|
+
data = service.list_server_types
|
14
|
+
load(data)
|
15
|
+
end
|
16
|
+
|
17
|
+
def get(identifier)
|
18
|
+
data = service.get_server_type(identifier)
|
19
|
+
new(data)
|
20
|
+
rescue Excon::Errors::NotFound
|
21
|
+
nil
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'fog/core/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Compute
|
5
|
+
class Brightbox
|
6
|
+
|
7
|
+
class Image < Fog::Model
|
8
|
+
|
9
|
+
identity :id
|
10
|
+
attribute :url
|
11
|
+
attribute :resource_type
|
12
|
+
|
13
|
+
attribute :name
|
14
|
+
attribute :username
|
15
|
+
attribute :status
|
16
|
+
attribute :description
|
17
|
+
|
18
|
+
attribute :source
|
19
|
+
attribute :source_type
|
20
|
+
attribute :arch
|
21
|
+
attribute :virtual_size
|
22
|
+
attribute :disk_size
|
23
|
+
attribute :licence_name
|
24
|
+
|
25
|
+
# Boolean flags
|
26
|
+
attribute :public
|
27
|
+
attribute :official
|
28
|
+
attribute :compatibility_mode
|
29
|
+
|
30
|
+
# Times
|
31
|
+
attribute :created_at, :type => :time
|
32
|
+
|
33
|
+
# Links - to be replaced
|
34
|
+
attribute :ancestor_id, :aliases => "ancestor", :squash => "id"
|
35
|
+
attribute :owner_id, :aliases => "owner", :squash => "id"
|
36
|
+
|
37
|
+
def ready?
|
38
|
+
status == "available"
|
39
|
+
end
|
40
|
+
|
41
|
+
def save
|
42
|
+
raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if persisted?
|
43
|
+
requires :source, :arch
|
44
|
+
options = {
|
45
|
+
:source => source,
|
46
|
+
:arch => arch,
|
47
|
+
:name => name,
|
48
|
+
:username => username,
|
49
|
+
:description => description
|
50
|
+
}.delete_if { |k, v| v.nil? || v == "" }
|
51
|
+
data = service.create_image(options)
|
52
|
+
merge_attributes(data)
|
53
|
+
true
|
54
|
+
end
|
55
|
+
|
56
|
+
def destroy
|
57
|
+
requires :identity
|
58
|
+
service.destroy_image(identity)
|
59
|
+
true
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|