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
data/Rakefile ADDED
@@ -0,0 +1,24 @@
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+
4
+ task :default => :travis
5
+ task :travis => ["test", "test:travis"]
6
+ task :console do
7
+ exec "pry -r fog/packet -I ./lib"
8
+ end
9
+
10
+ Rake::TestTask.new do |t|
11
+ t.libs.push %w[spec]
12
+ t.test_files = FileList["tests/**/**/**.rb"]
13
+ t.verbose = true
14
+ end
15
+
16
+ namespace :test do
17
+ mock = ENV["FOG_MOCK"] || "true"
18
+ task :travis do
19
+ sh("export FOG_MOCK=#{mock} && bundle exec minitest")
20
+ end
21
+ end
22
+
23
+ desc "Default Task"
24
+ task :default => [:test]
@@ -0,0 +1,24 @@
1
+ lib = File.expand_path("../lib", __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+
4
+ Gem::Specification.new do |spec|
5
+ spec.name = "fog-packet"
6
+ spec.version = "1.0.0"
7
+ spec.authors = ["Jasmin Gacic"]
8
+ spec.email = "jasmin@stackpointcloud.com"
9
+ spec.summary = "Module for the 'fog' gem to support Packet."
10
+ spec.description = "This library can be used as a module for 'fog' or as
11
+ a standalone 1and1 provider."
12
+ spec.homepage = "https://github.com/StackPointCloud/fog-packet"
13
+ spec.license = "MIT"
14
+
15
+ spec.files = `git ls-files -z`.split("\x0")
16
+ spec.require_paths = ["lib"]
17
+
18
+ spec.add_runtime_dependency "fog-core"
19
+ spec.add_runtime_dependency "fog-json"
20
+ spec.add_development_dependency "minitest"
21
+ spec.add_development_dependency "pry", "~> 0.10"
22
+ spec.add_development_dependency "rubocop" if RUBY_VERSION >= "2.0.0"
23
+
24
+ end
data/lib/fog-packet.rb ADDED
@@ -0,0 +1,26 @@
1
+ # necessary when requiring fog without rubygems while also
2
+ # maintaining ruby 1.8.7 support (can't use require_relative)
3
+ __LIB_DIR__ = __dir__
4
+ $LOAD_PATH.unshift __LIB_DIR__ unless $LOAD_PATH.include?(__LIB_DIR__)
5
+
6
+ # Fog-OneAndOne Core Dependencies
7
+ require "fog/core"
8
+ require "fog/json"
9
+
10
+ module Fog
11
+ # Compute
12
+ module Compute
13
+ autoload :Packet, File.expand_path("../fog/compute/packet/compute", __FILE__)
14
+ end
15
+
16
+ # Models
17
+ module Models
18
+ end
19
+
20
+ # Packet
21
+ module Packet
22
+ extend Fog::Provider
23
+
24
+ service(:compute, "Compute")
25
+ end
26
+ end
@@ -0,0 +1,313 @@
1
+ module Fog
2
+ module Compute
3
+ # Packet
4
+ class Packet < Fog::Service
5
+ API_VERSION = "v1".freeze
6
+
7
+ SUCCESS_CODES = [200, 201, 202, 204].freeze
8
+
9
+ recognizes :packet_token
10
+
11
+ recognizes :packet_url
12
+
13
+ # Models
14
+ model_path "fog/compute/packet/models"
15
+
16
+ model :plan
17
+ collection :plans
18
+
19
+ model :project
20
+ collection :projects
21
+
22
+ model :facility
23
+ collection :facilities
24
+
25
+ model :device
26
+ collection :devices
27
+
28
+ model :project
29
+ collection :projects
30
+
31
+ model :operating_system
32
+ collection :operating_systems
33
+
34
+ model :ip
35
+ collection :ips
36
+
37
+ model :snapshot
38
+ collection :snapshots
39
+
40
+ model :volume
41
+ collection :volumes
42
+
43
+ model :virtual_network
44
+ collection :virtual_networks
45
+
46
+ model :ssh_key
47
+ collection :ssh_keys
48
+
49
+ model :email
50
+ collection :emails
51
+
52
+ model :user
53
+ collection :users
54
+
55
+ model :vpn
56
+ collection :vpns
57
+
58
+ model :spot_market_price
59
+ collection :spot_market_prices
60
+
61
+ model :batch
62
+ collection :batches
63
+
64
+ model :bgp_session
65
+ collection :bgp_sessions
66
+
67
+ model :event
68
+ collection :events
69
+
70
+ collection :two_factor_auth
71
+
72
+ model :session
73
+ collection :sessions
74
+
75
+ model :notification
76
+ collection :notifications
77
+
78
+ model :invitation
79
+ collection :invitations
80
+
81
+ collection :email_verification
82
+ collection :bandwidth
83
+
84
+ model :license
85
+ collection :licenses
86
+
87
+ model :membership
88
+ collection :memberships
89
+
90
+ model :organization
91
+ collection :organizations
92
+
93
+ model :capacity
94
+ collection :capacities
95
+
96
+ model :payment_method
97
+ collection :payment_methods
98
+
99
+ model :transfer_request
100
+ collection :transfer_requests
101
+
102
+ model :hardware_reservation
103
+ collection :hardware_reservations
104
+
105
+ # Requests
106
+ request_path "fog/compute/packet/requests"
107
+
108
+ request :list_plans
109
+ request :list_projects
110
+ request :get_project
111
+ request :create_project
112
+ request :delete_project
113
+ request :list_facilities
114
+ request :list_operating_systems
115
+
116
+ request :create_device
117
+ request :list_devices
118
+ request :get_device
119
+ request :delete_device
120
+ request :update_device
121
+ request :reboot_device
122
+ request :poweron_device
123
+ request :poweroff_device
124
+
125
+ request :get_volume
126
+ request :create_volume
127
+ request :list_volumes
128
+ request :delete_volume
129
+ request :attach_volume
130
+ request :detach_volume
131
+ request :update_volume
132
+
133
+ request :reserve_ip
134
+ request :get_ip
135
+ request :list_ips
136
+ request :assign_ip
137
+ request :unassign_ip
138
+ request :create_snapshot
139
+ request :delete_snapshot
140
+ request :list_snapshots
141
+
142
+ request :create_virtual_network
143
+ request :list_virtual_networks
144
+ request :delete_virtual_network
145
+ request :assign_port
146
+ request :unassign_port
147
+ request :disbond_ports
148
+ request :bond_ports
149
+
150
+ request :list_ssh_keys
151
+ request :create_ssh_key
152
+ request :get_ssh_key
153
+ request :delete_ssh_key
154
+ request :update_ssh_key
155
+
156
+ request :create_email
157
+ request :get_email
158
+ request :update_email
159
+ request :delete_email
160
+
161
+ request :list_users
162
+ request :get_user
163
+ request :update_user
164
+
165
+ request :enable_vpn
166
+ request :disable_vpn
167
+ request :get_vpn
168
+
169
+ request :list_spotmarketprices
170
+ request :list_spotmarketprices_history
171
+
172
+ request :list_batches
173
+ request :get_batch
174
+ request :create_batch
175
+
176
+ request :create_bgp_session
177
+ request :delete_bgp_session
178
+ request :get_bgp_session
179
+ request :list_bgp_sessions
180
+
181
+ request :list_events
182
+
183
+ request :enable_two_factor_auth
184
+ request :disable_two_factor_auth
185
+
186
+ request :list_sessions
187
+ request :delete_session
188
+ request :session_login
189
+
190
+ request :list_notifications
191
+ request :get_notification
192
+ request :update_notification
193
+
194
+ request :list_invitations
195
+ request :get_invitation
196
+ request :accept_invitation
197
+ request :decline_invitation
198
+
199
+ request :request_email_verification
200
+ request :verify_email
201
+
202
+ request :get_bandwidth
203
+
204
+ request :list_licenses
205
+ request :create_license
206
+ request :get_license
207
+ request :update_license
208
+ request :delete_license
209
+
210
+ request :list_memberships
211
+ request :get_membership
212
+ request :update_membership
213
+ request :delete_membership
214
+
215
+ request :list_organizations
216
+ request :get_organization
217
+ request :create_organization
218
+ request :delete_organization
219
+ request :update_organization
220
+
221
+ request :get_capacity
222
+ request :validate_capacity
223
+
224
+ request :list_payment_methods
225
+ request :create_payment_method
226
+ request :update_payment_method
227
+ request :get_payment_method
228
+ request :delete_payment_method
229
+
230
+ request :list_transfer_requests
231
+ request :transfer_project
232
+ request :get_transfer_request
233
+ request :accept_transfer_request
234
+ request :decline_transfer_request
235
+
236
+ request :list_hardware_reservations
237
+ request :get_hardware_reservation
238
+ request :move_hardware_reservation
239
+
240
+ # Real
241
+ class Real
242
+ def initialize(options = {})
243
+ if options[:packet_token] == ""
244
+ @packet_token = options[:packet_token]
245
+ else
246
+ @packet_token = ENV["PACKET_TOKEN"]
247
+ end
248
+ raise "Packet token is not present. Please pass it as an argument or set environment variable 'PACKET_TOKEN'." if @packet_token == ""
249
+ @base_url = options[:packet_url] ? options[:packet_url] : "https://api.packet.net/"
250
+ @version = ""
251
+ @header = {
252
+ "X-Auth-Token" => @packet_token,
253
+ "Content-Type" => "application/json"
254
+ }
255
+ @connection = Fog::Core::Connection.new(@base_url)
256
+ end
257
+
258
+ def request(params)
259
+ # Perform Request
260
+
261
+ begin
262
+ response = @connection.request(:method => params[:method],
263
+ :path => params[:path],
264
+ :headers => @header,
265
+ :body => params[:body],
266
+ :query => params[:params])
267
+ rescue Excon::Errors::Unauthorized => error
268
+ raise error
269
+ rescue Excon::Errors::HTTPStatusError => error
270
+ raise error
271
+ rescue Excon::Errors::InternalServerError => error
272
+ raise error
273
+ rescue Fog::Errors::NotFound => error
274
+ raise error
275
+ end
276
+
277
+ # Parse body
278
+ response.body = Fog::JSON.decode(response.body) if response.body != ""
279
+
280
+ #
281
+ # Check for server error
282
+ if response.status == 500
283
+ raise "Internal Server Error. Please try again."
284
+ end
285
+ # Raise exception if a bad status code is returned
286
+ unless SUCCESS_CODES.include? response.status
287
+ raise response.status.to_s + " " + response.body.to_s
288
+ end
289
+
290
+ response
291
+ end
292
+ end
293
+
294
+ # Mock
295
+ class Mock
296
+ def initialize(options = {})
297
+ if options[:packet_token] == ""
298
+ @packet_token = options[:packet_token]
299
+ else
300
+ @packet_token = ENV["PACKET_TOKEN"]
301
+ end
302
+
303
+ raise "Packet token is not present. Please pass it as an argument or set environment variable 'PACKET_TOKEN'." unless @packet_token
304
+ @base_url = options[:packet_url] ? options[:packet_url] : "https://api.packet.net/"
305
+ end
306
+
307
+ def data
308
+ self.class.data[@packet_token]
309
+ end
310
+ end
311
+ end
312
+ end
313
+ end
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Compute
3
+ class Packet
4
+ # Bandwidth Collection
5
+ class Bandwidth < Fog::Collection
6
+ def get(device_id, params = {})
7
+ response = service.get_bandwidth(device_id, params)
8
+
9
+ response if response.status == 200
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,18 @@
1
+ module Fog
2
+ module Compute
3
+ class Packet
4
+ # Batch Model
5
+ class Batch < Fog::Model
6
+ identity :id
7
+
8
+ attribute :error_messages
9
+ attribute :state
10
+ attribute :created_at
11
+ attribute :updated_at
12
+ attribute :devices
13
+ attribute :project
14
+ attribute :quantity
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,27 @@
1
+ require_relative "batch"
2
+
3
+ module Fog
4
+ module Compute
5
+ class Packet
6
+ # Batches Collection
7
+ class Batches < Fog::Collection
8
+ model Fog::Compute::Packet::Batch
9
+
10
+ def all(project_id, params = {})
11
+ response = service.list_batches(project_id, params)
12
+ load(response.body["batches"])
13
+ end
14
+
15
+ def get(id)
16
+ response = service.get_batch(id)
17
+ new(response.body)
18
+ end
19
+
20
+ def create(project_id, batches)
21
+ response = service.create_batch(project_id, batches)
22
+ load(response.body["batches"])
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end