smartdc 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. data/.document +5 -0
  2. data/Gemfile +16 -0
  3. data/LICENSE.md +20 -0
  4. data/README.md +87 -0
  5. data/VERSION +1 -0
  6. data/bin/sdc-addmachinemetadata +29 -0
  7. data/bin/sdc-addmachinetag +29 -0
  8. data/bin/sdc-createinstrumentation +28 -0
  9. data/bin/sdc-createkey +33 -0
  10. data/bin/sdc-createmachine +39 -0
  11. data/bin/sdc-createmachinesnapshot +28 -0
  12. data/bin/sdc-deleteinstrumentation +10 -0
  13. data/bin/sdc-deletekey +10 -0
  14. data/bin/sdc-deletemachine +10 -0
  15. data/bin/sdc-deletemachinemetadata +27 -0
  16. data/bin/sdc-deletemachinesnapshot +28 -0
  17. data/bin/sdc-deletemachinetag +27 -0
  18. data/bin/sdc-describeanalytics +11 -0
  19. data/bin/sdc-getdatacenter +11 -0
  20. data/bin/sdc-getdataset +11 -0
  21. data/bin/sdc-getinstrumentation +32 -0
  22. data/bin/sdc-getkey +11 -0
  23. data/bin/sdc-getmachine +11 -0
  24. data/bin/sdc-getmachinemetadata +11 -0
  25. data/bin/sdc-getmachinesnapshot +28 -0
  26. data/bin/sdc-getmachinetag +28 -0
  27. data/bin/sdc-getpackage +11 -0
  28. data/bin/sdc-listdatacenters +11 -0
  29. data/bin/sdc-listdatasets +11 -0
  30. data/bin/sdc-listinstrumentations +11 -0
  31. data/bin/sdc-listkeys +11 -0
  32. data/bin/sdc-listmachines +11 -0
  33. data/bin/sdc-listmachinesnapshots +11 -0
  34. data/bin/sdc-listmachinetags +11 -0
  35. data/bin/sdc-listpackages +11 -0
  36. data/bin/sdc-rebootmachine +10 -0
  37. data/bin/sdc-resizemachine +32 -0
  38. data/bin/sdc-setup +63 -0
  39. data/bin/sdc-startmachine +10 -0
  40. data/bin/sdc-startmachinefromsnapshot +28 -0
  41. data/bin/sdc-stopmachine +10 -0
  42. data/config/fixtures/instrumentation.json +4 -0
  43. data/config/fixtures/key.json +4 -0
  44. data/config/fixtures/tag.json +3 -0
  45. data/lib/cli_helper.rb +12 -0
  46. data/lib/faraday/response/mashify.rb +26 -0
  47. data/lib/faraday/response/parse_json.rb +22 -0
  48. data/lib/smartdc.rb +8 -0
  49. data/lib/smartdc/api/analytics.rb +22 -0
  50. data/lib/smartdc/api/analytics/instrumentations.rb +45 -0
  51. data/lib/smartdc/api/datacenters.rb +21 -0
  52. data/lib/smartdc/api/datasets.rb +21 -0
  53. data/lib/smartdc/api/keys.rb +31 -0
  54. data/lib/smartdc/api/machine/metadata.rb +31 -0
  55. data/lib/smartdc/api/machine/snapshots.rb +37 -0
  56. data/lib/smartdc/api/machine/tags.rb +31 -0
  57. data/lib/smartdc/api/machines.rb +75 -0
  58. data/lib/smartdc/api/packages.rb +21 -0
  59. data/lib/smartdc/client.rb +40 -0
  60. data/lib/smartdc/request.rb +85 -0
  61. data/smartdc.gemspec +138 -0
  62. data/spec/smartdc/api/analytics_spec.rb +32 -0
  63. data/spec/smartdc/api/datacenters_spec.rb +16 -0
  64. data/spec/smartdc/api/datasets_spec.rb +16 -0
  65. data/spec/smartdc/api/keys_spec.rb +32 -0
  66. data/spec/smartdc/api/machine/metadata_spec.rb +42 -0
  67. data/spec/smartdc/api/machine/snapshots_spec.rb +58 -0
  68. data/spec/smartdc/api/machine/tags_spec.rb +48 -0
  69. data/spec/smartdc/api/machines_spec.rb +96 -0
  70. data/spec/smartdc/api/packages_spec.rb +16 -0
  71. data/spec/smartdc/client_spec.rb +45 -0
  72. data/spec/smartdc/request_spec.rb +11 -0
  73. data/spec/smartdc_spec.rb +9 -0
  74. data/spec/spec_helper.rb +12 -0
  75. metadata +259 -0
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ client.request.return_variable = 'json'
8
+ puts client.analytics.describe
9
+ rescue => e
10
+ puts e
11
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ client.request.return_variable = 'json'
8
+ puts client.datacenters(ARGV[0]).read
9
+ rescue => e
10
+ puts e
11
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ client.request.return_variable = 'json'
8
+ puts client.datasets(ARGV[0]).read
9
+ rescue => e
10
+ puts e
11
+ end
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ options = {}
7
+ OptionParser.new do |opts|
8
+ opts.banner = "Usage: #{File.basename($0)} instrumentation.id [options]"
9
+ opts.on('-v', '--value', 'value raw') { options[:value] = true }
10
+ opts.on_tail('-h','--help') do
11
+ puts opts
12
+ exit
13
+ end
14
+
15
+ begin
16
+ opts.parse!(ARGV)
17
+ rescue => e
18
+ puts e.to_s << "\n" << opts.to_s
19
+ exit
20
+ end
21
+ end
22
+
23
+ begin
24
+ client.request.return_variable = 'json'
25
+ if options[:value]
26
+ puts client.analytics.instrumentations(ARGV[0]).value
27
+ else
28
+ puts client.analytics.instrumentations(ARGV[0]).read
29
+ end
30
+ rescue => e
31
+ puts e
32
+ end
data/bin/sdc-getkey ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ client.request.return_variable = 'json'
8
+ puts client.keys(ARGV[0]).read
9
+ rescue => e
10
+ puts e
11
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ client.request.return_variable = 'json'
8
+ puts client.machines(ARGV[0]).read
9
+ rescue => e
10
+ puts e
11
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ client.request.return_variable = 'json'
8
+ puts client.machines(ARGV[0]).metadata.find
9
+ rescue => e
10
+ puts e
11
+ end
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ options = {}
7
+ OptionParser.new do |opts|
8
+ opts.banner = "Usage: #{File.basename($0)} machine.id [options]"
9
+ opts.on('-n', '--name NAME', 'snapshot name.') {|v| options[:name] = v }
10
+ opts.on_tail('-h','--help') do
11
+ puts opts
12
+ exit
13
+ end
14
+
15
+ begin
16
+ opts.parse!(ARGV)
17
+ rescue => e
18
+ puts e.to_s << "\n" << opts.to_s
19
+ exit
20
+ end
21
+ end
22
+
23
+ begin
24
+ client.request.return_variable = 'json'
25
+ puts client.machines(ARGV[0]).snapshots(options[:name]).read
26
+ rescue => e
27
+ puts e
28
+ end
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ options = {}
7
+ OptionParser.new do |opts|
8
+ opts.banner = "Usage: #{File.basename($0)} machine.id [options]"
9
+ opts.on('-k', '--key NAME', 'Key Tag.') {|v| options[:key] = v }
10
+ opts.on_tail('-h','--help') do
11
+ puts opts
12
+ exit
13
+ end
14
+
15
+ begin
16
+ opts.parse!(ARGV)
17
+ rescue => e
18
+ puts e.to_s << "\n" << opts.to_s
19
+ exit
20
+ end
21
+ end
22
+
23
+ begin
24
+ client.request.return_variable = 'json'
25
+ puts client.machines(ARGV[0]).tags(options[:key]).read
26
+ rescue => e
27
+ puts e
28
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ client.request.return_variable = 'json'
8
+ puts client.packages((ARGV[0])).read
9
+ rescue => e
10
+ puts e
11
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ client.request.return_variable = 'json'
8
+ puts client.datacenters.find
9
+ rescue => e
10
+ puts e
11
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ client.request.return_variable = 'json'
8
+ puts client.datasets.find
9
+ rescue => e
10
+ puts e
11
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ client.request.return_variable = 'json'
8
+ puts client.analytics.instrumentations.find
9
+ rescue => e
10
+ puts e
11
+ end
data/bin/sdc-listkeys ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ client.request.return_variable = 'json'
8
+ puts client.keys.find
9
+ rescue => e
10
+ puts e
11
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ client.request.return_variable = 'json'
8
+ puts client.machines.find
9
+ rescue => e
10
+ puts e
11
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ client.request.return_variable = 'json'
8
+ puts client.machines(ARGV[0]).snapshots.find
9
+ rescue => e
10
+ puts e
11
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ client.request.return_variable = 'json'
8
+ puts client.machines(ARGV[0]).tags.find
9
+ rescue => e
10
+ puts e
11
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ client.request.return_variable = 'json'
8
+ puts client.packages.find
9
+ rescue => e
10
+ puts e
11
+ end
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ pp client.machines(ARGV[0]).reboot
8
+ rescue => e
9
+ puts e
10
+ end
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ options = {}
7
+ OptionParser.new do |opts|
8
+ opts.banner = "Usage: #{File.basename($0)} machine.id [options]"
9
+ opts.on('-p', '--package NAME', 'Name of the package to use on provisioning.') {|v| options[:package] = v }
10
+ opts.on('-h','--help') do
11
+ puts opts
12
+ print 'Packages(name):'
13
+ fixture('packages').each do |packages|
14
+ print ' ' + packages['name']
15
+ end
16
+ puts
17
+ exit
18
+ end
19
+
20
+ begin
21
+ opts.parse!(ARGV)
22
+ rescue => e
23
+ puts e.to_s << "\n" << opts.to_s
24
+ exit
25
+ end
26
+ end
27
+
28
+ begin
29
+ pp client.machines(ARGV[0]).resize options
30
+ rescue => e
31
+ puts e
32
+ end
data/bin/sdc-setup ADDED
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+ require 'pathname'
6
+
7
+ CONFIG = File.join(File.dirname(__FILE__), '..', 'config/config.json')
8
+ DATASETS = File.join(File.dirname(__FILE__), '..', 'config/fixtures/datasets.json')
9
+ PACKAGES = File.join(File.dirname(__FILE__), '..', 'config/fixtures/packages.json')
10
+ config = {}
11
+
12
+ config[:url] = ARGV[0] if ARGV[0]
13
+ unless config[:url]
14
+ puts 'url is empty.'
15
+ exit 1
16
+ end
17
+
18
+ print 'version:[~6.5] '
19
+ config[:version] = STDIN.gets.chomp.to_s
20
+ if config[:version].size == 0
21
+ config[:version] = '~6.5'
22
+ end
23
+
24
+ print 'Username (login): '
25
+ config[:username] = STDIN.gets.chomp.to_s
26
+ if config[:username].size == 0
27
+ puts 'Username is empty.'
28
+ exit 1
29
+ end
30
+
31
+ print 'Password: '
32
+ config[:password] = STDIN.gets.chomp.to_s
33
+ if config[:password].size == 0
34
+ puts 'Password is empty.'
35
+ exit 1
36
+ end
37
+
38
+ Pathname.new(File.dirname(CONFIG)).mkpath unless File.exist?(File.dirname(CONFIG))
39
+ File.open(CONFIG, 'w') do |file|
40
+ file.write MultiJson.encode(config)
41
+ end
42
+
43
+ begin
44
+ datacenters = client.datacenters.find
45
+ if client.datacenters.find.first[1] == config[:url]
46
+ puts 'Successful configuration.'
47
+
48
+ Pathname.new(File.dirname(DATASETS)).mkpath unless File.exist?(File.dirname(DATASETS))
49
+ File.open(DATASETS, 'w') do |file|
50
+ file.write MultiJson.encode(client.datasets.find)
51
+ end
52
+
53
+ Pathname.new(File.dirname(PACKAGES)).mkpath unless File.exist?(File.dirname(PACKAGES))
54
+ File.open(PACKAGES, 'w') do |file|
55
+ file.write MultiJson.encode(client.packages.find)
56
+ end
57
+ else
58
+ puts 'Failed Configuration.'
59
+ end
60
+ rescue => e
61
+ puts e
62
+ puts 'Failed Setup.'
63
+ end
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ pp client.machines(ARGV[0]).start
8
+ rescue => e
9
+ puts e
10
+ end
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ options = {}
7
+ OptionParser.new do |opts|
8
+ opts.banner = "Usage: #{File.basename($0)} machine.id [options]"
9
+ opts.on('-n', '--name NAME', 'snapshot name.') {|v| options[:name] = v }
10
+ opts.on_tail('-h','--help') do
11
+ puts opts
12
+ exit
13
+ end
14
+
15
+ begin
16
+ opts.parse!(ARGV)
17
+ rescue => e
18
+ puts e.to_s << "\n" << opts.to_s
19
+ exit
20
+ end
21
+ end
22
+
23
+ begin
24
+ client.request.return_variable = 'json'
25
+ puts client.machines(ARGV[0]).snapshots(options[:name]).start
26
+ rescue => e
27
+ puts e
28
+ end
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'cli_helper'
5
+
6
+ begin
7
+ pp client.machines(ARGV[0]).stop
8
+ rescue => e
9
+ puts e
10
+ end