qtc-sdk 0.3.0 → 0.3.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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +18 -18
  3. data/Changelog.md +18 -14
  4. data/Gemfile +4 -4
  5. data/LICENSE.txt +22 -22
  6. data/README.md +44 -44
  7. data/Rakefile +1 -1
  8. data/bin/qtc-cli +13 -13
  9. data/lib/qtc-sdk.rb +1 -1
  10. data/lib/qtc/cli/commands.rb +15 -15
  11. data/lib/qtc/cli/common.rb +146 -146
  12. data/lib/qtc/cli/eds/base.rb +27 -27
  13. data/lib/qtc/cli/eds/commands.rb +20 -20
  14. data/lib/qtc/cli/eds/instances.rb +30 -30
  15. data/lib/qtc/cli/mar/apps.rb +116 -116
  16. data/lib/qtc/cli/mar/base.rb +60 -60
  17. data/lib/qtc/cli/mar/commands.rb +221 -221
  18. data/lib/qtc/cli/mar/debug.rb +88 -87
  19. data/lib/qtc/cli/mar/domains.rb +35 -35
  20. data/lib/qtc/cli/mar/env.rb +38 -38
  21. data/lib/qtc/cli/mar/repository.rb +24 -24
  22. data/lib/qtc/cli/mar/ssl_certificates.rb +40 -40
  23. data/lib/qtc/cli/mar/stack.rb +29 -29
  24. data/lib/qtc/cli/mdb/base.rb +47 -47
  25. data/lib/qtc/cli/mdb/commands.rb +43 -43
  26. data/lib/qtc/cli/mdb/instances.rb +79 -79
  27. data/lib/qtc/cli/platform/clouds.rb +33 -33
  28. data/lib/qtc/cli/platform/commands.rb +132 -132
  29. data/lib/qtc/cli/platform/datacenters.rb +23 -23
  30. data/lib/qtc/cli/platform/ssh_keys.rb +41 -41
  31. data/lib/qtc/cli/platform/user.rb +25 -25
  32. data/lib/qtc/cli/platform/vpn.rb +93 -93
  33. data/lib/qtc/client.rb +170 -170
  34. data/lib/qtc/eds/client.rb +116 -116
  35. data/lib/qtc/eds/collection.rb +124 -124
  36. data/lib/qtc/eds/user_collection.rb +13 -13
  37. data/lib/qtc/eds/usergroup_collection.rb +41 -41
  38. data/lib/qtc/errors.rb +13 -13
  39. data/lib/qtc/version.rb +3 -3
  40. data/qtc-sdk.gemspec +28 -28
  41. data/spec/unit/qtc/client_spec.rb +147 -147
  42. metadata +18 -18
@@ -1,14 +1,14 @@
1
- module Qtc
2
- module Eds
3
- class UserCollection < Collection
4
-
5
- ##
6
- # Initialize EDS user collection
7
- #
8
- # @param [Qtc::Client] client
9
- def initialize(client)
10
- super(client, '/users')
11
- end
12
- end
13
- end
1
+ module Qtc
2
+ module Eds
3
+ class UserCollection < Collection
4
+
5
+ ##
6
+ # Initialize EDS user collection
7
+ #
8
+ # @param [Qtc::Client] client
9
+ def initialize(client)
10
+ super(client, '/users')
11
+ end
12
+ end
13
+ end
14
14
  end
@@ -1,42 +1,42 @@
1
- module Qtc
2
- module Eds
3
- class UsergroupCollection < Collection
4
-
5
- ##
6
- # Initialize EDS usergroup collection
7
- #
8
- # @param [Qtc::Client] client
9
- def initialize(client)
10
- super(client, '/usergroups')
11
- end
12
-
13
- ##
14
- # Add member to usergroup
15
- #
16
- # @param [String] id
17
- # @param [Hash] user
18
- def add_member(id, user)
19
- client.post("#{path}/#{id}/members", user)
20
- end
21
-
22
- ##
23
- # Remove member from usergroup
24
- #
25
- # @param [String] id
26
- # @param [Hash] user
27
- def remove_member(id, user)
28
- client.delete("#{path}/#{id}/members", user)
29
- end
30
-
31
- ##
32
- # Get usergroup members
33
- #
34
- # @param [String] id
35
- # @return [Array<Hash>]
36
- def members(id)
37
- response = client.get("#{path}/#{id}/members")
38
- response['results']
39
- end
40
- end
41
- end
1
+ module Qtc
2
+ module Eds
3
+ class UsergroupCollection < Collection
4
+
5
+ ##
6
+ # Initialize EDS usergroup collection
7
+ #
8
+ # @param [Qtc::Client] client
9
+ def initialize(client)
10
+ super(client, '/usergroups')
11
+ end
12
+
13
+ ##
14
+ # Add member to usergroup
15
+ #
16
+ # @param [String] id
17
+ # @param [Hash] user
18
+ def add_member(id, user)
19
+ client.post("#{path}/#{id}/members", user)
20
+ end
21
+
22
+ ##
23
+ # Remove member from usergroup
24
+ #
25
+ # @param [String] id
26
+ # @param [Hash] user
27
+ def remove_member(id, user)
28
+ client.delete("#{path}/#{id}/members", user)
29
+ end
30
+
31
+ ##
32
+ # Get usergroup members
33
+ #
34
+ # @param [String] id
35
+ # @return [Array<Hash>]
36
+ def members(id)
37
+ response = client.get("#{path}/#{id}/members")
38
+ response['results']
39
+ end
40
+ end
41
+ end
42
42
  end
data/lib/qtc/errors.rb CHANGED
@@ -1,13 +1,13 @@
1
- module Qtc
2
- module Errors
3
- class StandardError < ::StandardError
4
-
5
- attr_reader :status
6
-
7
- def initialize(status, message)
8
- @status = status
9
- super(message)
10
- end
11
- end
12
- end
13
- end
1
+ module Qtc
2
+ module Errors
3
+ class StandardError < ::StandardError
4
+
5
+ attr_reader :status
6
+
7
+ def initialize(status, message)
8
+ @status = status
9
+ super(message)
10
+ end
11
+ end
12
+ end
13
+ end
data/lib/qtc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
- module Qtc
2
- VERSION = '0.3.0'
3
- end
1
+ module Qtc
2
+ VERSION = '0.3.1'
3
+ end
data/qtc-sdk.gemspec CHANGED
@@ -1,28 +1,28 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'qtc/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = 'qtc-sdk'
8
- spec.version = Qtc::VERSION
9
- spec.authors = ['Jari Kolehmainen']
10
- spec.email = ['jari.kolehmainen@digia.com']
11
- spec.summary = %q{Qt Cloud Services SDK for Ruby}
12
- spec.description = %q{Qt Cloud Services SDK for Ruby}
13
- spec.homepage = 'https://github.com/jakolehm/qtc-sdk-ruby'
14
- spec.license = 'MIT'
15
- spec.required_ruby_version = '>= 1.9.3'
16
-
17
- spec.files = `git ls-files -z`.split("\x0")
18
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
- spec.require_paths = ['lib']
21
-
22
- spec.add_development_dependency 'bundler', '~> 1.5'
23
- spec.add_development_dependency 'rake'
24
- spec.add_development_dependency 'rspec', '~> 2.14.0'
25
- spec.add_runtime_dependency 'httpclient', '~> 2.3'
26
- spec.add_runtime_dependency 'commander'
27
- spec.add_runtime_dependency 'inifile'
28
- end
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'qtc/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'qtc-sdk'
8
+ spec.version = Qtc::VERSION
9
+ spec.authors = ['Jari Kolehmainen']
10
+ spec.email = ['jari.kolehmainen@digia.com']
11
+ spec.summary = %q{Qt Cloud Services SDK for Ruby}
12
+ spec.description = %q{Qt Cloud Services SDK for Ruby}
13
+ spec.homepage = 'https://github.com/jakolehm/qtc-sdk-ruby'
14
+ spec.license = 'MIT'
15
+ spec.required_ruby_version = '>= 1.9.3'
16
+
17
+ spec.files = `git ls-files -z`.split("\x0")
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
+ spec.require_paths = ['lib']
21
+
22
+ spec.add_development_dependency 'bundler', '~> 1.5'
23
+ spec.add_development_dependency 'rake'
24
+ spec.add_development_dependency 'rspec', '~> 2.14.0'
25
+ spec.add_runtime_dependency 'httpclient', '~> 2.3'
26
+ spec.add_runtime_dependency 'commander'
27
+ spec.add_runtime_dependency 'inifile'
28
+ end
@@ -1,148 +1,148 @@
1
- require 'qtc-sdk'
2
-
3
-
4
- describe Qtc::Client do
5
-
6
- let(:test_client) do
7
- Qtc::Client.new('https://api.qtc.io')
8
- end
9
-
10
- describe '#initialize' do
11
- it 'accepts single parameter (api_url)' do
12
- expect {
13
- Qtc::Client.new('https://api.qtc.io')
14
- }.not_to raise_exception
15
- end
16
-
17
- it 'accepts optional second parameter (headers)' do
18
- expect {
19
- client = Qtc::Client.new('https://api.qtc.io', {'Foo' => 'Bar'})
20
- expect(client.default_headers['Foo']).to eq('Bar')
21
- }.not_to raise_exception
22
- end
23
- end
24
-
25
- describe '#get' do
26
- it 'sends GET request with correct parameters' do
27
- params = {test: 1}
28
- headers = {'X-Test-Header' => 'some_value'}
29
- test_client.http_client.should_receive(:get).with(
30
- 'https://api.qtc.io/v1/ping',
31
- params,
32
- hash_including(headers)
33
- ).and_return(double(:response, status: 200).as_null_object)
34
- test_client.get('/v1/ping', params, headers)
35
- end
36
-
37
- it 'raises exception when response is an error' do
38
- data = {name: 'Test'}
39
- test_client.http_client.should_receive(:get).and_return(double(:response, status: 400).as_null_object)
40
- expect {
41
- test_client.get('/v1/instances', data)
42
- }.to raise_error(Qtc::Errors::StandardError)
43
- end
44
-
45
- it 'returns parsed json responses' do
46
- data = {'name' => 'Test'}
47
- test_client.http_client.should_receive(:get).and_return(double(:response, status: 200, body: data.to_json).as_null_object)
48
- resp = test_client.get('/v1/instances', data)
49
- expect(resp).to eq(data)
50
- end
51
- end
52
-
53
- describe '#post' do
54
- it 'sends POST request with correct parameters' do
55
- data = {name: 'Test'}
56
- params = {test: 1}
57
- headers = {'Authorization' => 'Bearer token'}
58
- test_client.http_client.should_receive(:post).with(
59
- 'https://api.qtc.io/v1/accounts',
60
- {
61
- header: hash_including(headers),
62
- body: data.to_json,
63
- query: params
64
- }
65
- ).and_return(double(:response, status: 201).as_null_object)
66
- test_client.post('/v1/accounts', data, params, headers)
67
- end
68
-
69
- it 'raises exception when response is an error' do
70
- data = {name: 'Test'}
71
- test_client.http_client.should_receive(:post).and_return(double(:response, status: 400).as_null_object)
72
- expect {
73
- test_client.post('/v1/accounts', data)
74
- }.to raise_error(Qtc::Errors::StandardError)
75
- end
76
-
77
- it 'returns parsed json responses' do
78
- data = {'name' => 'Test'}
79
- test_client.http_client.should_receive(:post).and_return(double(:response, status: 201, body: data.to_json).as_null_object)
80
- resp = test_client.post('/v1/accounts', data)
81
- expect(resp).to eq(data)
82
- end
83
- end
84
-
85
- describe '#put' do
86
- it 'sends PUT request with correct parameters' do
87
- data = {name: 'Test'}
88
- params = {test: 1}
89
- headers = {'Authorization' => 'Bearer token'}
90
- test_client.http_client.should_receive(:put).with(
91
- 'https://api.qtc.io/v1/accounts',
92
- {
93
- header: hash_including(headers),
94
- body: data.to_json,
95
- query: params
96
- }
97
- ).and_return(double(:response, status: 201).as_null_object)
98
- test_client.put('/v1/accounts', data, params, headers)
99
- end
100
-
101
- it 'raises exception when response is an error' do
102
- data = {name: 'Test'}
103
- test_client.http_client.should_receive(:put).and_return(double(:response, status: 400).as_null_object)
104
- expect {
105
- test_client.put('/v1/accounts', data)
106
- }.to raise_error(Qtc::Errors::StandardError)
107
- end
108
-
109
- it 'returns parsed json responses' do
110
- data = {'name' => 'Test'}
111
- test_client.http_client.should_receive(:put).and_return(double(:response, status: 201, body: data.to_json).as_null_object)
112
- resp = test_client.put('/v1/accounts', data)
113
- expect(resp).to eq(data)
114
- end
115
- end
116
-
117
- describe '#delete' do
118
- it 'sends DELETE request with correct parameters' do
119
- data = {name: 'Test'}
120
- params = {test: 1}
121
- headers = {'Authorization' => 'Bearer token'}
122
- test_client.http_client.should_receive(:delete).with(
123
- 'https://api.qtc.io/v1/accounts',
124
- {
125
- header: hash_including(headers),
126
- body: data.to_json,
127
- query: params
128
- }
129
- ).and_return(double(:response, status: 200).as_null_object)
130
- test_client.delete('/v1/accounts', data, params, headers)
131
- end
132
-
133
- it 'raises exception when response is an error' do
134
- data = {name: 'Test'}
135
- test_client.http_client.should_receive(:delete).and_return(double(:response, status: 400).as_null_object)
136
- expect {
137
- test_client.delete('/v1/accounts', data)
138
- }.to raise_error(Qtc::Errors::StandardError)
139
- end
140
-
141
- it 'returns parsed json responses' do
142
- data = {'name' => 'Test'}
143
- test_client.http_client.should_receive(:delete).and_return(double(:response, status: 200, body: data.to_json).as_null_object)
144
- resp = test_client.delete('/v1/accounts', data)
145
- expect(resp).to eq(data)
146
- end
147
- end
1
+ require 'qtc-sdk'
2
+
3
+
4
+ describe Qtc::Client do
5
+
6
+ let(:test_client) do
7
+ Qtc::Client.new('https://api.qtc.io')
8
+ end
9
+
10
+ describe '#initialize' do
11
+ it 'accepts single parameter (api_url)' do
12
+ expect {
13
+ Qtc::Client.new('https://api.qtc.io')
14
+ }.not_to raise_exception
15
+ end
16
+
17
+ it 'accepts optional second parameter (headers)' do
18
+ expect {
19
+ client = Qtc::Client.new('https://api.qtc.io', {'Foo' => 'Bar'})
20
+ expect(client.default_headers['Foo']).to eq('Bar')
21
+ }.not_to raise_exception
22
+ end
23
+ end
24
+
25
+ describe '#get' do
26
+ it 'sends GET request with correct parameters' do
27
+ params = {test: 1}
28
+ headers = {'X-Test-Header' => 'some_value'}
29
+ test_client.http_client.should_receive(:get).with(
30
+ 'https://api.qtc.io/v1/ping',
31
+ params,
32
+ hash_including(headers)
33
+ ).and_return(double(:response, status: 200).as_null_object)
34
+ test_client.get('/v1/ping', params, headers)
35
+ end
36
+
37
+ it 'raises exception when response is an error' do
38
+ data = {name: 'Test'}
39
+ test_client.http_client.should_receive(:get).and_return(double(:response, status: 400).as_null_object)
40
+ expect {
41
+ test_client.get('/v1/instances', data)
42
+ }.to raise_error(Qtc::Errors::StandardError)
43
+ end
44
+
45
+ it 'returns parsed json responses' do
46
+ data = {'name' => 'Test'}
47
+ test_client.http_client.should_receive(:get).and_return(double(:response, status: 200, body: data.to_json).as_null_object)
48
+ resp = test_client.get('/v1/instances', data)
49
+ expect(resp).to eq(data)
50
+ end
51
+ end
52
+
53
+ describe '#post' do
54
+ it 'sends POST request with correct parameters' do
55
+ data = {name: 'Test'}
56
+ params = {test: 1}
57
+ headers = {'Authorization' => 'Bearer token'}
58
+ test_client.http_client.should_receive(:post).with(
59
+ 'https://api.qtc.io/v1/accounts',
60
+ {
61
+ header: hash_including(headers),
62
+ body: data.to_json,
63
+ query: params
64
+ }
65
+ ).and_return(double(:response, status: 201).as_null_object)
66
+ test_client.post('/v1/accounts', data, params, headers)
67
+ end
68
+
69
+ it 'raises exception when response is an error' do
70
+ data = {name: 'Test'}
71
+ test_client.http_client.should_receive(:post).and_return(double(:response, status: 400).as_null_object)
72
+ expect {
73
+ test_client.post('/v1/accounts', data)
74
+ }.to raise_error(Qtc::Errors::StandardError)
75
+ end
76
+
77
+ it 'returns parsed json responses' do
78
+ data = {'name' => 'Test'}
79
+ test_client.http_client.should_receive(:post).and_return(double(:response, status: 201, body: data.to_json).as_null_object)
80
+ resp = test_client.post('/v1/accounts', data)
81
+ expect(resp).to eq(data)
82
+ end
83
+ end
84
+
85
+ describe '#put' do
86
+ it 'sends PUT request with correct parameters' do
87
+ data = {name: 'Test'}
88
+ params = {test: 1}
89
+ headers = {'Authorization' => 'Bearer token'}
90
+ test_client.http_client.should_receive(:put).with(
91
+ 'https://api.qtc.io/v1/accounts',
92
+ {
93
+ header: hash_including(headers),
94
+ body: data.to_json,
95
+ query: params
96
+ }
97
+ ).and_return(double(:response, status: 201).as_null_object)
98
+ test_client.put('/v1/accounts', data, params, headers)
99
+ end
100
+
101
+ it 'raises exception when response is an error' do
102
+ data = {name: 'Test'}
103
+ test_client.http_client.should_receive(:put).and_return(double(:response, status: 400).as_null_object)
104
+ expect {
105
+ test_client.put('/v1/accounts', data)
106
+ }.to raise_error(Qtc::Errors::StandardError)
107
+ end
108
+
109
+ it 'returns parsed json responses' do
110
+ data = {'name' => 'Test'}
111
+ test_client.http_client.should_receive(:put).and_return(double(:response, status: 201, body: data.to_json).as_null_object)
112
+ resp = test_client.put('/v1/accounts', data)
113
+ expect(resp).to eq(data)
114
+ end
115
+ end
116
+
117
+ describe '#delete' do
118
+ it 'sends DELETE request with correct parameters' do
119
+ data = {name: 'Test'}
120
+ params = {test: 1}
121
+ headers = {'Authorization' => 'Bearer token'}
122
+ test_client.http_client.should_receive(:delete).with(
123
+ 'https://api.qtc.io/v1/accounts',
124
+ {
125
+ header: hash_including(headers),
126
+ body: data.to_json,
127
+ query: params
128
+ }
129
+ ).and_return(double(:response, status: 200).as_null_object)
130
+ test_client.delete('/v1/accounts', data, params, headers)
131
+ end
132
+
133
+ it 'raises exception when response is an error' do
134
+ data = {name: 'Test'}
135
+ test_client.http_client.should_receive(:delete).and_return(double(:response, status: 400).as_null_object)
136
+ expect {
137
+ test_client.delete('/v1/accounts', data)
138
+ }.to raise_error(Qtc::Errors::StandardError)
139
+ end
140
+
141
+ it 'returns parsed json responses' do
142
+ data = {'name' => 'Test'}
143
+ test_client.http_client.should_receive(:delete).and_return(double(:response, status: 200, body: data.to_json).as_null_object)
144
+ resp = test_client.delete('/v1/accounts', data)
145
+ expect(resp).to eq(data)
146
+ end
147
+ end
148
148
  end