droplet_manager 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/droplet_manager.rb +66 -0
  3. metadata +87 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7304e4a76b72156fb2846b27a149395211d95acd
4
+ data.tar.gz: 00ca04872b2e3ea3043518dc9e9da4473f5ea06c
5
+ SHA512:
6
+ metadata.gz: d05d9bc36bf3d592b1bc2db5c9d668290aa41a62595ba642a6d19e73d21c0ee4df5c76c3341f93465d828f4ec57a0be90a7110717d6b41117b15394e3a4d6afc
7
+ data.tar.gz: be1275a7fd658b4bfca7d38f074ec183f36cc1fba117a7486246f8b8636cb0f25ee76fc04fd5da84b4e9f085e816abdbc9fc67bea578b5d3b4a480c55f908ea7
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ require 'rubygems'
5
+ require 'multi_json'
6
+ require 'dotenv'
7
+ require 'httparty'
8
+
9
+ Dotenv.load("droplet.env")
10
+
11
+ CLIENT_ID = ENV['CLIENT_ID']
12
+ API_KEY = ENV['API_KEY']
13
+ DROPLET_ID = ENV['DROPLET_ID']
14
+
15
+ class Droplet
16
+ include HTTParty
17
+ format :json
18
+
19
+ base_uri 'https://api.digitalocean.com'
20
+
21
+ def initialize
22
+ @client_id = ENV['CLIENT_ID']
23
+ @api_key = ENV['API_KEY']
24
+ @droplet_id = ENV['DROPLET_ID']
25
+ end
26
+
27
+ def self.id
28
+ get("/droplets/#{DROPLET_ID}?client_id=#{CLIENT_ID}&api_key=#{API_KEY}")
29
+ end
30
+
31
+ def self.status
32
+ Droplet.id['droplet']['status']
33
+ end
34
+
35
+ def self.reboot
36
+ post("/droplets/#{DROPLET_ID}/reboot/?client_id=#{CLIENT_ID}&api_key=#{API_KEY}")
37
+ end
38
+
39
+ def self.power_cycle
40
+ post("/droplets/#{DROPLET_ID}/power_cycle/?client_id=#{CLIENT_ID}&api_key=#{API_KEY}")
41
+ end
42
+
43
+ def self.shutdown
44
+ post("/droplets/#{DROPLET_ID}/shutdown/?client_id=#{CLIENT_ID}&api_key=#{API_KEY}")
45
+ end
46
+
47
+ def self.poweroff
48
+ post("/droplets/#{DROPLET_ID}/power_off/?client_id=#{CLIENT_ID}&api_key=#{API_KEY}")
49
+ end
50
+
51
+ def self.poweron
52
+ post("/droplets/#{DROPLET_ID}/power_on/?client_id=#{CLIENT_ID}&api_key=#{API_KEY}")
53
+ end
54
+
55
+ def self.snapshot
56
+ post("/droplets/#{DROPLET_ID}/snapshot/?name=#{Time.now.strftime('%m_%d_%Y')}&client_id=#{CLIENT_ID}&api_key=#{API_KEY}")
57
+ end
58
+
59
+ def self.snapshots
60
+ Droplet.id['droplet']['snapshots']
61
+ end
62
+
63
+ def self.destroy
64
+ post("/droplets/#{DROPLET_ID}/destroy/?client_id=#{CLIENT_ID}&api_key=#{API_KEY}")
65
+ end
66
+ end
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: droplet_manager
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Digital Ocean
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-01-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: multi_json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: dotenv
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: httparty
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: A gem for managing a Digital Ocean droplet from the Interactive Ruby
56
+ Shell
57
+ email:
58
+ - digitalocean@digitalocean.com
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - lib/droplet_manager.rb
64
+ homepage: https://rubygems.org/gems/droplet_manager
65
+ licenses: []
66
+ metadata: {}
67
+ post_install_message:
68
+ rdoc_options: []
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ requirements: []
82
+ rubyforge_project:
83
+ rubygems_version: 2.2.1
84
+ signing_key:
85
+ specification_version: 4
86
+ summary: Droplet Manager for Digital Ocean
87
+ test_files: []