smartdc 0.4.0 → 1.0.1

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 (100) hide show
  1. data/.document +0 -1
  2. data/.travis.yml +5 -0
  3. data/Gemfile +7 -10
  4. data/README.md +42 -69
  5. data/Rakefile +47 -0
  6. data/VERSION +1 -1
  7. data/bin/sdc +327 -0
  8. data/lib/cli_helper.rb +131 -8
  9. data/lib/configure.rb +73 -0
  10. data/lib/smartdc.rb +16 -1
  11. data/lib/smartdc/api/analytics.rb +29 -7
  12. data/lib/smartdc/api/analytics/heatmap.rb +20 -0
  13. data/lib/smartdc/api/datacenters.rb +6 -7
  14. data/lib/smartdc/api/datasets.rb +6 -7
  15. data/lib/smartdc/api/keys.rb +10 -11
  16. data/lib/smartdc/api/machine/metadata.rb +9 -15
  17. data/lib/smartdc/api/machine/snapshots.rb +16 -16
  18. data/lib/smartdc/api/machine/tags.rb +11 -12
  19. data/lib/smartdc/api/machines.rb +23 -23
  20. data/lib/smartdc/api/packages.rb +7 -8
  21. data/lib/smartdc/client.rb +14 -18
  22. data/lib/smartdc/request.rb +41 -51
  23. data/lib/smartdc/response.rb +24 -0
  24. data/lib/smartdc/response/raise_error.rb +1 -1
  25. data/smartdc.gemspec +51 -90
  26. data/spec/fixtures/analytics.json +26 -0
  27. data/spec/fixtures/datacenter.json +4 -0
  28. data/spec/fixtures/datacenters.json +3 -0
  29. data/spec/fixtures/datasets.json +38 -0
  30. data/spec/fixtures/keys.json +14 -0
  31. data/spec/fixtures/machines.json +36 -0
  32. data/spec/fixtures/packages.json +18 -0
  33. data/spec/fixtures/snapshots.json +8 -0
  34. data/spec/fixtures/tag.json +3 -0
  35. data/spec/spec_helper.rb +3 -12
  36. data/spec/unit/smartdc/api/analytics_spec.rb +53 -0
  37. data/spec/unit/smartdc/api/datacenters_spec.rb +31 -0
  38. data/spec/unit/smartdc/api/datasets_spec.rb +31 -0
  39. data/spec/unit/smartdc/api/keys_spec.rb +53 -0
  40. data/spec/unit/smartdc/api/machine/metadata_spec.rb +42 -0
  41. data/spec/unit/smartdc/api/machine/snapshots_spec.rb +132 -0
  42. data/spec/unit/smartdc/api/machine/tags_spec.rb +53 -0
  43. data/spec/unit/smartdc/api/machines_spec.rb +53 -0
  44. data/spec/unit/smartdc/api/packages_spec.rb +31 -0
  45. data/spec/{smartdc → unit/smartdc}/client_spec.rb +0 -6
  46. data/spec/{smartdc_spec.rb → unit/smartdc_spec.rb} +1 -1
  47. metadata +72 -140
  48. data/LICENSE.md +0 -20
  49. data/bin/sdc-addmachinemetadata +0 -29
  50. data/bin/sdc-addmachinetag +0 -29
  51. data/bin/sdc-createinstrumentation +0 -27
  52. data/bin/sdc-createkey +0 -32
  53. data/bin/sdc-createmachine +0 -39
  54. data/bin/sdc-createmachinesnapshot +0 -27
  55. data/bin/sdc-deleteinstrumentation +0 -12
  56. data/bin/sdc-deletekey +0 -12
  57. data/bin/sdc-deletemachine +0 -12
  58. data/bin/sdc-deletemachinemetadata +0 -29
  59. data/bin/sdc-deletemachinesnapshot +0 -29
  60. data/bin/sdc-deletemachinetag +0 -29
  61. data/bin/sdc-describeanalytics +0 -10
  62. data/bin/sdc-getdatacenter +0 -10
  63. data/bin/sdc-getdataset +0 -10
  64. data/bin/sdc-getinstrumentation +0 -31
  65. data/bin/sdc-getkey +0 -10
  66. data/bin/sdc-getmachine +0 -12
  67. data/bin/sdc-getmachinemetadata +0 -12
  68. data/bin/sdc-getmachinesnapshot +0 -27
  69. data/bin/sdc-getmachinetag +0 -27
  70. data/bin/sdc-getpackage +0 -10
  71. data/bin/sdc-listdatacenters +0 -10
  72. data/bin/sdc-listdatasets +0 -10
  73. data/bin/sdc-listinstrumentations +0 -10
  74. data/bin/sdc-listkeys +0 -10
  75. data/bin/sdc-listmachines +0 -10
  76. data/bin/sdc-listmachinesnapshots +0 -10
  77. data/bin/sdc-listmachinetags +0 -10
  78. data/bin/sdc-listpackages +0 -10
  79. data/bin/sdc-rebootmachine +0 -12
  80. data/bin/sdc-resizemachine +0 -34
  81. data/bin/sdc-setup +0 -67
  82. data/bin/sdc-startmachine +0 -12
  83. data/bin/sdc-startmachinefromsnapshot +0 -29
  84. data/bin/sdc-stopmachine +0 -12
  85. data/config/fixtures/instrumentation.json +0 -4
  86. data/config/fixtures/key.json +0 -4
  87. data/config/fixtures/tag.json +0 -3
  88. data/lib/smartdc/api/analytics/instrumentations.rb +0 -44
  89. data/lib/smartdc/response/mashify.rb +0 -29
  90. data/lib/smartdc/response/parse_json.rb +0 -26
  91. data/spec/smartdc/api/analytics_spec.rb +0 -32
  92. data/spec/smartdc/api/datacenters_spec.rb +0 -16
  93. data/spec/smartdc/api/datasets_spec.rb +0 -16
  94. data/spec/smartdc/api/keys_spec.rb +0 -32
  95. data/spec/smartdc/api/machine/metadata_spec.rb +0 -59
  96. data/spec/smartdc/api/machine/snapshots_spec.rb +0 -70
  97. data/spec/smartdc/api/machine/tags_spec.rb +0 -65
  98. data/spec/smartdc/api/machines_spec.rb +0 -92
  99. data/spec/smartdc/api/packages_spec.rb +0 -16
  100. data/spec/smartdc/request_spec.rb +0 -12
@@ -1,26 +0,0 @@
1
- require 'faraday'
2
-
3
- module Smartdc
4
- module Response
5
- class ParseJson < Faraday::Response::Middleware
6
- dependency do
7
- require 'multi_json'
8
- end
9
-
10
- def parse(body)
11
- case body
12
- when ''
13
- nil
14
- when 'true'
15
- true
16
- when 'false'
17
- false
18
- else
19
- ::MultiJson.decode(body)
20
- end
21
- rescue
22
- body
23
- end
24
- end
25
- end
26
- end
@@ -1,32 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Smartdc::Api::instrumentations" do
4
- before(:all) do
5
- @fixture = fixture('instrumentation')
6
- @instrumentation = client.analytics.instrumentations.create @fixture
7
- end
8
-
9
- describe ".create" do
10
- it "should return a instrumentation" do
11
- @instrumentation.module.should eq @fixture['module']
12
- end
13
- end
14
-
15
- describe ".read" do
16
- it "should return a instrumentation" do
17
- client.analytics.instrumentations(@instrumentation.id).read.module.should eq @fixture['module']
18
- end
19
- end
20
-
21
- describe ".find" do
22
- it "should return some instrumentations" do
23
- client.analytics.instrumentations.find.count.should > 0
24
- end
25
- end
26
-
27
- describe ".delete" do
28
- it "should return true when success" do
29
- client.analytics.instrumentations(@instrumentation.id).delete.should be_nil
30
- end
31
- end
32
- end
@@ -1,16 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Smartdc::Api::Datacenters" do
4
- describe ".find" do
5
- it "should return some datacenters" do
6
- client.datacenters.find.count.should > 0
7
- end
8
- end
9
-
10
- describe ".read" do
11
- it "should return a datacenter" do
12
- datacenters = client.datacenters.find
13
- client.datacenters(datacenters.first[0]).read[:message].should match(/#{datacenters.first[0]}/)
14
- end
15
- end
16
- end
@@ -1,16 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Smartdc::Api::Datasets" do
4
- describe ".find" do
5
- it "should return some datasets" do
6
- client.datasets.find.count.should > 0
7
- end
8
- end
9
-
10
- describe ".read" do
11
- it "should return a dataset" do
12
- datasets = client.datasets.find
13
- client.datasets(datasets[0].id).read.id.should eq datasets[0].id
14
- end
15
- end
16
- end
@@ -1,32 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Smartdc::Api::Keys" do
4
- before(:all) do
5
- @key = fixture('key')
6
- end
7
-
8
- describe ".create" do
9
- it "should return a key" do
10
- key = client.keys.create @key
11
- key.name.should eq @key['name']
12
- end
13
- end
14
-
15
- describe ".read" do
16
- it "should return a key" do
17
- client.keys(@key['name']).read.name.should eq @key['name']
18
- end
19
- end
20
-
21
- describe ".find" do
22
- it "should return some keys" do
23
- client.keys.find.count.should > 0
24
- end
25
- end
26
-
27
- describe ".delete" do
28
- it "should return true when success" do
29
- client.keys(@key['name']).delete.should be_nil
30
- end
31
- end
32
- end
@@ -1,59 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Smartdc::Api::Machine::Metadata" do
4
- before(:all) do
5
- @fixture = fixture('tag')
6
- @name = UUID.new.generate
7
- client.datasets.find.each do |dataset|
8
- if dataset.type == "smartmachine"
9
- @dataset_urn = dataset.urn
10
- break
11
- end
12
- end
13
-
14
- machine = {
15
- 'name' => @name,
16
- 'dataset' => @dataset_urn
17
- }
18
- @machine = client.machines.create machine
19
- machine = client.machines(@machine.id)
20
- 88.times do |i|
21
- break if machine.read.state == 'running'
22
- sleep i
23
- end
24
- 88.times do |i|
25
- break if machine.read.state == 'running'
26
- sleep i
27
- end
28
- end
29
-
30
- describe ".create" do
31
- it "should return a tag" do
32
- tag = client.machines(@machine.id).metadata.create @fixture
33
- tag.name.should eq @fixture['name']
34
- end
35
- end
36
-
37
- describe ".find" do
38
- it "should return some metadata" do
39
- client.machines(@machine.id).metadata.find.count.should > 0
40
- end
41
- end
42
-
43
- describe ".delete" do
44
- it "should return true when success" do
45
- client.machines(@machine.id).metadata('name').delete.should be_nil
46
- end
47
- end
48
-
49
- after(:all) do
50
- sleep 8
51
- machine = client.machines(@machine.id)
52
- machine.stop
53
- 88.times do |i|
54
- break if machine.read.state == 'stopped'
55
- sleep i
56
- end
57
- client.machines(@machine.id).delete
58
- end
59
- end
@@ -1,70 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Smartdc::Api::Machine::Snapshots" do
4
- before(:all) do
5
- @fixture = fixture('tag')
6
- @name = UUID.new.generate
7
- client.datasets.find.each do |dataset|
8
- if dataset.type == "smartmachine"
9
- @dataset_urn = dataset.urn
10
- break
11
- end
12
- end
13
-
14
- machine = {
15
- 'name' => @name,
16
- 'dataset' => @dataset_urn
17
- }
18
- @machine = client.machines.create machine
19
- machine = client.machines(@machine.id)
20
- 88.times do |i|
21
- break if machine.read.state == 'running'
22
- sleep i
23
- end
24
- 88.times do |i|
25
- break if machine.read.state == 'running'
26
- sleep i
27
- end
28
- machine.stop
29
- 88.times do |i|
30
- break if machine.read.state == 'stopped'
31
- sleep i
32
- end
33
- end
34
-
35
- describe ".create" do
36
- it "should return a snapshot" do
37
- snapshot = client.machines(@machine.id).snapshots.create @fixture
38
- snapshot.name.should eq @fixture['name']
39
- end
40
- end
41
-
42
- describe ".read" do
43
- it "should return a snapshot" do
44
- client.machines(@machine.id).snapshots('sample').read.name.should eq @fixture['name']
45
- end
46
- end
47
-
48
- describe ".find" do
49
- it "should return some snapshots" do
50
- client.machines(@machine.id).snapshots.find.count.should > 0
51
- end
52
- end
53
-
54
- describe ".delete" do
55
- it "should return true when success" do
56
- client.machines(@machine.id).snapshots('sample').delete.should be_nil
57
- end
58
- end
59
-
60
- after(:all) do
61
- sleep 8
62
- machine = client.machines(@machine.id)
63
- machine.stop
64
- 88.times do |i|
65
- break if machine.read.state == 'stopped'
66
- sleep i
67
- end
68
- client.machines(@machine.id).delete
69
- end
70
- end
@@ -1,65 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Smartdc::Api::Machine::Tags" do
4
- before(:all) do
5
- @fixture = fixture('tag')
6
- @name = UUID.new.generate
7
- client.datasets.find.each do |dataset|
8
- if dataset.type == "smartmachine"
9
- @dataset_urn = dataset.urn
10
- break
11
- end
12
- end
13
-
14
- machine = {
15
- 'name' => @name,
16
- 'dataset' => @dataset_urn
17
- }
18
- @machine = client.machines.create machine
19
- machine = client.machines(@machine.id)
20
- 88.times do |i|
21
- break if machine.read.state == 'running'
22
- sleep i
23
- end
24
- 88.times do |i|
25
- break if machine.read.state == 'running'
26
- sleep i
27
- end
28
- end
29
-
30
- describe ".create" do
31
- it "should return a tag" do
32
- tag = client.machines(@machine.id).tags.create @fixture
33
- tag.name.should eq @fixture['name']
34
- end
35
- end
36
-
37
- describe ".read" do
38
- it "should return a tag" do
39
- client.machines(@machine.id).tags('name').read.should eq @fixture['name']
40
- end
41
- end
42
-
43
- describe ".find" do
44
- it "should return some tags" do
45
- client.machines(@machine.id).tags.find.count.should > 0
46
- end
47
- end
48
-
49
- describe ".delete" do
50
- it "should return true when success" do
51
- client.machines(@machine.id).tags('name').delete.should be_nil
52
- end
53
- end
54
-
55
- after(:all) do
56
- sleep 8
57
- machine = client.machines(@machine.id)
58
- machine.stop
59
- 88.times do |i|
60
- break if machine.read.state == 'stopped'
61
- sleep i
62
- end
63
- client.machines(@machine.id).delete
64
- end
65
- end
@@ -1,92 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Smartdc::Api::Machines" do
4
- before(:all) do
5
- @name = UUID.new.generate
6
- client.datasets.find.each do |dataset|
7
- if dataset.type == "smartmachine"
8
- @dataset_urn = dataset.urn
9
- break
10
- end
11
- end
12
-
13
- machine = {
14
- 'name' => @name,
15
- 'dataset' => @dataset_urn
16
- }
17
- @machine = client.machines.create machine
18
- end
19
-
20
- describe ".create" do
21
- it "should return a machine" do
22
- @machine.name.should eq @name
23
- end
24
- end
25
-
26
- describe ".read" do
27
- it "should return a machine" do
28
- client.machines(@machine.id).read.name.should eq @name
29
- end
30
-
31
- it "should return state at running when success" do
32
- machine = client.machines(@machine.id)
33
- 88.times do |i|
34
- break if machine.read.state == 'running'
35
- sleep i
36
- end
37
- 88.times do |i|
38
- break if machine.read.state == 'running'
39
- sleep i
40
- end
41
- machine.read.state.should eq 'running'
42
- end
43
- end
44
-
45
- describe ".find" do
46
- it "should return some machines" do
47
- client.machines.find.count.should > 0
48
- end
49
- end
50
-
51
- describe ".stop" do
52
- it "should return true when success" do
53
- client.machines(@machine.id).stop.should be_nil
54
- end
55
-
56
- it "should return state at stopped when success" do
57
- machine = client.machines(@machine.id)
58
- 88.times do |i|
59
- break if machine.read.state == 'stopped'
60
- sleep i
61
- end
62
- machine.read.state.should eq 'stopped'
63
- end
64
- end
65
-
66
- describe ".start" do
67
- it "should return true when success" do
68
- client.machines(@machine.id).start.should be_nil
69
- end
70
-
71
- it "should return state at running when success" do
72
- machine = client.machines(@machine.id)
73
- 88.times do |i|
74
- break if machine.read.state == 'running'
75
- sleep i
76
- end
77
- machine.read.state.should eq 'running'
78
- end
79
- end
80
-
81
- describe ".delete" do
82
- it "should return true when success" do
83
- machine = client.machines(@machine.id)
84
- machine.stop
85
- 88.times do |i|
86
- break if machine.read.state == 'stopped'
87
- sleep i
88
- end
89
- client.machines(@machine.id).delete.should be_nil
90
- end
91
- end
92
- end
@@ -1,16 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Smartdc::Api::Packages" do
4
- describe ".find" do
5
- it "should return some packages" do
6
- client.packages.find.count.should > 0
7
- end
8
- end
9
-
10
- describe ".read" do
11
- it "should return a dataset" do
12
- packages = client.packages.find
13
- client.packages(packages[0].name).read.name.should eq packages[0].name
14
- end
15
- end
16
- end
@@ -1,12 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Smartdc::Request" do
4
- describe "http response status" do
5
- it "should return a response status" do
6
- request = Smartdc::Request.new(fixture('config', 'config'))
7
- expect{
8
- request.get('smartdc/')
9
- }.to raise_error(Smartdc::Error::NotFound)
10
- end
11
- end
12
- end