onering-client 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -12,11 +12,13 @@ Usage:
12
12
  onering [global] assets [options] [subcommands]
13
13
 
14
14
  Subcommands:
15
- find <urlquery>
16
- get <property> [property2 ..]
17
- list <property> [property2 ..]
15
+ find <urlquery>
16
+ get <property> [property2 ..]
17
+ list <property> [property2 ..]
18
18
  save
19
- set <property> <value>
19
+ set <property> <value>
20
+ tag <tag1>[ tag2 .. tagN]
21
+ untag <tag1>[ tag2 .. tagN]
20
22
 
21
23
  Options:
22
24
  EOS
@@ -39,7 +41,7 @@ EOS
39
41
 
40
42
  # -----------------------------------------------------------------------------
41
43
  when :get
42
- Onering::Logger.fatal!("Expected 1 parameter, got #{args.length}", "Onering::CLI::Devices") unless args.length == 1
44
+ Onering::Logger.fatal!("Expected 1 parameter, got #{args.length}", "Onering::CLI::Assets") unless args.length == 1
43
45
 
44
46
  if @opts[:query_given]
45
47
  # doing this until a bulk field query endpoint is built
@@ -54,7 +56,7 @@ EOS
54
56
 
55
57
  # -----------------------------------------------------------------------------
56
58
  when :set
57
- Onering::Logger.fatal!("Expected 2 parameters, got #{args.length}", "Onering::CLI::Devices") unless args.length == 2
59
+ Onering::Logger.fatal!("Expected 2 parameters, got #{args.length}", "Onering::CLI::Assets") unless args.length == 2
58
60
 
59
61
  if @opts[:query]
60
62
  # doing this until a bulk field set endpoint is built
@@ -69,14 +71,14 @@ EOS
69
71
 
70
72
  # -----------------------------------------------------------------------------
71
73
  when :list
72
- Onering::Logger.fatal!("Expected 1 parameter, got #{args.length}", "Onering::CLI::Devices") unless args.length >= 1
74
+ Onering::Logger.fatal!("Expected 1 parameter, got #{args.length}", "Onering::CLI::Assets") unless args.length >= 1
73
75
  return @api.list(args, {
74
76
  :filter => @opts[:query]
75
77
  }.compact)
76
78
 
77
79
  # -----------------------------------------------------------------------------
78
80
  when :find
79
- Onering::Logger.fatal!("Expected 1 parameter, got #{args.length}", "Onering::CLI::Devices") unless args.length == 1
81
+ Onering::Logger.fatal!("Expected 1 parameter, got #{args.length}", "Onering::CLI::Assets") unless args.length == 1
80
82
  return @api.find(args[0])
81
83
 
82
84
  # -----------------------------------------------------------------------------
@@ -91,13 +93,44 @@ EOS
91
93
  File.read(args[1])
92
94
 
93
95
  else
94
- Onering::Logger.fatal!("Cannot save data, no input data specified", "Onering::CLI::Devices")
96
+ Onering::Logger.fatal!("Cannot save data, no input data specified", "Onering::CLI::Assets")
95
97
  end
96
98
  end
97
99
 
98
100
  rv.parsed_response
101
+
102
+ # -----------------------------------------------------------------------------
103
+ when :tag
104
+ Onering::Logger.fatal!("Expected 1 parameters, got #{args.length}", "Onering::CLI::Assets") unless args.length > 0
105
+
106
+ if @opts[:query]
107
+ # doing this until a bulk field set endpoint is built
108
+ @api.list('id', {
109
+ :filter => @opts[:query]
110
+ }).collect{|i| @api.get("devices/#{i}/tag/#{args.join('/')}") }
111
+
112
+ elsif @opts[:id]
113
+ @api.get("devices/#{@opts[:id]}/tag/#{args.join('/')}")
114
+ end
115
+
116
+ return nil
117
+
118
+ when :untag
119
+ Onering::Logger.fatal!("Expected 1 parameters, got #{args.length}", "Onering::CLI::Assets") unless args.length > 0
120
+
121
+ if @opts[:query]
122
+ # doing this until a bulk field set endpoint is built
123
+ @api.list('id', {
124
+ :filter => @opts[:query]
125
+ }).collect{|i| @api.get("devices/#{i}/untag/#{args.join('/')}") }
126
+
127
+ elsif @opts[:id]
128
+ @api.get("devices/#{@opts[:id]}/untag/#{args.join('/')}")
129
+ end
130
+
131
+ return nil
99
132
  else
100
- Onering::Logger.fatal!("Unknown subcommand #{sc.inspect}", "Onering::CLI::Devices")
133
+ Onering::Logger.fatal!("Unknown subcommand #{sc.inspect}", "Onering::CLI::Assets")
101
134
  end
102
135
  end
103
136
  end
@@ -0,0 +1,27 @@
1
+ module Onering
2
+ class API
3
+ class Configuration < API
4
+ def get(key, options={})
5
+ get("/config/#{key}").parsed_response
6
+ end
7
+
8
+ def set(key, value)
9
+ if not value.is_a?(Hash) and not value.is_a?(Array)
10
+ return save(key, value)
11
+ end
12
+
13
+ return nil
14
+ end
15
+
16
+ def save(key, data=nil, &block)
17
+ if block_given?
18
+ post("/config/#{key}", {}, &block)
19
+ else
20
+ post("/config/#{key}", {
21
+ :body => data
22
+ })
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -1,6 +1,6 @@
1
1
  module Onering
2
2
  module Client
3
- VERSION = "0.4.2"
3
+ VERSION = "0.4.3"
4
4
 
5
5
  class Error < Exception; end
6
6
  class FatalError < Error; end
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onering-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
5
4
  prerelease:
5
+ version: 0.4.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Gary Hetzel
@@ -12,104 +12,149 @@ cert_chain: []
12
12
  date: 2013-01-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: facter
16
- requirement: &21674180 !ruby/object:Gem::Requirement
15
+ type: :runtime
16
+ version_requirements: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ! '>='
19
+ - !ruby/object:Gem::Version
20
+ version: 1.7.2
17
21
  none: false
22
+ prerelease: false
23
+ name: facter
24
+ requirement: !ruby/object:Gem::Requirement
18
25
  requirements:
19
26
  - - ! '>='
20
27
  - !ruby/object:Gem::Version
21
28
  version: 1.7.2
29
+ none: false
30
+ - !ruby/object:Gem::Dependency
22
31
  type: :runtime
32
+ version_requirements: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - '='
35
+ - !ruby/object:Gem::Version
36
+ version: 1.0.0
37
+ none: false
23
38
  prerelease: false
24
- version_requirements: *21674180
25
- - !ruby/object:Gem::Dependency
26
39
  name: deep_merge
27
- requirement: &21673300 !ruby/object:Gem::Requirement
28
- none: false
40
+ requirement: !ruby/object:Gem::Requirement
29
41
  requirements:
30
- - - =
42
+ - - '='
31
43
  - !ruby/object:Gem::Version
32
44
  version: 1.0.0
45
+ none: false
46
+ - !ruby/object:Gem::Dependency
33
47
  type: :runtime
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - '='
51
+ - !ruby/object:Gem::Version
52
+ version: 2.3.5
53
+ none: false
34
54
  prerelease: false
35
- version_requirements: *21673300
36
- - !ruby/object:Gem::Dependency
37
55
  name: addressable
38
- requirement: &21672740 !ruby/object:Gem::Requirement
39
- none: false
56
+ requirement: !ruby/object:Gem::Requirement
40
57
  requirements:
41
- - - =
58
+ - - '='
42
59
  - !ruby/object:Gem::Version
43
60
  version: 2.3.5
61
+ none: false
62
+ - !ruby/object:Gem::Dependency
44
63
  type: :runtime
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 0.11.0
69
+ none: false
45
70
  prerelease: false
46
- version_requirements: *21672740
47
- - !ruby/object:Gem::Dependency
48
71
  name: httparty
49
- requirement: &21672220 !ruby/object:Gem::Requirement
50
- none: false
72
+ requirement: !ruby/object:Gem::Requirement
51
73
  requirements:
52
- - - =
74
+ - - '='
53
75
  - !ruby/object:Gem::Version
54
76
  version: 0.11.0
77
+ none: false
78
+ - !ruby/object:Gem::Dependency
55
79
  type: :runtime
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ! '>='
83
+ - !ruby/object:Gem::Version
84
+ version: 0.0.35
85
+ none: false
56
86
  prerelease: false
57
- version_requirements: *21672220
58
- - !ruby/object:Gem::Dependency
59
87
  name: hashlib
60
- requirement: &21671740 !ruby/object:Gem::Requirement
61
- none: false
88
+ requirement: !ruby/object:Gem::Requirement
62
89
  requirements:
63
90
  - - ! '>='
64
91
  - !ruby/object:Gem::Version
65
92
  version: 0.0.35
93
+ none: false
94
+ - !ruby/object:Gem::Dependency
66
95
  type: :runtime
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - '='
99
+ - !ruby/object:Gem::Version
100
+ version: 1.7.9
101
+ none: false
67
102
  prerelease: false
68
- version_requirements: *21671740
69
- - !ruby/object:Gem::Dependency
70
103
  name: multi_json
71
- requirement: &21671300 !ruby/object:Gem::Requirement
72
- none: false
104
+ requirement: !ruby/object:Gem::Requirement
73
105
  requirements:
74
- - - =
106
+ - - '='
75
107
  - !ruby/object:Gem::Version
76
108
  version: 1.7.9
109
+ none: false
110
+ - !ruby/object:Gem::Dependency
77
111
  type: :runtime
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - <=
115
+ - !ruby/object:Gem::Version
116
+ version: 1.1.4
117
+ none: false
78
118
  prerelease: false
79
- version_requirements: *21671300
80
- - !ruby/object:Gem::Dependency
81
119
  name: rainbow
82
- requirement: &21670800 !ruby/object:Gem::Requirement
83
- none: false
120
+ requirement: !ruby/object:Gem::Requirement
84
121
  requirements:
85
122
  - - <=
86
123
  - !ruby/object:Gem::Version
87
124
  version: 1.1.4
125
+ none: false
126
+ - !ruby/object:Gem::Dependency
88
127
  type: :runtime
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - '='
131
+ - !ruby/object:Gem::Version
132
+ version: '2.0'
133
+ none: false
89
134
  prerelease: false
90
- version_requirements: *21670800
91
- - !ruby/object:Gem::Dependency
92
135
  name: trollop
93
- requirement: &21670000 !ruby/object:Gem::Requirement
94
- none: false
136
+ requirement: !ruby/object:Gem::Requirement
95
137
  requirements:
96
- - - =
138
+ - - '='
97
139
  - !ruby/object:Gem::Version
98
140
  version: '2.0'
141
+ none: false
142
+ - !ruby/object:Gem::Dependency
99
143
  type: :runtime
144
+ version_requirements: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - '='
147
+ - !ruby/object:Gem::Version
148
+ version: 1.1.2
149
+ none: false
100
150
  prerelease: false
101
- version_requirements: *21670000
102
- - !ruby/object:Gem::Dependency
103
151
  name: xml-simple
104
- requirement: &21669460 !ruby/object:Gem::Requirement
105
- none: false
152
+ requirement: !ruby/object:Gem::Requirement
106
153
  requirements:
107
- - - =
154
+ - - '='
108
155
  - !ruby/object:Gem::Version
109
156
  version: 1.1.2
110
- type: :runtime
111
- prerelease: false
112
- version_requirements: *21669460
157
+ none: false
113
158
  description: A Ruby wrapper for Onering
114
159
  email: ghetzel@outbrain.com
115
160
  executables:
@@ -117,24 +162,25 @@ executables:
117
162
  extensions: []
118
163
  extra_rdoc_files: []
119
164
  files:
120
- - lib/onering/config.rb
165
+ - lib/etc/facter.list
166
+ - lib/onering.rb
121
167
  - lib/onering/logger.rb
122
- - lib/onering/cli.rb
123
168
  - lib/onering/version.rb
124
- - lib/onering/plugins/reporter.rb
169
+ - lib/onering/cli.rb
170
+ - lib/onering/config.rb
171
+ - lib/onering/api.rb
172
+ - lib/onering/util.rb
125
173
  - lib/onering/plugins/authentication.rb
174
+ - lib/onering/plugins/reporter.rb
175
+ - lib/onering/plugins/config.rb
126
176
  - lib/onering/plugins/automation.rb
127
177
  - lib/onering/plugins/assets.rb
128
- - lib/onering/cli/devices.rb
129
178
  - lib/onering/cli/reporter.rb
130
- - lib/onering/cli/fact.rb
179
+ - lib/onering/cli/devices.rb
131
180
  - lib/onering/cli/automation.rb
181
+ - lib/onering/cli/fact.rb
132
182
  - lib/onering/cli/assets.rb
133
183
  - lib/onering/cli/call.rb
134
- - lib/onering/api.rb
135
- - lib/onering/util.rb
136
- - lib/onering.rb
137
- - lib/etc/facter.list
138
184
  - bin/onering
139
185
  homepage: https://github.com/outbrain/onering-ruby
140
186
  licenses: []
@@ -143,20 +189,20 @@ rdoc_options: []
143
189
  require_paths:
144
190
  - lib
145
191
  required_ruby_version: !ruby/object:Gem::Requirement
146
- none: false
147
192
  requirements:
148
193
  - - ! '>='
149
194
  - !ruby/object:Gem::Version
150
195
  version: '0'
151
- required_rubygems_version: !ruby/object:Gem::Requirement
152
196
  none: false
197
+ required_rubygems_version: !ruby/object:Gem::Requirement
153
198
  requirements:
154
199
  - - ! '>='
155
200
  - !ruby/object:Gem::Version
156
201
  version: '0'
202
+ none: false
157
203
  requirements: []
158
204
  rubyforge_project:
159
- rubygems_version: 1.8.11
205
+ rubygems_version: 1.8.28
160
206
  signing_key:
161
207
  specification_version: 3
162
208
  summary: Onering client API and utilities