qtc-sdk 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +18 -18
  3. data/Changelog.md +14 -6
  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/cli/commands.rb +15 -15
  10. data/lib/qtc/cli/common.rb +146 -91
  11. data/lib/qtc/cli/eds/base.rb +27 -27
  12. data/lib/qtc/cli/eds/commands.rb +20 -20
  13. data/lib/qtc/cli/eds/instances.rb +30 -30
  14. data/lib/qtc/cli/mar/apps.rb +116 -125
  15. data/lib/qtc/cli/mar/base.rb +60 -60
  16. data/lib/qtc/cli/mar/commands.rb +221 -199
  17. data/lib/qtc/cli/mar/debug.rb +87 -86
  18. data/lib/qtc/cli/mar/domains.rb +35 -38
  19. data/lib/qtc/cli/mar/env.rb +38 -40
  20. data/lib/qtc/cli/mar/repository.rb +24 -26
  21. data/lib/qtc/cli/mar/ssl_certificates.rb +40 -42
  22. data/lib/qtc/cli/mar/stack.rb +29 -0
  23. data/lib/qtc/cli/mdb/base.rb +47 -43
  24. data/lib/qtc/cli/mdb/commands.rb +43 -31
  25. data/lib/qtc/cli/mdb/instances.rb +79 -60
  26. data/lib/qtc/cli/platform/clouds.rb +33 -15
  27. data/lib/qtc/cli/platform/commands.rb +132 -65
  28. data/lib/qtc/cli/platform/datacenters.rb +23 -21
  29. data/lib/qtc/cli/platform/ssh_keys.rb +41 -41
  30. data/lib/qtc/cli/platform/user.rb +25 -25
  31. data/lib/qtc/cli/platform/vpn.rb +93 -0
  32. data/lib/qtc/client.rb +170 -170
  33. data/lib/qtc/eds/client.rb +116 -116
  34. data/lib/qtc/eds/collection.rb +124 -124
  35. data/lib/qtc/eds/user_collection.rb +13 -13
  36. data/lib/qtc/eds/usergroup_collection.rb +41 -41
  37. data/lib/qtc/errors.rb +13 -11
  38. data/lib/qtc/version.rb +3 -3
  39. data/lib/qtc-sdk.rb +1 -1
  40. data/qtc-sdk.gemspec +28 -28
  41. data/spec/unit/qtc/client_spec.rb +147 -147
  42. metadata +20 -19
  43. data/lib/qtc/mws/client.rb +0 -89
@@ -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
metadata CHANGED
@@ -1,97 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qtc-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jari Kolehmainen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-10 00:00:00.000000000 Z
11
+ date: 2015-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.5'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.5'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: 2.14.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: 2.14.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: httpclient
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '2.3'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '2.3'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: commander
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: inifile
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  description: Qt Cloud Services SDK for Ruby
@@ -102,7 +102,7 @@ executables:
102
102
  extensions: []
103
103
  extra_rdoc_files: []
104
104
  files:
105
- - ".gitignore"
105
+ - .gitignore
106
106
  - Changelog.md
107
107
  - Gemfile
108
108
  - LICENSE.txt
@@ -123,6 +123,7 @@ files:
123
123
  - lib/qtc/cli/mar/env.rb
124
124
  - lib/qtc/cli/mar/repository.rb
125
125
  - lib/qtc/cli/mar/ssl_certificates.rb
126
+ - lib/qtc/cli/mar/stack.rb
126
127
  - lib/qtc/cli/mdb/base.rb
127
128
  - lib/qtc/cli/mdb/commands.rb
128
129
  - lib/qtc/cli/mdb/instances.rb
@@ -131,13 +132,13 @@ files:
131
132
  - lib/qtc/cli/platform/datacenters.rb
132
133
  - lib/qtc/cli/platform/ssh_keys.rb
133
134
  - lib/qtc/cli/platform/user.rb
135
+ - lib/qtc/cli/platform/vpn.rb
134
136
  - lib/qtc/client.rb
135
137
  - lib/qtc/eds/client.rb
136
138
  - lib/qtc/eds/collection.rb
137
139
  - lib/qtc/eds/user_collection.rb
138
140
  - lib/qtc/eds/usergroup_collection.rb
139
141
  - lib/qtc/errors.rb
140
- - lib/qtc/mws/client.rb
141
142
  - lib/qtc/version.rb
142
143
  - qtc-sdk.gemspec
143
144
  - spec/spec_helper.rb
@@ -152,17 +153,17 @@ require_paths:
152
153
  - lib
153
154
  required_ruby_version: !ruby/object:Gem::Requirement
154
155
  requirements:
155
- - - ">="
156
+ - - '>='
156
157
  - !ruby/object:Gem::Version
157
158
  version: 1.9.3
158
159
  required_rubygems_version: !ruby/object:Gem::Requirement
159
160
  requirements:
160
- - - ">="
161
+ - - '>='
161
162
  - !ruby/object:Gem::Version
162
163
  version: '0'
163
164
  requirements: []
164
165
  rubyforge_project:
165
- rubygems_version: 2.2.2
166
+ rubygems_version: 2.4.3
166
167
  signing_key:
167
168
  specification_version: 4
168
169
  summary: Qt Cloud Services SDK for Ruby
@@ -1,89 +0,0 @@
1
- require 'faye/websocket'
2
-
3
- module Qtc
4
- module Mws
5
- class Client
6
-
7
- DEFAULT_OPTIONS = {
8
- api_url: 'https://mws-eu-1.qtc.io/v1'
9
- }
10
-
11
- attr_accessor :gateway_id, :options, :http_client
12
-
13
- ##
14
- # Initialize
15
- #
16
- # @param [String] gateway_id
17
- # @param [Hash] options
18
- def initialize(gateway_id, options = {})
19
- self.gateway_id = gateway_id
20
- self.options = DEFAULT_OPTIONS.merge(options)
21
- self.http_client = Qtc::Client.new(http_client_url)
22
- self.access_token = options[:access_token]
23
- end
24
-
25
- ##
26
- # Send message to websocket clients
27
- #
28
- # @param [String] message
29
- # @param [Hash] receivers
30
- # @option receivers [Array<String>] :sockets
31
- # @option receivers [Array<String>] :tags
32
- def send_message(message, receivers = {sockets: ['*'], tags: nil})
33
- data = {data: message, receivers: receivers}
34
- self.http_client.post('/messages', data)
35
- end
36
-
37
- ##
38
- # Create a new websocket object
39
- #
40
- # @param [Array<String>] tags
41
- # @return [Hash]
42
- def create_socket(tags = [])
43
- data = {tags: tags}
44
- self.http_client.post('/sockets', data)
45
- end
46
-
47
- ##
48
- # Get websocket uri
49
- #
50
- # @return [Hash]
51
- def websocket_uri
52
- self.http_client.get('/websocket_uri')
53
- end
54
-
55
- ##
56
- # Get websocket client
57
- #
58
- # @param [String] uri
59
- # @return [Faye::WebSocket::Client]
60
- def websocket_client(uri = nil)
61
- uri = websocket_uri["uri"] if uri.nil?
62
-
63
- Faye::WebSocket::Client.new(uri)
64
- end
65
-
66
- ##
67
- # Set access token
68
- #
69
- # @param [String] access_token
70
- def access_token=(access_token)
71
- if !access_token.nil?
72
- self.http_client.default_headers['Authorization'] = "Bearer #{access_token}"
73
- else
74
- self.http_client.default_headers.delete('Authorization')
75
- end
76
- end
77
-
78
- private
79
-
80
- ##
81
- # Get url for HTTPClient
82
- #
83
- # @return [String]
84
- def http_client_url
85
- "#{self.options[:api_url]}/gateways/#{self.gateway_id}"
86
- end
87
- end
88
- end
89
- end