Class: Part
- Inherits:
-
Object
- Object
- Part
- Defined in:
- lib/part.rb
Instance Method Summary collapse
- #api_base ⇒ Object
- #api_base=(base_api_url) ⇒ Object
-
#change_droplet_kernel(droplet_id, kernel_id) ⇒ Object
Not tested.
-
#create_domain(domain_name, ip_address) ⇒ Object
Not yet tested.
- #create_domain_record(domain_name) ⇒ Object
- #create_droplet(droplet_name, droplet_region, droplet_image, droplet_size = "512mb", ssh_keys = nil, backups = nil, ipv6 = nil, private_networking = nil) ⇒ Object
- #create_key(key_name, public_key) ⇒ Object
- #delete_domain(domain_name) ⇒ Object
- #delete_domain_record(domain_name, record_id) ⇒ Object
- #delete_droplet(droplet_id) ⇒ Object
-
#delete_image(image_id) ⇒ Object
Not tested.
- #delete_key(key_id_or_fingerprint) ⇒ Object
-
#disable_backups(droplet_id) ⇒ Object
Not tested.
-
#enable_ipv6(droplet_id) ⇒ Object
Not tested.
-
#enable_private_networking(droplet_id) ⇒ Object
Not tested.
- #get_action(action_id) ⇒ Object
- #get_backups(droplet_id) ⇒ Object
-
#get_domain(domain_name) ⇒ Object
Example: get_domain(“google.com”).
- #get_domain_record(domain_name, record_id) ⇒ Object
- #get_droplet(droplet_id) ⇒ Object
- #get_droplet_action(droplet_id, action_id) ⇒ Object
- #get_droplet_actions(droplet_id) ⇒ Object
-
#get_image(image_id_or_slug) ⇒ Object
Not tested.
-
#get_image_action(image_id, action_id) ⇒ Object
Not tested.
- #get_key(key_id_or_fingerprint) ⇒ Object
- #get_snapshots(droplet_id) ⇒ Object
-
#initialize(token, version = "v2") ⇒ Part
constructor
A new instance of Part.
-
#list_actions ⇒ Object
Actions developers.digitalocean.com/#actions.
-
#list_domain_records(domain_name) ⇒ Object
Domain Records developers.digitalocean.com/#domain-records.
-
#list_domains ⇒ Object
Domains developers.digitalocean.com/#domains.
-
#list_droplets ⇒ Object
Droplets developers.digitalocean.com/#droplets.
- #list_images ⇒ Object
- #list_kernels(droplet_id) ⇒ Object
- #list_keys ⇒ Object
-
#list_regions ⇒ Object
Regions developers.digitalocean.com/#regions.
- #list_sizes ⇒ Object
-
#make_api_request(api_url, request_method = :GET, api_request_payload = {}, api_request_headers = {}) ⇒ Object
Standardize API calls using this helper method.
-
#password_reset_droplet(droplet_id) ⇒ Object
Not tested.
- #power_cycle_droplet(droplet_id) ⇒ Object
-
#power_off_droplet(droplet_id) ⇒ Object
Not tested.
- #power_on_droplet(droplet_id) ⇒ Object
-
#reboot_droplet(droplet_id) ⇒ Object
Droplet Actions developers.digitalocean.com/#droplet-actions.
-
#rebuild_droplet(droplet_id, image_id_or_slug) ⇒ Object
Not tested.
- #rename_droplet(droplet_id, new_name) ⇒ Object
-
#resize_droplet(droplet_id, new_size) ⇒ Object
Not tested.
-
#restore_droplet(droplet_id, image_id) ⇒ Object
Not tested.
-
#set_authorization_header(request_headers) ⇒ Object
Standardize the setting of the Authorization header with this helper method.
- #shutdown_droplet(droplet_id) ⇒ Object
-
#snapshot(droplet_id, snapshot_name) ⇒ Object
Not tested.
- #token ⇒ Object
-
#token=(token) ⇒ Object
Helper Methods.
-
#transfer_image(image_id, destination_region) ⇒ Object
Image Actions developers.digitalocean.com/#image-actions.
- #update_domain_record(domain_name, record_id) ⇒ Object
-
#update_image(image_id, new_name) ⇒ Object
Not tested.
- #update_key(key_id_or_fingerprint, new_name) ⇒ Object
Constructor Details
#initialize(token, version = "v2") ⇒ Part
Returns a new instance of Part.
5 6 7 8 |
# File 'lib/part.rb', line 5 def initialize(token, version="v2") @token = token @api_base = "https://api.digitalocean.com/" + version + "/" end |
Instance Method Details
#api_base ⇒ Object
10 11 12 |
# File 'lib/part.rb', line 10 def api_base @api_base end |
#api_base=(base_api_url) ⇒ Object
14 15 16 |
# File 'lib/part.rb', line 14 def api_base=(base_api_url) @api_base = base_api_url end |
#change_droplet_kernel(droplet_id, kernel_id) ⇒ Object
Not tested
158 159 160 161 162 |
# File 'lib/part.rb', line 158 def change_droplet_kernel(droplet_id, kernel_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions" api_request_payload = { :type => "change_kernel", :kernel => kernel_id } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#create_domain(domain_name, ip_address) ⇒ Object
Not yet tested
71 72 73 74 75 |
# File 'lib/part.rb', line 71 def create_domain(domain_name, ip_address) api_request_url = @api_base + "domains" api_request_palyload = { :name => domain_name, :ip_address => ip_address } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#create_domain_record(domain_name) ⇒ Object
41 42 43 44 45 |
# File 'lib/part.rb', line 41 def create_domain_record(domain_name) api_request_url = @api_base + "domains/" + domain_name + "/records" # response = make_api_request(api_request_url, :POST) raise NotImplementedError, "create_domain_record not yet implemented." end |
#create_droplet(droplet_name, droplet_region, droplet_image, droplet_size = "512mb", ssh_keys = nil, backups = nil, ipv6 = nil, private_networking = nil) ⇒ Object
226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 |
# File 'lib/part.rb', line 226 def create_droplet(droplet_name, droplet_region, droplet_image, droplet_size="512mb", ssh_keys=nil, backups=nil, ipv6=nil, private_networking=nil) api_request_url = @api_base + "droplets" api_request_payload = { :name => droplet_name, :region => droplet_region, :size => droplet_size, :image => droplet_image } api_request_payload[:ssh_keys] = ssh_keys unless ssh_keys.nil? api_request_payload[:backups] = ssh_keys unless backups.nil? api_request_payload[:ipv6] = ssh_keys unless ipv6.nil? api_request_payload[:private_networking] = ssh_keys unless private_networking.nil? response = make_api_request(api_request_url, :POST, api_request_payload) end |
#create_key(key_name, public_key) ⇒ Object
304 305 306 307 308 |
# File 'lib/part.rb', line 304 def create_key(key_name, public_key) api_request_url = @api_base + "account/keys" api_request_payload = { :name => key_name, :public_key => public_key } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#delete_domain(domain_name) ⇒ Object
84 85 86 87 |
# File 'lib/part.rb', line 84 def delete_domain(domain_name) api_request_url = @api_base + "domains/" + domain_name.to_s raise NotImplementedError, "delete_domain not yet implemented." end |
#delete_domain_record(domain_name, record_id) ⇒ Object
52 53 54 55 |
# File 'lib/part.rb', line 52 def delete_domain_record(domain_name, record_id) api_request_url = @api_base + "domains/" + domain_name + "/records/" + record_id.to_s raise NotImplementedError, "delete_domain_record not yet implemented." end |
#delete_droplet(droplet_id) ⇒ Object
247 248 249 250 |
# File 'lib/part.rb', line 247 def delete_droplet(droplet_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s response = make_api_request(api_request_url, :DELETE) end |
#delete_image(image_id) ⇒ Object
Not tested
283 284 285 286 |
# File 'lib/part.rb', line 283 def delete_image(image_id) api_request_url = @api_base + "images/" + image_id_or_slug.to_s response = make_api_request(api_request_url, :DELETE) end |
#delete_key(key_id_or_fingerprint) ⇒ Object
321 322 323 324 |
# File 'lib/part.rb', line 321 def delete_key(key_id_or_fingerprint) api_request_url = @api_base + "account/keys/" + key_id_or_fingerprint.to_s response = make_api_request(api_request_url, :DELETE) end |
#disable_backups(droplet_id) ⇒ Object
Not tested
172 173 174 175 176 |
# File 'lib/part.rb', line 172 def disable_backups(droplet_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions" api_request_payload = { :type => "disable_backups" } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#enable_ipv6(droplet_id) ⇒ Object
Not tested
165 166 167 168 169 |
# File 'lib/part.rb', line 165 def enable_ipv6(droplet_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions" api_request_payload = { :type => "enable_ipv6" } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#enable_private_networking(droplet_id) ⇒ Object
Not tested
179 180 181 182 183 |
# File 'lib/part.rb', line 179 def enable_private_networking(droplet_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions" api_request_payload = { :type => "enable_private_networking" } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#get_action(action_id) ⇒ Object
26 27 28 29 |
# File 'lib/part.rb', line 26 def get_action(action_id) api_request_url = @api_base + "actions/" + action_id.to_s response = make_api_request(api_request_url) end |
#get_backups(droplet_id) ⇒ Object
216 217 218 219 |
# File 'lib/part.rb', line 216 def get_backups(droplet_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/backups" response = make_api_request(api_request_url) end |
#get_domain(domain_name) ⇒ Object
Example: get_domain(“google.com”)
79 80 81 82 |
# File 'lib/part.rb', line 79 def get_domain(domain_name) api_request_url = @api_base + "domains/" + domain_name.to_s response = make_api_request(api_request_url) end |
#get_domain_record(domain_name, record_id) ⇒ Object
47 48 49 50 |
# File 'lib/part.rb', line 47 def get_domain_record(domain_name, record_id) api_request_url = @api_base + "domains/" + domain_name + "/records/" + record_id.to_s response = make_api_request(api_request_url) end |
#get_droplet(droplet_id) ⇒ Object
242 243 244 245 |
# File 'lib/part.rb', line 242 def get_droplet(droplet_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s response = make_api_request(api_request_url) end |
#get_droplet_action(droplet_id, action_id) ⇒ Object
192 193 194 195 |
# File 'lib/part.rb', line 192 def get_droplet_action(droplet_id, action_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions/" + action_id.to_s response = make_api_request(api_request_url) end |
#get_droplet_actions(droplet_id) ⇒ Object
221 222 223 224 |
# File 'lib/part.rb', line 221 def get_droplet_actions(droplet_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions" response = make_api_request(api_request_url) end |
#get_image(image_id_or_slug) ⇒ Object
Not tested
277 278 279 280 |
# File 'lib/part.rb', line 277 def get_image(image_id_or_slug) api_request_url = @api_base + "images/" + image_id_or_slug.to_s make_api_request(api_request_url) end |
#get_image_action(image_id, action_id) ⇒ Object
Not tested
263 264 265 266 |
# File 'lib/part.rb', line 263 def get_image_action(image_id, action_id) api_request_url = @api_base + "images/" + image_id.to_s + "/actions/" + action_id.to_s make_api_request(api_request_url) end |
#get_key(key_id_or_fingerprint) ⇒ Object
310 311 312 313 |
# File 'lib/part.rb', line 310 def get_key(key_id_or_fingerprint) api_request_url = @api_base + "account/keys/" + key_id_or_fingerprint.to_s response = make_api_request(api_request_url) end |
#get_snapshots(droplet_id) ⇒ Object
211 212 213 214 |
# File 'lib/part.rb', line 211 def get_snapshots(droplet_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/snapshots" response = make_api_request(api_request_url) end |
#list_actions ⇒ Object
21 22 23 24 |
# File 'lib/part.rb', line 21 def list_actions api_request_url = @api_base + "actions" response = make_api_request(api_request_url) end |
#list_domain_records(domain_name) ⇒ Object
Domain Records developers.digitalocean.com/#domain-records
Example: list_domain_records(“google.com”)
36 37 38 39 |
# File 'lib/part.rb', line 36 def list_domain_records(domain_name) api_request_url = @api_base + "domains/" + domain_name + "/records" response = make_api_request(api_request_url) end |
#list_domains ⇒ Object
65 66 67 68 |
# File 'lib/part.rb', line 65 def list_domains api_request_url = @api_base + "domains" response = make_api_request(api_request_url) end |
#list_droplets ⇒ Object
200 201 202 203 204 |
# File 'lib/part.rb', line 200 def list_droplets api_request_url = @api_base + "droplets" response = make_api_request(api_request_url) # JSON.parse(response)["droplets"] end |
#list_images ⇒ Object
271 272 273 274 |
# File 'lib/part.rb', line 271 def list_images api_request_url = @api_base + "images" response = make_api_request(api_request_url) end |
#list_kernels(droplet_id) ⇒ Object
206 207 208 209 |
# File 'lib/part.rb', line 206 def list_kernels(droplet_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/kernels" response = make_api_request(api_request_url) end |
#list_keys ⇒ Object
299 300 301 302 |
# File 'lib/part.rb', line 299 def list_keys api_request_url = @api_base + "account/keys" response = make_api_request(api_request_url) end |
#list_regions ⇒ Object
329 330 331 332 |
# File 'lib/part.rb', line 329 def list_regions api_request_url = @api_base + "regions" response = make_api_request(api_request_url) end |
#list_sizes ⇒ Object
337 338 339 340 |
# File 'lib/part.rb', line 337 def list_sizes api_request_url = @api_base + "sizes" response = make_api_request(api_request_url) end |
#make_api_request(api_url, request_method = :GET, api_request_payload = {}, api_request_headers = {}) ⇒ Object
Standardize API calls using this helper method
354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 |
# File 'lib/part.rb', line 354 def make_api_request(api_url, request_method=:GET, api_request_payload={}, api_request_headers={}) api_request_headers = (api_request_headers) case request_method when :GET response = RestClient.get api_url, api_request_headers when :POST response = RestClient.post api_url, api_request_payload, api_request_headers when :PUT response = RestClient.put api_url, api_request_payload, api_request_headers when :DELETE response = RestClient.delete api_url, api_request_headers else raise ArgumentError, "Invalid HTTP method used for this request." end end |
#password_reset_droplet(droplet_id) ⇒ Object
Not tested
124 125 126 127 128 |
# File 'lib/part.rb', line 124 def password_reset_droplet(droplet_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions" api_request_payload = { :type => "password_reset" } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#power_cycle_droplet(droplet_id) ⇒ Object
98 99 100 101 102 |
# File 'lib/part.rb', line 98 def power_cycle_droplet(droplet_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions" api_request_payload = { :type => "power_cycle" } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#power_off_droplet(droplet_id) ⇒ Object
Not tested
111 112 113 114 115 |
# File 'lib/part.rb', line 111 def power_off_droplet(droplet_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions" api_request_payload = { :type => "power_off" } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#power_on_droplet(droplet_id) ⇒ Object
117 118 119 120 121 |
# File 'lib/part.rb', line 117 def power_on_droplet(droplet_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions" api_request_payload = { :type => "power_on" } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#reboot_droplet(droplet_id) ⇒ Object
Droplet Actions developers.digitalocean.com/#droplet-actions
92 93 94 95 96 |
# File 'lib/part.rb', line 92 def reboot_droplet(droplet_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions" api_request_payload = { :type => "reboot" } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#rebuild_droplet(droplet_id, image_id_or_slug) ⇒ Object
Not tested
145 146 147 148 149 |
# File 'lib/part.rb', line 145 def rebuild_droplet(droplet_id, image_id_or_slug) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions" api_request_payload = { :type => "rebuild", :image => image_id_or_slug } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#rename_droplet(droplet_id, new_name) ⇒ Object
151 152 153 154 155 |
# File 'lib/part.rb', line 151 def rename_droplet(droplet_id, new_name) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions" api_request_payload = { :type => "rename", :name => new_name } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#resize_droplet(droplet_id, new_size) ⇒ Object
Not tested
131 132 133 134 135 |
# File 'lib/part.rb', line 131 def resize_droplet(droplet_id, new_size) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions" api_request_payload = { :type => "resize", :size => new_size } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#restore_droplet(droplet_id, image_id) ⇒ Object
Not tested
138 139 140 141 142 |
# File 'lib/part.rb', line 138 def restore_droplet(droplet_id, image_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions" api_request_payload = { :type => "restore", :image => image_id } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#set_authorization_header(request_headers) ⇒ Object
Standardize the setting of the Authorization header with this helper method
374 375 376 |
# File 'lib/part.rb', line 374 def (request_headers) request_headers.merge({:Authorization => "Bearer #{self.token}"}) end |
#shutdown_droplet(droplet_id) ⇒ Object
104 105 106 107 108 |
# File 'lib/part.rb', line 104 def shutdown_droplet(droplet_id) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions" api_request_payload = { :type => "shutdown" } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#snapshot(droplet_id, snapshot_name) ⇒ Object
Not tested
186 187 188 189 190 |
# File 'lib/part.rb', line 186 def snapshot(droplet_id, snapshot_name) api_request_url = @api_base + "droplets/" + droplet_id.to_s + "/actions" api_request_payload = { :type => "snapshot", :name => snapshot_name } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#token ⇒ Object
348 349 350 |
# File 'lib/part.rb', line 348 def token @token end |
#token=(token) ⇒ Object
Helper Methods
344 345 346 |
# File 'lib/part.rb', line 344 def token=(token) @token = token end |
#transfer_image(image_id, destination_region) ⇒ Object
Image Actions developers.digitalocean.com/#image-actions
Not tested
256 257 258 259 260 |
# File 'lib/part.rb', line 256 def transfer_image(image_id, destination_region) api_request_url = @api_base + "images/" + image_id.to_s + "/actions" api_request_payload = { :type => "transfer", :region => destination_region } response = make_api_request(api_request_url, :POST, api_request_payload) end |
#update_domain_record(domain_name, record_id) ⇒ Object
57 58 59 60 |
# File 'lib/part.rb', line 57 def update_domain_record(domain_name, record_id) api_request_url = @api_base + "domains/" + domain_name + "/records/" + record_id.to_s raise NotImplementedError, "update_domain_record not yet implemented." end |
#update_image(image_id, new_name) ⇒ Object
Not tested
289 290 291 292 293 294 |
# File 'lib/part.rb', line 289 def update_image(image_id, new_name) api_request_url = @api_base + "images/" + image_id_or_slug.to_s api_request_payload = { :name => new_name } # response = make_api_request(api_request_url, :PUT, api_request_payload) raise NotImplementedError, "update_image not yet implemented." end |
#update_key(key_id_or_fingerprint, new_name) ⇒ Object
315 316 317 318 319 |
# File 'lib/part.rb', line 315 def update_key(key_id_or_fingerprint, new_name) api_request_url = @api_base + "account/keys/" + key_id_or_fingerprint.to_s api_request_payload = { :name => new_name } response = make_api_request(api_request_url, :PUT, api_request_payload) end |