fog-digitalocean 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.document +3 -0
  4. data/.gitignore +30 -0
  5. data/.irbrc +82 -0
  6. data/.rubocop.yml +20 -0
  7. data/.rubocop_todo.yml +606 -0
  8. data/.travis.yml +35 -0
  9. data/CHANGELOG.md +3 -0
  10. data/CONTRIBUTING.md +276 -0
  11. data/CONTRIBUTORS.md +898 -0
  12. data/Gemfile +5 -0
  13. data/LICENSE.md +20 -0
  14. data/README.md +130 -0
  15. data/RELEASE.md +40 -0
  16. data/Rakefile +12 -0
  17. data/benchs/each_provider.sh +6 -0
  18. data/benchs/each_service.sh +6 -0
  19. data/benchs/fog_vs.rb +106 -0
  20. data/benchs/load_times.rb +37 -0
  21. data/benchs/params.rb +43 -0
  22. data/benchs/parse_vs_push.rb +67 -0
  23. data/bin/fog +78 -0
  24. data/fog-digitalocean.gemspec +61 -0
  25. data/gemfiles/Gemfile-edge +14 -0
  26. data/lib/fog/digitalocean.rb +1 -0
  27. data/lib/fog/digitalocean/CHANGELOG.md +6 -0
  28. data/lib/fog/digitalocean/compute.rb +109 -0
  29. data/lib/fog/digitalocean/core.rb +9 -0
  30. data/lib/fog/digitalocean/examples/getting_started.md +123 -0
  31. data/lib/fog/digitalocean/models/compute/flavor.rb +17 -0
  32. data/lib/fog/digitalocean/models/compute/flavors.rb +21 -0
  33. data/lib/fog/digitalocean/models/compute/image.rb +25 -0
  34. data/lib/fog/digitalocean/models/compute/images.rb +42 -0
  35. data/lib/fog/digitalocean/models/compute/region.rb +13 -0
  36. data/lib/fog/digitalocean/models/compute/regions.rb +21 -0
  37. data/lib/fog/digitalocean/models/compute/server.rb +170 -0
  38. data/lib/fog/digitalocean/models/compute/servers.rb +43 -0
  39. data/lib/fog/digitalocean/models/compute/ssh_key.rb +31 -0
  40. data/lib/fog/digitalocean/models/compute/ssh_keys.rb +40 -0
  41. data/lib/fog/digitalocean/models/paging_collection.rb +42 -0
  42. data/lib/fog/digitalocean/requests/compute/change_kernel.rb +44 -0
  43. data/lib/fog/digitalocean/requests/compute/convert_to_snapshot.rb +44 -0
  44. data/lib/fog/digitalocean/requests/compute/create_server.rb +93 -0
  45. data/lib/fog/digitalocean/requests/compute/create_ssh_key.rb +49 -0
  46. data/lib/fog/digitalocean/requests/compute/delete_ssh_key.rb +32 -0
  47. data/lib/fog/digitalocean/requests/compute/destroy_server.rb +35 -0
  48. data/lib/fog/digitalocean/requests/compute/disable_backups.rb +45 -0
  49. data/lib/fog/digitalocean/requests/compute/enable_ipv6.rb +44 -0
  50. data/lib/fog/digitalocean/requests/compute/enable_private_networking.rb +44 -0
  51. data/lib/fog/digitalocean/requests/compute/get_droplet_action.rb +36 -0
  52. data/lib/fog/digitalocean/requests/compute/get_image_details.rb +42 -0
  53. data/lib/fog/digitalocean/requests/compute/get_server_details.rb +84 -0
  54. data/lib/fog/digitalocean/requests/compute/get_ssh_key.rb +34 -0
  55. data/lib/fog/digitalocean/requests/compute/list_droplet_actions.rb +38 -0
  56. data/lib/fog/digitalocean/requests/compute/list_flavors.rb +132 -0
  57. data/lib/fog/digitalocean/requests/compute/list_images.rb +51 -0
  58. data/lib/fog/digitalocean/requests/compute/list_regions.rb +95 -0
  59. data/lib/fog/digitalocean/requests/compute/list_servers.rb +33 -0
  60. data/lib/fog/digitalocean/requests/compute/list_ssh_keys.rb +41 -0
  61. data/lib/fog/digitalocean/requests/compute/password_reset.rb +44 -0
  62. data/lib/fog/digitalocean/requests/compute/power_cycle.rb +44 -0
  63. data/lib/fog/digitalocean/requests/compute/power_off.rb +44 -0
  64. data/lib/fog/digitalocean/requests/compute/power_on.rb +44 -0
  65. data/lib/fog/digitalocean/requests/compute/reboot_server.rb +44 -0
  66. data/lib/fog/digitalocean/requests/compute/rebuild.rb +44 -0
  67. data/lib/fog/digitalocean/requests/compute/rename.rb +44 -0
  68. data/lib/fog/digitalocean/requests/compute/resize.rb +48 -0
  69. data/lib/fog/digitalocean/requests/compute/restore.rb +44 -0
  70. data/lib/fog/digitalocean/requests/compute/shutdown.rb +44 -0
  71. data/lib/fog/digitalocean/requests/compute/snapshot.rb +44 -0
  72. data/lib/fog/digitalocean/requests/compute/transfer_image.rb +44 -0
  73. data/lib/fog/digitalocean/requests/compute/update_ssh_key.rb +46 -0
  74. data/lib/fog/digitalocean/requests/compute/upgrade.rb +44 -0
  75. data/lib/fog/digitalocean/service.rb +51 -0
  76. data/lib/fog/digitalocean/version.rb +5 -0
  77. data/spec/fog/account_spec.rb +14 -0
  78. data/spec/fog/billing_spec.rb +14 -0
  79. data/spec/fog/bin/atmos_spec.rb +33 -0
  80. data/spec/fog/bin/aws_spec.rb +98 -0
  81. data/spec/fog/bin/baremetalcloud_spec.rb +33 -0
  82. data/spec/fog/bin/bluebox_spec.rb +55 -0
  83. data/spec/fog/bin/brightbox_spec.rb +30 -0
  84. data/spec/fog/bin/clodo_spec.rb +9 -0
  85. data/spec/fog/bin/cloudsigma_spec.rb +9 -0
  86. data/spec/fog/bin/cloudstack_spec.rb +9 -0
  87. data/spec/fog/bin/digitalocean_spec.rb +9 -0
  88. data/spec/fog/bin/dnsimple_spec.rb +9 -0
  89. data/spec/fog/bin/dnsmadeeasy_spec.rb +9 -0
  90. data/spec/fog/bin/dreamhost_spec.rb +9 -0
  91. data/spec/fog/bin/dynect_spec.rb +9 -0
  92. data/spec/fog/bin/ecloud_spec.rb +10 -0
  93. data/spec/fog/bin/fogdocker_spec.rb +10 -0
  94. data/spec/fog/bin/glesys_spec.rb +10 -0
  95. data/spec/fog/bin/gogrid_spec.rb +10 -0
  96. data/spec/fog/bin/google_spec.rb +10 -0
  97. data/spec/fog/bin/ibm_spec.rb +10 -0
  98. data/spec/fog/bin/internetarchive_spec.rb +10 -0
  99. data/spec/fog/bin/joyent_spec.rb +10 -0
  100. data/spec/fog/bin/linode_spec.rb +10 -0
  101. data/spec/fog/bin/local_spec.rb +10 -0
  102. data/spec/fog/bin/ninefold_spec.rb +10 -0
  103. data/spec/fog/bin/opennebula_spec.rb +10 -0
  104. data/spec/fog/bin/openstack_spec.rb +10 -0
  105. data/spec/fog/bin/openvz_spec.rb +10 -0
  106. data/spec/fog/bin/ovirt_spec.rb +10 -0
  107. data/spec/fog/bin/powerdns_spec.rb +9 -0
  108. data/spec/fog/bin/profitbricks_spec.rb +10 -0
  109. data/spec/fog/bin/rackspace_spec.rb +10 -0
  110. data/spec/fog/bin/rage4_spec.rb +10 -0
  111. data/spec/fog/bin/riakcs_spec.rb +10 -0
  112. data/spec/fog/bin/sakuracloud_spec.rb +10 -0
  113. data/spec/fog/bin/serverlove_spec.rb +10 -0
  114. data/spec/fog/bin/softlayer_spec.rb +10 -0
  115. data/spec/fog/bin/stormondemand_spec.rb +10 -0
  116. data/spec/fog/bin/vcloud_spec.rb +10 -0
  117. data/spec/fog/bin/vclouddirector_spec.rb +10 -0
  118. data/spec/fog/bin/vmfusion_spec.rb +10 -0
  119. data/spec/fog/bin/voxel_spec.rb +10 -0
  120. data/spec/fog/bin/vsphere_spec.rb +10 -0
  121. data/spec/fog/bin/xenserver_spec.rb +10 -0
  122. data/spec/fog/bin/zerigo_spec.rb +10 -0
  123. data/spec/fog/bin_spec.rb +161 -0
  124. data/spec/fog/cdn_spec.rb +14 -0
  125. data/spec/fog/compute_spec.rb +19 -0
  126. data/spec/fog/dns_spec.rb +19 -0
  127. data/spec/fog/identity_spec.rb +14 -0
  128. data/spec/fog/image_spec.rb +14 -0
  129. data/spec/fog/metering_spec.rb +14 -0
  130. data/spec/fog/monitoring_spec.rb +14 -0
  131. data/spec/fog/network_spec.rb +14 -0
  132. data/spec/fog/orchestration_spec.rb +14 -0
  133. data/spec/fog/storage_spec.rb +14 -0
  134. data/spec/fog/support_spec.rb +14 -0
  135. data/spec/fog/volume_spec.rb +14 -0
  136. data/spec/fog/vpn_spec.rb +14 -0
  137. data/spec/fog/xml/connection_spec.rb +33 -0
  138. data/spec/helpers/bin.rb +34 -0
  139. data/spec/spec_helper.rb +18 -0
  140. data/tests/digitalocean/helper.rb +56 -0
  141. data/tests/digitalocean/requests/compute/list_flavors_tests.rb +25 -0
  142. data/tests/digitalocean/requests/compute/list_images_tests.rb +25 -0
  143. data/tests/digitalocean/requests/compute/list_regions_tests.rb +21 -0
  144. data/tests/digitalocean/requests/compute/server_tests.rb +77 -0
  145. data/tests/digitalocean/requests/compute_v2/list_ssh_keys_tests.rb +20 -0
  146. data/tests/helper.rb +25 -0
  147. data/tests/helpers/format_helper.rb +100 -0
  148. data/tests/helpers/mock_helper.rb +14 -0
  149. data/tests/helpers/succeeds_helper.rb +10 -0
  150. data/tests/lorem.txt +1 -0
  151. data/tests/watchr.rb +22 -0
  152. metadata +428 -0
@@ -0,0 +1,33 @@
1
+ require "spec_helper"
2
+ require "fog/bin"
3
+ require "helpers/bin"
4
+
5
+ describe BareMetalCloud do
6
+ include Fog::BinSpec
7
+
8
+ let(:subject) { BareMetalCloud }
9
+
10
+ describe "#services" do
11
+ it "includes all services" do
12
+ assert_includes BareMetalCloud.services, :compute
13
+ end
14
+ end
15
+
16
+ describe "#class_for" do
17
+ describe "when requesting storage service" do
18
+ it "returns correct class" do
19
+ assert_equal Fog::Compute::BareMetalCloud, BareMetalCloud.class_for(:compute)
20
+ end
21
+ end
22
+ end
23
+
24
+ describe "#[]" do
25
+ describe "when requesting compute service" do
26
+ it "returns instance" do
27
+ Fog::Compute::BareMetalCloud.stub(:new, "instance") do
28
+ assert_equal "instance", BareMetalCloud[:compute]
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,55 @@
1
+ require "spec_helper"
2
+ require "fog/bin"
3
+ require "helpers/bin"
4
+
5
+ describe Bluebox do
6
+ include Fog::BinSpec
7
+
8
+ let(:subject) { Bluebox }
9
+
10
+ describe "#services" do
11
+ it "includes all services" do
12
+ assert_includes Bluebox.services, :compute
13
+ assert_includes Bluebox.services, :dns
14
+ assert_includes Bluebox.services, :blb
15
+ end
16
+ end
17
+
18
+ describe "#class_for" do
19
+ describe "when requesting compute service" do
20
+ it "returns correct class" do
21
+ assert_equal Fog::Compute::Bluebox, Bluebox.class_for(:compute)
22
+ end
23
+ end
24
+
25
+ describe "when requesting dns service" do
26
+ it "returns correct class" do
27
+ assert_equal Fog::DNS::Bluebox, Bluebox.class_for(:dns)
28
+ end
29
+ end
30
+
31
+ describe "when requesting blb service" do
32
+ it "returns correct class" do
33
+ assert_equal Fog::Bluebox::BLB, Bluebox.class_for(:blb)
34
+ end
35
+ end
36
+ end
37
+
38
+ describe "#[]" do
39
+ describe "when requesting compute service" do
40
+ it "returns instance" do
41
+ Fog::Compute::Bluebox.stub(:new, "instance") do
42
+ assert_equal "instance", Bluebox[:compute]
43
+ end
44
+ end
45
+ end
46
+
47
+ describe "when requesting dns service" do
48
+ it "returns instance" do
49
+ Fog::DNS::Bluebox.stub(:new, "instance") do
50
+ assert_equal "instance", Bluebox[:dns]
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,30 @@
1
+ require "spec_helper"
2
+ require "fog/bin"
3
+ require "helpers/bin"
4
+
5
+ describe Brightbox do
6
+ include Fog::BinSpec
7
+
8
+ let(:subject) { Brightbox }
9
+
10
+ describe "#services" do
11
+ it "includes all services" do
12
+ assert_includes Brightbox.services, :compute
13
+ assert_includes Brightbox.services, :storage
14
+ end
15
+ end
16
+
17
+ describe "#class_for" do
18
+ describe "when requesting compute service" do
19
+ it "returns correct class" do
20
+ assert_equal Fog::Compute::Brightbox, Brightbox.class_for(:compute)
21
+ end
22
+ end
23
+
24
+ describe "when requesting storage service" do
25
+ it "returns correct class" do
26
+ assert_equal Fog::Storage::Brightbox, Brightbox.class_for(:storage)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,9 @@
1
+ require "spec_helper"
2
+ require "fog/bin"
3
+ require "helpers/bin"
4
+
5
+ describe Clodo do
6
+ include Fog::BinSpec
7
+
8
+ let(:subject) { Clodo }
9
+ end
@@ -0,0 +1,9 @@
1
+ require "spec_helper"
2
+ require "fog/bin"
3
+ require "helpers/bin"
4
+
5
+ describe CloudSigma do
6
+ include Fog::BinSpec
7
+
8
+ let(:subject) { CloudSigma }
9
+ end
@@ -0,0 +1,9 @@
1
+ require "spec_helper"
2
+ require "fog/bin"
3
+ require "helpers/bin"
4
+
5
+ describe Cloudstack do
6
+ include Fog::BinSpec
7
+
8
+ let(:subject) { Cloudstack }
9
+ end
@@ -0,0 +1,9 @@
1
+ require "spec_helper"
2
+ require "fog/bin"
3
+ require "helpers/bin"
4
+
5
+ describe DigitalOcean do
6
+ include Fog::BinSpec
7
+
8
+ let(:subject) { DigitalOcean }
9
+ end
@@ -0,0 +1,9 @@
1
+ require "spec_helper"
2
+ require "fog/bin"
3
+ require "helpers/bin"
4
+
5
+ describe DNSimple do
6
+ include Fog::BinSpec
7
+
8
+ let(:subject) { DNSimple }
9
+ end
@@ -0,0 +1,9 @@
1
+ require "spec_helper"
2
+ require "fog/bin"
3
+ require "helpers/bin"
4
+
5
+ describe DNSMadeEasy do
6
+ include Fog::BinSpec
7
+
8
+ let(:subject) { DNSMadeEasy }
9
+ end
@@ -0,0 +1,9 @@
1
+ require "spec_helper"
2
+ require "fog/bin"
3
+ require "helpers/bin"
4
+
5
+ describe Dreamhost do
6
+ include Fog::BinSpec
7
+
8
+ let(:subject) { Dreamhost }
9
+ end
@@ -0,0 +1,9 @@
1
+ require "spec_helper"
2
+ require "fog/bin"
3
+ require "helpers/bin"
4
+
5
+ describe Dynect do
6
+ include Fog::BinSpec
7
+
8
+ let(:subject) { Dynect }
9
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe Ecloud do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { Ecloud }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe Fogdocker do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { Fogdocker }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe Glesys do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { Glesys }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe GoGrid do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { GoGrid }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe Google do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { Google }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe IBM do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { IBM }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe InternetArchive do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { InternetArchive }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe Joyent do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { Joyent }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe Linode do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { Linode }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe Local do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { Local }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe Ninefold do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { Ninefold }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe OpenNebula do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { OpenNebula }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe OpenStack do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { OpenStack }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe Openvz do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { Openvz }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe Ovirt do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { Ovirt }
10
+ end
@@ -0,0 +1,9 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe Fog::PowerDNS do
7
+ include Fog::BinSpec
8
+ let(:subject) { PowerDNS }
9
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe ProfitBricks do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { ProfitBricks }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe Rackspace do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { Rackspace }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe Rage4 do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { Rage4 }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe RiakCS do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { RiakCS }
10
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest/autorun"
2
+ require "fog"
3
+ require "fog/bin"
4
+ require "helpers/bin"
5
+
6
+ describe SakuraCloud do
7
+ include Fog::BinSpec
8
+
9
+ let(:subject) { SakuraCloud }
10
+ end