fog-brightbox 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +7 -0
  2. data/fog-brightbox.gemspec +28 -0
  3. data/lib/fog/brightbox/compute/image_selector.rb +45 -0
  4. data/lib/fog/brightbox/compute/shared.rb +230 -0
  5. data/lib/fog/brightbox/compute.rb +305 -0
  6. data/lib/fog/brightbox/core.rb +11 -0
  7. data/lib/fog/brightbox/models/compute/account.rb +69 -0
  8. data/lib/fog/brightbox/models/compute/accounts.rb +29 -0
  9. data/lib/fog/brightbox/models/compute/api_client.rb +37 -0
  10. data/lib/fog/brightbox/models/compute/api_clients.rb +24 -0
  11. data/lib/fog/brightbox/models/compute/application.rb +24 -0
  12. data/lib/fog/brightbox/models/compute/applications.rb +28 -0
  13. data/lib/fog/brightbox/models/compute/cloud_ip.rb +68 -0
  14. data/lib/fog/brightbox/models/compute/cloud_ips.rb +34 -0
  15. data/lib/fog/brightbox/models/compute/collaboration.rb +49 -0
  16. data/lib/fog/brightbox/models/compute/collaborations.rb +47 -0
  17. data/lib/fog/brightbox/models/compute/database_server.rb +97 -0
  18. data/lib/fog/brightbox/models/compute/database_servers.rb +28 -0
  19. data/lib/fog/brightbox/models/compute/database_snapshot.rb +52 -0
  20. data/lib/fog/brightbox/models/compute/database_snapshots.rb +24 -0
  21. data/lib/fog/brightbox/models/compute/database_type.rb +19 -0
  22. data/lib/fog/brightbox/models/compute/database_types.rb +26 -0
  23. data/lib/fog/brightbox/models/compute/firewall_policies.rb +29 -0
  24. data/lib/fog/brightbox/models/compute/firewall_policy.rb +63 -0
  25. data/lib/fog/brightbox/models/compute/firewall_rule.rb +54 -0
  26. data/lib/fog/brightbox/models/compute/firewall_rules.rb +24 -0
  27. data/lib/fog/brightbox/models/compute/flavor.rb +32 -0
  28. data/lib/fog/brightbox/models/compute/flavors.rb +28 -0
  29. data/lib/fog/brightbox/models/compute/image.rb +64 -0
  30. data/lib/fog/brightbox/models/compute/images.rb +28 -0
  31. data/lib/fog/brightbox/models/compute/load_balancer.rb +107 -0
  32. data/lib/fog/brightbox/models/compute/load_balancers.rb +28 -0
  33. data/lib/fog/brightbox/models/compute/server.rb +217 -0
  34. data/lib/fog/brightbox/models/compute/server_group.rb +94 -0
  35. data/lib/fog/brightbox/models/compute/server_groups.rb +29 -0
  36. data/lib/fog/brightbox/models/compute/servers.rb +61 -0
  37. data/lib/fog/brightbox/models/compute/user.rb +43 -0
  38. data/lib/fog/brightbox/models/compute/user_collaboration.rb +44 -0
  39. data/lib/fog/brightbox/models/compute/user_collaborations.rb +31 -0
  40. data/lib/fog/brightbox/models/compute/users.rb +27 -0
  41. data/lib/fog/brightbox/models/compute/zone.rb +22 -0
  42. data/lib/fog/brightbox/models/compute/zones.rb +29 -0
  43. data/lib/fog/brightbox/oauth2.rb +166 -0
  44. data/lib/fog/brightbox/requests/compute/accept_user_collaboration.rb +21 -0
  45. data/lib/fog/brightbox/requests/compute/activate_console_server.rb +21 -0
  46. data/lib/fog/brightbox/requests/compute/add_listeners_load_balancer.rb +24 -0
  47. data/lib/fog/brightbox/requests/compute/add_nodes_load_balancer.rb +24 -0
  48. data/lib/fog/brightbox/requests/compute/add_servers_server_group.rb +34 -0
  49. data/lib/fog/brightbox/requests/compute/apply_to_firewall_policy.rb +24 -0
  50. data/lib/fog/brightbox/requests/compute/create_api_client.rb +23 -0
  51. data/lib/fog/brightbox/requests/compute/create_application.rb +23 -0
  52. data/lib/fog/brightbox/requests/compute/create_cloud_ip.rb +24 -0
  53. data/lib/fog/brightbox/requests/compute/create_collaboration.rb +23 -0
  54. data/lib/fog/brightbox/requests/compute/create_database_server.rb +25 -0
  55. data/lib/fog/brightbox/requests/compute/create_firewall_policy.rb +26 -0
  56. data/lib/fog/brightbox/requests/compute/create_firewall_rule.rb +29 -0
  57. data/lib/fog/brightbox/requests/compute/create_image.rb +30 -0
  58. data/lib/fog/brightbox/requests/compute/create_load_balancer.rb +26 -0
  59. data/lib/fog/brightbox/requests/compute/create_server.rb +29 -0
  60. data/lib/fog/brightbox/requests/compute/create_server_group.rb +23 -0
  61. data/lib/fog/brightbox/requests/compute/delete_api_client.rb +28 -0
  62. data/lib/fog/brightbox/requests/compute/delete_application.rb +28 -0
  63. data/lib/fog/brightbox/requests/compute/delete_cloud_ip.rb +28 -0
  64. data/lib/fog/brightbox/requests/compute/delete_collaboration.rb +28 -0
  65. data/lib/fog/brightbox/requests/compute/delete_database_server.rb +26 -0
  66. data/lib/fog/brightbox/requests/compute/delete_database_snapshot.rb +26 -0
  67. data/lib/fog/brightbox/requests/compute/delete_firewall_policy.rb +28 -0
  68. data/lib/fog/brightbox/requests/compute/delete_firewall_rule.rb +28 -0
  69. data/lib/fog/brightbox/requests/compute/delete_image.rb +28 -0
  70. data/lib/fog/brightbox/requests/compute/delete_load_balancer.rb +28 -0
  71. data/lib/fog/brightbox/requests/compute/delete_server.rb +28 -0
  72. data/lib/fog/brightbox/requests/compute/delete_server_group.rb +28 -0
  73. data/lib/fog/brightbox/requests/compute/delete_user_collaboration.rb +28 -0
  74. data/lib/fog/brightbox/requests/compute/get_account.rb +29 -0
  75. data/lib/fog/brightbox/requests/compute/get_api_client.rb +21 -0
  76. data/lib/fog/brightbox/requests/compute/get_application.rb +21 -0
  77. data/lib/fog/brightbox/requests/compute/get_authenticated_user.rb +17 -0
  78. data/lib/fog/brightbox/requests/compute/get_cloud_ip.rb +21 -0
  79. data/lib/fog/brightbox/requests/compute/get_collaboration.rb +21 -0
  80. data/lib/fog/brightbox/requests/compute/get_database_server.rb +19 -0
  81. data/lib/fog/brightbox/requests/compute/get_database_snapshot.rb +19 -0
  82. data/lib/fog/brightbox/requests/compute/get_database_type.rb +21 -0
  83. data/lib/fog/brightbox/requests/compute/get_firewall_policy.rb +21 -0
  84. data/lib/fog/brightbox/requests/compute/get_firewall_rule.rb +21 -0
  85. data/lib/fog/brightbox/requests/compute/get_image.rb +21 -0
  86. data/lib/fog/brightbox/requests/compute/get_interface.rb +21 -0
  87. data/lib/fog/brightbox/requests/compute/get_load_balancer.rb +21 -0
  88. data/lib/fog/brightbox/requests/compute/get_scoped_account.rb +15 -0
  89. data/lib/fog/brightbox/requests/compute/get_server.rb +21 -0
  90. data/lib/fog/brightbox/requests/compute/get_server_group.rb +21 -0
  91. data/lib/fog/brightbox/requests/compute/get_server_type.rb +21 -0
  92. data/lib/fog/brightbox/requests/compute/get_user.rb +29 -0
  93. data/lib/fog/brightbox/requests/compute/get_user_collaboration.rb +21 -0
  94. data/lib/fog/brightbox/requests/compute/get_zone.rb +21 -0
  95. data/lib/fog/brightbox/requests/compute/list_accounts.rb +17 -0
  96. data/lib/fog/brightbox/requests/compute/list_api_clients.rb +19 -0
  97. data/lib/fog/brightbox/requests/compute/list_applications.rb +19 -0
  98. data/lib/fog/brightbox/requests/compute/list_cloud_ips.rb +19 -0
  99. data/lib/fog/brightbox/requests/compute/list_collaborations.rb +19 -0
  100. data/lib/fog/brightbox/requests/compute/list_database_servers.rb +17 -0
  101. data/lib/fog/brightbox/requests/compute/list_database_snapshots.rb +17 -0
  102. data/lib/fog/brightbox/requests/compute/list_database_types.rb +19 -0
  103. data/lib/fog/brightbox/requests/compute/list_firewall_policies.rb +19 -0
  104. data/lib/fog/brightbox/requests/compute/list_images.rb +19 -0
  105. data/lib/fog/brightbox/requests/compute/list_load_balancers.rb +19 -0
  106. data/lib/fog/brightbox/requests/compute/list_server_groups.rb +19 -0
  107. data/lib/fog/brightbox/requests/compute/list_server_types.rb +19 -0
  108. data/lib/fog/brightbox/requests/compute/list_servers.rb +19 -0
  109. data/lib/fog/brightbox/requests/compute/list_user_collaborations.rb +19 -0
  110. data/lib/fog/brightbox/requests/compute/list_users.rb +19 -0
  111. data/lib/fog/brightbox/requests/compute/list_zones.rb +19 -0
  112. data/lib/fog/brightbox/requests/compute/map_cloud_ip.rb +24 -0
  113. data/lib/fog/brightbox/requests/compute/move_servers_server_group.rb +36 -0
  114. data/lib/fog/brightbox/requests/compute/reject_user_collaboration.rb +21 -0
  115. data/lib/fog/brightbox/requests/compute/remove_firewall_policy.rb +24 -0
  116. data/lib/fog/brightbox/requests/compute/remove_listeners_load_balancer.rb +24 -0
  117. data/lib/fog/brightbox/requests/compute/remove_nodes_load_balancer.rb +24 -0
  118. data/lib/fog/brightbox/requests/compute/remove_servers_server_group.rb +34 -0
  119. data/lib/fog/brightbox/requests/compute/resend_collaboration.rb +21 -0
  120. data/lib/fog/brightbox/requests/compute/reset_ftp_password_account.rb +32 -0
  121. data/lib/fog/brightbox/requests/compute/reset_ftp_password_scoped_account.rb +18 -0
  122. data/lib/fog/brightbox/requests/compute/reset_password_database_server.rb +19 -0
  123. data/lib/fog/brightbox/requests/compute/reset_secret_api_client.rb +25 -0
  124. data/lib/fog/brightbox/requests/compute/reset_secret_application.rb +21 -0
  125. data/lib/fog/brightbox/requests/compute/shutdown_server.rb +21 -0
  126. data/lib/fog/brightbox/requests/compute/snapshot_database_server.rb +19 -0
  127. data/lib/fog/brightbox/requests/compute/snapshot_server.rb +21 -0
  128. data/lib/fog/brightbox/requests/compute/start_server.rb +21 -0
  129. data/lib/fog/brightbox/requests/compute/stop_server.rb +21 -0
  130. data/lib/fog/brightbox/requests/compute/unmap_cloud_ip.rb +21 -0
  131. data/lib/fog/brightbox/requests/compute/update_account.rb +61 -0
  132. data/lib/fog/brightbox/requests/compute/update_api_client.rb +26 -0
  133. data/lib/fog/brightbox/requests/compute/update_application.rb +26 -0
  134. data/lib/fog/brightbox/requests/compute/update_cloud_ip.rb +27 -0
  135. data/lib/fog/brightbox/requests/compute/update_database_server.rb +25 -0
  136. data/lib/fog/brightbox/requests/compute/update_database_snapshot.rb +26 -0
  137. data/lib/fog/brightbox/requests/compute/update_firewall_policy.rb +26 -0
  138. data/lib/fog/brightbox/requests/compute/update_firewall_rule.rb +31 -0
  139. data/lib/fog/brightbox/requests/compute/update_image.rb +31 -0
  140. data/lib/fog/brightbox/requests/compute/update_load_balancer.rb +29 -0
  141. data/lib/fog/brightbox/requests/compute/update_scoped_account.rb +31 -0
  142. data/lib/fog/brightbox/requests/compute/update_server.rb +28 -0
  143. data/lib/fog/brightbox/requests/compute/update_server_group.rb +26 -0
  144. data/lib/fog/brightbox/requests/compute/update_user.rb +29 -0
  145. data/lib/fog/brightbox/version.rb +5 -0
  146. data/lib/fog/brightbox.rb +1 -0
  147. 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