smartdc 0.3.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 (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