fog-packet 1.0.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.
Files changed (232) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +51 -0
  3. data/.rubocop.yml +38 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE +21 -0
  6. data/README.md +1176 -0
  7. data/Rakefile +24 -0
  8. data/fog-packet.gemspec +24 -0
  9. data/lib/fog-packet.rb +26 -0
  10. data/lib/fog/compute/packet/compute.rb +313 -0
  11. data/lib/fog/compute/packet/models/bandwidth.rb +14 -0
  12. data/lib/fog/compute/packet/models/batch.rb +18 -0
  13. data/lib/fog/compute/packet/models/batches.rb +27 -0
  14. data/lib/fog/compute/packet/models/bgp_session.rb +35 -0
  15. data/lib/fog/compute/packet/models/bgp_sessions.rb +22 -0
  16. data/lib/fog/compute/packet/models/capacities.rb +27 -0
  17. data/lib/fog/compute/packet/models/capacity.rb +29 -0
  18. data/lib/fog/compute/packet/models/device.rb +136 -0
  19. data/lib/fog/compute/packet/models/devices.rb +22 -0
  20. data/lib/fog/compute/packet/models/email.rb +50 -0
  21. data/lib/fog/compute/packet/models/email_verification.rb +18 -0
  22. data/lib/fog/compute/packet/models/emails.rb +17 -0
  23. data/lib/fog/compute/packet/models/event.rb +23 -0
  24. data/lib/fog/compute/packet/models/events.rb +17 -0
  25. data/lib/fog/compute/packet/models/facilities.rb +17 -0
  26. data/lib/fog/compute/packet/models/facility.rb +22 -0
  27. data/lib/fog/compute/packet/models/hardware_reservation.rb +66 -0
  28. data/lib/fog/compute/packet/models/hardware_reservations.rb +22 -0
  29. data/lib/fog/compute/packet/models/invitation.rb +36 -0
  30. data/lib/fog/compute/packet/models/invitations.rb +22 -0
  31. data/lib/fog/compute/packet/models/ip.rb +60 -0
  32. data/lib/fog/compute/packet/models/ips.rb +22 -0
  33. data/lib/fog/compute/packet/models/license.rb +55 -0
  34. data/lib/fog/compute/packet/models/licenses.rb +22 -0
  35. data/lib/fog/compute/packet/models/membership.rb +38 -0
  36. data/lib/fog/compute/packet/models/memberships.rb +22 -0
  37. data/lib/fog/compute/packet/models/notification.rb +31 -0
  38. data/lib/fog/compute/packet/models/notifications.rb +22 -0
  39. data/lib/fog/compute/packet/models/operating_system.rb +23 -0
  40. data/lib/fog/compute/packet/models/operating_systems.rb +17 -0
  41. data/lib/fog/compute/packet/models/organization.rb +71 -0
  42. data/lib/fog/compute/packet/models/organizations.rb +22 -0
  43. data/lib/fog/compute/packet/models/payment_method.rb +63 -0
  44. data/lib/fog/compute/packet/models/payment_methods.rb +22 -0
  45. data/lib/fog/compute/packet/models/plan.rb +23 -0
  46. data/lib/fog/compute/packet/models/plans.rb +17 -0
  47. data/lib/fog/compute/packet/models/project.rb +47 -0
  48. data/lib/fog/compute/packet/models/projects.rb +22 -0
  49. data/lib/fog/compute/packet/models/session.rb +22 -0
  50. data/lib/fog/compute/packet/models/sessions.rb +26 -0
  51. data/lib/fog/compute/packet/models/snapshot.rb +33 -0
  52. data/lib/fog/compute/packet/models/snapshots.rb +22 -0
  53. data/lib/fog/compute/packet/models/spot_market_price.rb +15 -0
  54. data/lib/fog/compute/packet/models/spot_market_prices.rb +22 -0
  55. data/lib/fog/compute/packet/models/ssh_key.rb +51 -0
  56. data/lib/fog/compute/packet/models/ssh_keys.rb +22 -0
  57. data/lib/fog/compute/packet/models/transfer_request.rb +34 -0
  58. data/lib/fog/compute/packet/models/transfer_requests.rb +27 -0
  59. data/lib/fog/compute/packet/models/two_factor_auth.rb +18 -0
  60. data/lib/fog/compute/packet/models/user.rb +56 -0
  61. data/lib/fog/compute/packet/models/users.rb +22 -0
  62. data/lib/fog/compute/packet/models/virtual_network.rb +76 -0
  63. data/lib/fog/compute/packet/models/virtual_networks.rb +17 -0
  64. data/lib/fog/compute/packet/models/volume.rb +96 -0
  65. data/lib/fog/compute/packet/models/volumes.rb +23 -0
  66. data/lib/fog/compute/packet/models/vpn.rb +16 -0
  67. data/lib/fog/compute/packet/models/vpns.rb +27 -0
  68. data/lib/fog/compute/packet/requests/accept_invitation.rb +43 -0
  69. data/lib/fog/compute/packet/requests/accept_transfer_request.rb +26 -0
  70. data/lib/fog/compute/packet/requests/assign_ip.rb +32 -0
  71. data/lib/fog/compute/packet/requests/assign_port.rb +25 -0
  72. data/lib/fog/compute/packet/requests/attach_volume.rb +41 -0
  73. data/lib/fog/compute/packet/requests/bond_ports.rb +25 -0
  74. data/lib/fog/compute/packet/requests/create_batch.rb +43 -0
  75. data/lib/fog/compute/packet/requests/create_bgp_session.rb +37 -0
  76. data/lib/fog/compute/packet/requests/create_device.rb +212 -0
  77. data/lib/fog/compute/packet/requests/create_email.rb +38 -0
  78. data/lib/fog/compute/packet/requests/create_license.rb +46 -0
  79. data/lib/fog/compute/packet/requests/create_organization.rb +87 -0
  80. data/lib/fog/compute/packet/requests/create_payment_method.rb +63 -0
  81. data/lib/fog/compute/packet/requests/create_project.rb +72 -0
  82. data/lib/fog/compute/packet/requests/create_snapshot.rb +25 -0
  83. data/lib/fog/compute/packet/requests/create_ssh_key.rb +44 -0
  84. data/lib/fog/compute/packet/requests/create_virtual_network.rb +49 -0
  85. data/lib/fog/compute/packet/requests/create_volume.rb +70 -0
  86. data/lib/fog/compute/packet/requests/decline_invitation.rb +43 -0
  87. data/lib/fog/compute/packet/requests/decline_transfer_request.rb +26 -0
  88. data/lib/fog/compute/packet/requests/delete_bgp_session.rb +25 -0
  89. data/lib/fog/compute/packet/requests/delete_device.rb +25 -0
  90. data/lib/fog/compute/packet/requests/delete_email.rb +25 -0
  91. data/lib/fog/compute/packet/requests/delete_license.rb +25 -0
  92. data/lib/fog/compute/packet/requests/delete_membership.rb +25 -0
  93. data/lib/fog/compute/packet/requests/delete_organization.rb +25 -0
  94. data/lib/fog/compute/packet/requests/delete_payment_method.rb +25 -0
  95. data/lib/fog/compute/packet/requests/delete_project.rb +25 -0
  96. data/lib/fog/compute/packet/requests/delete_session.rb +27 -0
  97. data/lib/fog/compute/packet/requests/delete_snapshot.rb +25 -0
  98. data/lib/fog/compute/packet/requests/delete_ssh_key.rb +25 -0
  99. data/lib/fog/compute/packet/requests/delete_virtual_network.rb +25 -0
  100. data/lib/fog/compute/packet/requests/delete_volume.rb +25 -0
  101. data/lib/fog/compute/packet/requests/detach_volume.rb +36 -0
  102. data/lib/fog/compute/packet/requests/disable_two_factor_auth.rb +27 -0
  103. data/lib/fog/compute/packet/requests/disable_vpn.rb +25 -0
  104. data/lib/fog/compute/packet/requests/disbond_ports.rb +25 -0
  105. data/lib/fog/compute/packet/requests/enable_two_factor_auth.rb +26 -0
  106. data/lib/fog/compute/packet/requests/enable_vpn.rb +25 -0
  107. data/lib/fog/compute/packet/requests/get_bandwidth.rb +31 -0
  108. data/lib/fog/compute/packet/requests/get_batch.rb +38 -0
  109. data/lib/fog/compute/packet/requests/get_bgp_session.rb +37 -0
  110. data/lib/fog/compute/packet/requests/get_capacity.rb +165 -0
  111. data/lib/fog/compute/packet/requests/get_device.rb +189 -0
  112. data/lib/fog/compute/packet/requests/get_email.rb +32 -0
  113. data/lib/fog/compute/packet/requests/get_hardware_reservation.rb +193 -0
  114. data/lib/fog/compute/packet/requests/get_invitation.rb +43 -0
  115. data/lib/fog/compute/packet/requests/get_ip.rb +60 -0
  116. data/lib/fog/compute/packet/requests/get_license.rb +37 -0
  117. data/lib/fog/compute/packet/requests/get_membership.rb +40 -0
  118. data/lib/fog/compute/packet/requests/get_notification.rb +40 -0
  119. data/lib/fog/compute/packet/requests/get_organization.rb +61 -0
  120. data/lib/fog/compute/packet/requests/get_payment_method.rb +56 -0
  121. data/lib/fog/compute/packet/requests/get_project.rb +67 -0
  122. data/lib/fog/compute/packet/requests/get_ssh_key.rb +38 -0
  123. data/lib/fog/compute/packet/requests/get_transfer_request.rb +38 -0
  124. data/lib/fog/compute/packet/requests/get_user.rb +56 -0
  125. data/lib/fog/compute/packet/requests/get_volume.rb +60 -0
  126. data/lib/fog/compute/packet/requests/get_vpn.rb +29 -0
  127. data/lib/fog/compute/packet/requests/list_batches.rb +33 -0
  128. data/lib/fog/compute/packet/requests/list_bgp_sessions.rb +32 -0
  129. data/lib/fog/compute/packet/requests/list_devices.rb +33 -0
  130. data/lib/fog/compute/packet/requests/list_events.rb +33 -0
  131. data/lib/fog/compute/packet/requests/list_facilities.rb +57 -0
  132. data/lib/fog/compute/packet/requests/list_hardware_reservations.rb +216 -0
  133. data/lib/fog/compute/packet/requests/list_invitations.rb +48 -0
  134. data/lib/fog/compute/packet/requests/list_ips.rb +65 -0
  135. data/lib/fog/compute/packet/requests/list_licenses.rb +42 -0
  136. data/lib/fog/compute/packet/requests/list_memberships.rb +45 -0
  137. data/lib/fog/compute/packet/requests/list_notifications.rb +45 -0
  138. data/lib/fog/compute/packet/requests/list_operating_systems.rb +66 -0
  139. data/lib/fog/compute/packet/requests/list_organizations.rb +81 -0
  140. data/lib/fog/compute/packet/requests/list_payment_methods.rb +76 -0
  141. data/lib/fog/compute/packet/requests/list_plans.rb +92 -0
  142. data/lib/fog/compute/packet/requests/list_projects.rb +87 -0
  143. data/lib/fog/compute/packet/requests/list_sessions.rb +40 -0
  144. data/lib/fog/compute/packet/requests/list_snapshots.rb +40 -0
  145. data/lib/fog/compute/packet/requests/list_spotmarketprices.rb +173 -0
  146. data/lib/fog/compute/packet/requests/list_spotmarketprices_history.rb +42 -0
  147. data/lib/fog/compute/packet/requests/list_ssh_keys.rb +50 -0
  148. data/lib/fog/compute/packet/requests/list_transfer_requests.rb +43 -0
  149. data/lib/fog/compute/packet/requests/list_users.rb +61 -0
  150. data/lib/fog/compute/packet/requests/list_virtual_networks.rb +62 -0
  151. data/lib/fog/compute/packet/requests/list_volumes.rb +65 -0
  152. data/lib/fog/compute/packet/requests/move_hardware_reservation.rb +43 -0
  153. data/lib/fog/compute/packet/requests/poweroff_device.rb +194 -0
  154. data/lib/fog/compute/packet/requests/poweron_device.rb +194 -0
  155. data/lib/fog/compute/packet/requests/reboot_device.rb +194 -0
  156. data/lib/fog/compute/packet/requests/request_email_verification.rb +25 -0
  157. data/lib/fog/compute/packet/requests/reserve_ip.rb +37 -0
  158. data/lib/fog/compute/packet/requests/session_login.rb +25 -0
  159. data/lib/fog/compute/packet/requests/transfer_project.rb +43 -0
  160. data/lib/fog/compute/packet/requests/unassign_ip.rb +24 -0
  161. data/lib/fog/compute/packet/requests/unassign_port.rb +25 -0
  162. data/lib/fog/compute/packet/requests/update_device.rb +201 -0
  163. data/lib/fog/compute/packet/requests/update_email.rb +37 -0
  164. data/lib/fog/compute/packet/requests/update_license.rb +42 -0
  165. data/lib/fog/compute/packet/requests/update_membership.rb +43 -0
  166. data/lib/fog/compute/packet/requests/update_notification.rb +40 -0
  167. data/lib/fog/compute/packet/requests/update_organization.rb +85 -0
  168. data/lib/fog/compute/packet/requests/update_payment_method.rb +63 -0
  169. data/lib/fog/compute/packet/requests/update_project.rb +71 -0
  170. data/lib/fog/compute/packet/requests/update_ssh_key.rb +43 -0
  171. data/lib/fog/compute/packet/requests/update_user.rb +65 -0
  172. data/lib/fog/compute/packet/requests/update_volume.rb +66 -0
  173. data/lib/fog/compute/packet/requests/validate_capacity.rb +38 -0
  174. data/lib/fog/compute/packet/requests/verify_email.rb +36 -0
  175. data/tests/packet/models/test_batches.rb +45 -0
  176. data/tests/packet/models/test_bgp_sessions.rb +52 -0
  177. data/tests/packet/models/test_capacity.rb +40 -0
  178. data/tests/packet/models/test_devices.rb +93 -0
  179. data/tests/packet/models/test_email_verification.rb +25 -0
  180. data/tests/packet/models/test_emails.rb +45 -0
  181. data/tests/packet/models/test_facilities.rb +18 -0
  182. data/tests/packet/models/test_hardware_reservations.rb +38 -0
  183. data/tests/packet/models/test_invitations.rb +41 -0
  184. data/tests/packet/models/test_ips.rb +52 -0
  185. data/tests/packet/models/test_licenses.rb +56 -0
  186. data/tests/packet/models/test_memberships.rb +41 -0
  187. data/tests/packet/models/test_notifications.rb +35 -0
  188. data/tests/packet/models/test_operating_systems.rb +19 -0
  189. data/tests/packet/models/test_organizations.rb +67 -0
  190. data/tests/packet/models/test_payment_methods.rb +61 -0
  191. data/tests/packet/models/test_plans.rb +19 -0
  192. data/tests/packet/models/test_projects.rb +41 -0
  193. data/tests/packet/models/test_sessions.rb +34 -0
  194. data/tests/packet/models/test_snapshots.rb +43 -0
  195. data/tests/packet/models/test_spotmarketprices.rb +28 -0
  196. data/tests/packet/models/test_ssh_keys.rb +58 -0
  197. data/tests/packet/models/test_transfer_requests.rb +49 -0
  198. data/tests/packet/models/test_two_factor_auth.rb +29 -0
  199. data/tests/packet/models/test_users.rb +47 -0
  200. data/tests/packet/models/test_virtual_networks.rb +81 -0
  201. data/tests/packet/models/test_volumes.rb +70 -0
  202. data/tests/packet/models/test_vpns.rb +37 -0
  203. data/tests/packet/requests/test_batches.rb +45 -0
  204. data/tests/packet/requests/test_bgp_sessions.rb +64 -0
  205. data/tests/packet/requests/test_capacity.rb +40 -0
  206. data/tests/packet/requests/test_devices.rb +104 -0
  207. data/tests/packet/requests/test_email_verification.rb +25 -0
  208. data/tests/packet/requests/test_emails.rb +51 -0
  209. data/tests/packet/requests/test_facilities.rb +19 -0
  210. data/tests/packet/requests/test_hardware_reservations.rb +38 -0
  211. data/tests/packet/requests/test_invitations.rb +40 -0
  212. data/tests/packet/requests/test_ips.rb +66 -0
  213. data/tests/packet/requests/test_licenses.rb +56 -0
  214. data/tests/packet/requests/test_memberships.rb +43 -0
  215. data/tests/packet/requests/test_notifications.rb +40 -0
  216. data/tests/packet/requests/test_operating_systems.rb +19 -0
  217. data/tests/packet/requests/test_organizations.rb +64 -0
  218. data/tests/packet/requests/test_payment_methods.rb +60 -0
  219. data/tests/packet/requests/test_plans.rb +21 -0
  220. data/tests/packet/requests/test_projects.rb +40 -0
  221. data/tests/packet/requests/test_sessions.rb +34 -0
  222. data/tests/packet/requests/test_snapshots.rb +57 -0
  223. data/tests/packet/requests/test_sportmarketprices.rb +29 -0
  224. data/tests/packet/requests/test_ssh_keys.rb +60 -0
  225. data/tests/packet/requests/test_transfer_requests.rb +46 -0
  226. data/tests/packet/requests/test_two_factor_auth.rb +29 -0
  227. data/tests/packet/requests/test_users.rb +48 -0
  228. data/tests/packet/requests/test_virtual_networks.rb +100 -0
  229. data/tests/packet/requests/test_volumes.rb +95 -0
  230. data/tests/packet/requests/test_vpns.rb +38 -0
  231. data/tests/test_helper.rb +4 -0
  232. metadata +345 -0
@@ -0,0 +1,22 @@
1
+ require_relative "spot_market_price"
2
+
3
+ module Fog
4
+ module Compute
5
+ class Packet
6
+ # Volumes
7
+ class SpotMarketPrices < Fog::Collection
8
+ model Fog::Compute::Packet::SpotMarketPrice
9
+
10
+ def all
11
+ response = service.list_spotmarketprices
12
+ new(response.body)
13
+ end
14
+
15
+ def get(facility, plan)
16
+ response = service.list_spotmarketprices_history(facility, plan)
17
+ new(response.body)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,51 @@
1
+ module Fog
2
+ module Compute
3
+ class Packet
4
+ # SshKey
5
+ class SshKey < Fog::Model
6
+ identity :id
7
+
8
+ attribute :label
9
+ attribute :key
10
+ attribute :fingerprint
11
+ attribute :created_at
12
+ attribute :updated_at
13
+ attribute :owner
14
+ attribute :href
15
+
16
+ attr_accessor :options
17
+
18
+ def initialize(attributes = {})
19
+ super
20
+ end
21
+
22
+ def save
23
+ requires :label, :key
24
+
25
+ options = {}
26
+ options[:label] = label
27
+ options[:key] = key
28
+ response = service.create_ssh_key(options)
29
+ merge_attributes(response.body)
30
+ end
31
+
32
+ def update
33
+ requires :id
34
+
35
+ options = {}
36
+ options[:label] = label
37
+ options[:key] = key
38
+ response = service.update_ssh_key(id, options)
39
+ merge_attributes(response.body)
40
+ end
41
+
42
+ def destroy
43
+ requires :id
44
+
45
+ response = service.delete_ssh_key(id)
46
+ true if response.status == 204
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,22 @@
1
+ require_relative "ssh_key"
2
+
3
+ module Fog
4
+ module Compute
5
+ class Packet
6
+ # SshKeys Collection
7
+ class SshKeys < Fog::Collection
8
+ model Fog::Compute::Packet::SshKey
9
+
10
+ def all(project_id = "", include = "")
11
+ response = service.list_ssh_keys(project_id, include)
12
+ load(response.body["ssh_keys"])
13
+ end
14
+
15
+ def get(id)
16
+ response = service.get_ssh_key(id)
17
+ new(response.body)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,34 @@
1
+ module Fog
2
+ module Compute
3
+ class Packet
4
+ # TransferRequest Model
5
+ class TransferRequest < Fog::Model
6
+ identity :id
7
+
8
+ attribute :target_organization
9
+ attribute :state
10
+ attribute :created_at
11
+ attribute :updated_at
12
+ attribute :href
13
+
14
+ def initialize(attributes = {})
15
+ super
16
+ end
17
+
18
+ def accept
19
+ requires :id
20
+
21
+ response = service.accept_transfer_request(id)
22
+ true if response.status == 204
23
+ end
24
+
25
+ def decline
26
+ requires :id
27
+
28
+ response = service.decline_transfer_request(id)
29
+ true if response.status == 204
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,27 @@
1
+ require_relative "transfer_request"
2
+
3
+ module Fog
4
+ module Compute
5
+ class Packet
6
+ # TransferRequests Collection
7
+ class TransferRequests < Fog::Collection
8
+ model Fog::Compute::Packet::TransferRequest
9
+
10
+ def all(organization_id, params = {})
11
+ response = service.list_transfer_requests(organization_id, params)
12
+ load(response.body["transfers"])
13
+ end
14
+
15
+ def get(id)
16
+ response = service.get_transfer_request(id)
17
+ new(response.body)
18
+ end
19
+
20
+ def transfer(project_id, organization_id)
21
+ response = service.transfer_project(project_id, organization_id)
22
+ new(response.body)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,18 @@
1
+ module Fog
2
+ module Compute
3
+ class Packet
4
+ # TwoFactorAuth Collection
5
+ class TwoFactorAuth < Fog::Collection
6
+ def enable(type)
7
+ response = service.enable_two_factor_auth(type)
8
+ true if response.status == 200
9
+ end
10
+
11
+ def disable(type)
12
+ response = service.disable_two_factor_auth(type)
13
+ true if response.status == 204
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,56 @@
1
+ module Fog
2
+ module Compute
3
+ class Packet
4
+ # User
5
+ class User < Fog::Model
6
+ identity :id
7
+
8
+ attribute :short_id
9
+ attribute :first_name
10
+ attribute :last_name
11
+ attribute :full_name
12
+ attribute :email
13
+ attribute :social_accounts
14
+ attribute :created_at
15
+ attribute :updated_at
16
+ attribute :default_organization_id
17
+ attribute :avatar_url
18
+ attribute :avatar_thumb_url
19
+ attribute :timezone
20
+ attribute :verification_stage
21
+ attribute :two_factor_auth
22
+ attribute :max_projects
23
+ attribute :vpn
24
+ attribute :last_login_at
25
+ attribute :emails
26
+ attribute :href
27
+ attribute :phone_number
28
+ attribute :restricted
29
+ attribute :avatar
30
+ attribute :password
31
+
32
+ attr_accessor :options
33
+
34
+ def initialize(attributes = {})
35
+ super
36
+ end
37
+
38
+ def update
39
+ requires :id
40
+
41
+ options = {}
42
+ options[:first_name] = first_name if first_name
43
+ options[:last_name] = last_name if last_name
44
+ options[:phone_number] = phone_number if phone_number
45
+ options[:timezone] = timezone if timezone
46
+ options[:password] = password if password
47
+ options[:avatar] = avatar if avatar
48
+
49
+ response = service.update_user(id, options)
50
+
51
+ merge_attributes(response.body)
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,22 @@
1
+ require_relative "user"
2
+
3
+ module Fog
4
+ module Compute
5
+ class Packet
6
+ # Projects Collection
7
+ class Users < Fog::Collection
8
+ model Fog::Compute::Packet::User
9
+
10
+ def all(params = {})
11
+ response = service.list_users(params)
12
+ load(response.body["users"])
13
+ end
14
+
15
+ def get(id = "")
16
+ response = service.get_user(id)
17
+ new(response.body)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,76 @@
1
+ module Fog
2
+ module Compute
3
+ class Packet
4
+ # Plan
5
+ class VirtualNetwork < Fog::Model
6
+ identity :id
7
+
8
+ attribute :name
9
+ attribute :description
10
+ attribute :vxlan
11
+ attribute :created_at
12
+ attribute :internet_gateway
13
+ attribute :facility
14
+ attribute :instances
15
+ attribute :assigned_to
16
+ attribute :facility_code
17
+ attribute :href
18
+ attribute :vlan
19
+ attribute :project_id
20
+
21
+ attr_accessor :options
22
+
23
+ def initialize(attributes = {})
24
+ super
25
+ end
26
+
27
+ def save
28
+ requires :project_id, :description, :facility, :vxlan, :vlan
29
+
30
+ options = {}
31
+ options [:project_id] = project_id
32
+ options[:description] = description
33
+ options[:facility] = facility
34
+ options[:vxlan] = vxlan
35
+ options[:vxlan] = vlan
36
+ options[:name] = name if name
37
+
38
+ response = service.create_virtual_network(options)
39
+ merge_attributes(response.body)
40
+ end
41
+
42
+ def bond(bulk_enable)
43
+ requires :id
44
+ response = service.bond_ports(id, bulk_enable)
45
+ true if response.status == 200
46
+ end
47
+
48
+ def disbond(bulk_disable)
49
+ requires :id
50
+ response = service.disbond_ports(id, bulk_disable)
51
+ true if response.status == 200
52
+ end
53
+
54
+ def assign_port(port_id)
55
+ requires :id
56
+
57
+ response = service.assign_port(port_id, id)
58
+ true if response.status == 200
59
+ end
60
+
61
+ def unassign_port(port_id)
62
+ requires :id
63
+
64
+ response = service.unassign_port(port_id, id)
65
+ true if response.status == 200
66
+ end
67
+
68
+ def destroy
69
+ requires :id
70
+ response = service.delete_virtual_network(id)
71
+ true if response.status == 204
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,17 @@
1
+ require_relative "virtual_network"
2
+
3
+ module Fog
4
+ module Compute
5
+ class Packet
6
+ # Plans
7
+ class VirtualNetworks < Fog::Collection
8
+ model Fog::Compute::Packet::VirtualNetwork
9
+
10
+ def all(project_id, params = {})
11
+ response = service.list_virtual_networks(project_id, params)
12
+ load(response.body["virtual_networks"])
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,96 @@
1
+ module Fog
2
+ module Compute
3
+ class Packet
4
+ # Volume Model
5
+ class Volume < Fog::Model
6
+ identity :id
7
+
8
+ attribute :name
9
+ attribute :description
10
+ attribute :size
11
+ attribute :locked
12
+ attribute :billing_cycle
13
+ attribute :state
14
+ attribute :created_at
15
+ attribute :updated_at
16
+ attribute :access
17
+ attribute :project
18
+ attribute :facility
19
+ attribute :snapshot_policies
20
+ attribute :attachments
21
+ attribute :snapshots
22
+ attribute :plan
23
+ attribute :spot_price_max
24
+ attribute :termination_time
25
+ attribute :href
26
+ attribute :project_id
27
+
28
+ def initialize(attributes = {})
29
+ super
30
+ end
31
+
32
+ def save
33
+ requires :project_id, :facility, :plan, :size
34
+
35
+ options = {}
36
+ options[:size] = size
37
+ options[:facility] = facility
38
+ options[:plan] = plan
39
+ options[:description] = description if description
40
+ options[:billing_cycle] = billing_cycle if billing_cycle
41
+ options[:snapshot_policies] = snapshot_policies if snapshot_policies
42
+
43
+ response = service.create_volume(project_id, options)
44
+ merge_attributes(response.body)
45
+ end
46
+
47
+ def update
48
+ requires :id
49
+
50
+ options = {}
51
+ options[:description] = description if description
52
+ options[:billing_cycle] = billing_cycle if billing_cycle
53
+ options[:size] = size if size
54
+ options[:locked] = locked if locked
55
+
56
+ response = service.update_volume(id, options)
57
+ merge_attributes(response.body)
58
+ end
59
+
60
+ def attach(device_id)
61
+ requires :id
62
+
63
+ response = service.attach_volume(id, device_id)
64
+ merge_attributes(response.body)
65
+ end
66
+
67
+ def detach
68
+ requires :id
69
+
70
+ response = service.detach_volume(id)
71
+ true if response.status == 204
72
+ end
73
+
74
+ def destroy
75
+ requires :id
76
+
77
+ response = service.delete_volume(id)
78
+ true if response.status == 204
79
+ end
80
+
81
+ def reload
82
+ requires :id
83
+
84
+ data = service.get_volume(id)
85
+
86
+ return unless data.body
87
+ merge_attributes(data.body)
88
+ end
89
+
90
+ def ready?
91
+ state == "active"
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end