qtc-sdk 0.2.0 → 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 (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,125 +1,125 @@
1
- module Qtc
2
- module Eds
3
- class Collection
4
-
5
- ##
6
- # Initialize EDS collection
7
- #
8
- # @param [Qtc::Client] client
9
- # @param [String] path
10
- def initialize(client, path)
11
- @client = client
12
- @path = path
13
- end
14
-
15
- ##
16
- # Insert a new object
17
- #
18
- # @param [Hash] object
19
- # @return [Hash]
20
- def insert(object)
21
- client.post(path, object)
22
- end
23
-
24
- ##
25
- # Update object
26
- #
27
- # @param [String] id
28
- # @param [Hash] object
29
- # @return [Hash]
30
- def update(id, object)
31
- client.put("#{path}/#{id}", object)
32
- end
33
-
34
- ##
35
- # Atomic operation
36
- #
37
- # @param [String] id
38
- # @param [Hash] operation
39
- # @return [Hash]
40
- def atomic_operation(id, operation)
41
- client.put("#{path}/#{id}/atomic", operation)
42
- end
43
-
44
- ##
45
- # Remove object
46
- #
47
- # @param [String]
48
- # @return [Hash]
49
- def remove(id)
50
- client.delete("#{path}/#{id}")
51
- end
52
-
53
- ##
54
- # Find object by id
55
- #
56
- # @param [String] id
57
- # @return [Hash]
58
- def find_one(id)
59
- client.get("#{path}/#{id}")
60
- end
61
-
62
- ##
63
- # Find objects
64
- #
65
- # @param [Hash] params
66
- # @return [Array<Hash>]
67
- def find(params = {})
68
- if params[:q] && params[:q].is_a?(Hash)
69
- params[:q] = params[:q].to_json
70
- end
71
- if params[:sort] && !params[:sort].is_a?(String)
72
- params[:sort] = params[:sort].to_json
73
- end
74
- response = client.get("#{path}", params)
75
- response['results']
76
- end
77
-
78
- ##
79
- # Set object permissions
80
- #
81
- # @param [String]
82
- def set_permissions(id, permissions)
83
- client.post("#{path}/#{id}/access", permissions)
84
- end
85
-
86
- ##
87
- # Add permissions
88
- #
89
- # @param [String] id
90
- # @param [Hash] permissions
91
- # @return [Hash]
92
- def add_permissions(id, permissions)
93
- client.put("#{path}/#{id}/access", permissions)
94
- end
95
-
96
- ##
97
- # Remove permissions
98
- #
99
- # @param [String] id
100
- # @param [Hash] permissions
101
- # @return [Hash]
102
- def remove_permissions(id, permissions)
103
- client.delete("#{path}/#{id}/access", permissions)
104
- end
105
-
106
- protected
107
-
108
- ##
109
- # Get client
110
- #
111
- # @return [Qtc::Client]
112
- def client
113
- @client
114
- end
115
-
116
- ##
117
- # Get path
118
- #
119
- # @return [String]
120
- def path
121
- @path
122
- end
123
- end
124
- end
1
+ module Qtc
2
+ module Eds
3
+ class Collection
4
+
5
+ ##
6
+ # Initialize EDS collection
7
+ #
8
+ # @param [Qtc::Client] client
9
+ # @param [String] path
10
+ def initialize(client, path)
11
+ @client = client
12
+ @path = path
13
+ end
14
+
15
+ ##
16
+ # Insert a new object
17
+ #
18
+ # @param [Hash] object
19
+ # @return [Hash]
20
+ def insert(object)
21
+ client.post(path, object)
22
+ end
23
+
24
+ ##
25
+ # Update object
26
+ #
27
+ # @param [String] id
28
+ # @param [Hash] object
29
+ # @return [Hash]
30
+ def update(id, object)
31
+ client.put("#{path}/#{id}", object)
32
+ end
33
+
34
+ ##
35
+ # Atomic operation
36
+ #
37
+ # @param [String] id
38
+ # @param [Hash] operation
39
+ # @return [Hash]
40
+ def atomic_operation(id, operation)
41
+ client.put("#{path}/#{id}/atomic", operation)
42
+ end
43
+
44
+ ##
45
+ # Remove object
46
+ #
47
+ # @param [String]
48
+ # @return [Hash]
49
+ def remove(id)
50
+ client.delete("#{path}/#{id}")
51
+ end
52
+
53
+ ##
54
+ # Find object by id
55
+ #
56
+ # @param [String] id
57
+ # @return [Hash]
58
+ def find_one(id)
59
+ client.get("#{path}/#{id}")
60
+ end
61
+
62
+ ##
63
+ # Find objects
64
+ #
65
+ # @param [Hash] params
66
+ # @return [Array<Hash>]
67
+ def find(params = {})
68
+ if params[:q] && params[:q].is_a?(Hash)
69
+ params[:q] = params[:q].to_json
70
+ end
71
+ if params[:sort] && !params[:sort].is_a?(String)
72
+ params[:sort] = params[:sort].to_json
73
+ end
74
+ response = client.get("#{path}", params)
75
+ response['results']
76
+ end
77
+
78
+ ##
79
+ # Set object permissions
80
+ #
81
+ # @param [String]
82
+ def set_permissions(id, permissions)
83
+ client.post("#{path}/#{id}/access", permissions)
84
+ end
85
+
86
+ ##
87
+ # Add permissions
88
+ #
89
+ # @param [String] id
90
+ # @param [Hash] permissions
91
+ # @return [Hash]
92
+ def add_permissions(id, permissions)
93
+ client.put("#{path}/#{id}/access", permissions)
94
+ end
95
+
96
+ ##
97
+ # Remove permissions
98
+ #
99
+ # @param [String] id
100
+ # @param [Hash] permissions
101
+ # @return [Hash]
102
+ def remove_permissions(id, permissions)
103
+ client.delete("#{path}/#{id}/access", permissions)
104
+ end
105
+
106
+ protected
107
+
108
+ ##
109
+ # Get client
110
+ #
111
+ # @return [Qtc::Client]
112
+ def client
113
+ @client
114
+ end
115
+
116
+ ##
117
+ # Get path
118
+ #
119
+ # @return [String]
120
+ def path
121
+ @path
122
+ end
123
+ end
124
+ end
125
125
  end
@@ -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,11 +1,13 @@
1
- module Qtc
2
- module Errors
3
- class StandardError < ::StandardError
4
-
5
- def initialize(status, message)
6
- @status = status
7
- super(message)
8
- end
9
- end
10
- end
11
- 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.2.0'
3
- end
1
+ module Qtc
2
+ VERSION = '0.3.0'
3
+ end
data/lib/qtc-sdk.rb CHANGED
@@ -1,2 +1,2 @@
1
- require 'qtc/client'
1
+ require 'qtc/client'
2
2
  require 'qtc/eds/client'
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