onering-client 0.0.24 → 0.0.25

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6d7664ddd6d93278275eb69f327c8f2c9eabb3ef
4
+ data.tar.gz: 7abb254571eb0ade4f0ceb89070fe80429eb9000
5
+ SHA512:
6
+ metadata.gz: d6bb6e230fb3420b3a759ad8d14920e2489b1984f288700c06e965a1f78ad755da0ceed85c7c4946fe86ae663184343d1effe564ce8dbf896a1c7ad5c2f2d3eb
7
+ data.tar.gz: 5290eb69ad4be31e9b75a59d44b7921c806d8e778fbafc666e8719c13b6dccc1fee8e68bd286153e049908a28b706ebdda71500660e7a0231257a01c5c0f2b56
data/bin/onering CHANGED
@@ -10,14 +10,15 @@ require 'json'
10
10
  require 'rubygems'
11
11
  require 'subcommander'
12
12
  require 'onering'
13
- require 'yaml'
14
13
  require 'pp'
15
14
 
16
15
  include Subcommander
17
16
 
18
17
 
19
18
  def print_format(data, format=nil)
20
- case format
19
+ format = :text unless format
20
+
21
+ case format.to_sym
21
22
  when :text
22
23
  if data.is_a?(Hash)
23
24
  pp data
@@ -27,8 +28,16 @@ def print_format(data, format=nil)
27
28
  puts data.to_s
28
29
  end
29
30
 
30
- else
31
+ when :yaml
32
+ require 'yaml'
31
33
  puts YAML.dump(data)
34
+
35
+ when :json
36
+ require 'json'
37
+ puts JSON.dump(data)
38
+
39
+ else
40
+ raise "Unknown output format #{format}"
32
41
  end
33
42
  end
34
43
 
@@ -81,13 +90,13 @@ subcommand :devices, "Operations related to Onering's assets database" do |devic
81
90
  devices.subcommand :get, "Get a named field from one or more devices" do |sc|
82
91
  sc.usage = "onering devices get FIELD"
83
92
  sc.opt :filter, '-f', '--filter FILTER', "A urlquery filter string"
84
- sc.opt :as_txt, '-t', '--as-text', "Return the results as text"
93
+ sc.opt :format, '-t', '--format FORMAT', "Return the results as FORMAT"
85
94
  sc.opt :id, '-i', '--id ID', "A specific node ID"
86
95
 
87
96
 
88
97
  sc.exec do
89
98
  rv = _field(:get, sc[:args].first, nil, sc)
90
- print_format(rv, (sc[:as_txt] ? :text : nil))
99
+ print_format(rv, sc[:format])
91
100
  end
92
101
  end
93
102
 
@@ -95,12 +104,12 @@ subcommand :devices, "Operations related to Onering's assets database" do |devic
95
104
  devices.subcommand :set, "Set a named field for one or more devices" do |sc|
96
105
  sc.usage = "onering devices set FIELD VALUE"
97
106
  sc.opt :filter, '-f', '--filter FILTER', "A urlquery filter string"
98
- sc.opt :as_txt, '-t', '--as-text', "Return the results as text"
107
+ sc.opt :format, '-t', '--format FORMAT', "Return the results as FORMAT"
99
108
  sc.opt :id, '-i', '--id ID', "A specific node ID"
100
109
 
101
110
  sc.exec do
102
111
  rv = _field(:set, sc[:args].first, sc[:args].last, sc)
103
- print_format(rv, (sc[:as_txt] ? :text : nil))
112
+ print_format(rv, sc[:format])
104
113
  end
105
114
  end
106
115
 
@@ -108,7 +117,7 @@ subcommand :devices, "Operations related to Onering's assets database" do |devic
108
117
  devices.subcommand :list, "List field values" do |sc|
109
118
  sc.usage = "onering devices list [-f FILTER] FIELD"
110
119
  sc.opt :filter, '-f', '--filter FILTER', "A urlquery filter string"
111
- sc.opt :as_txt, '-t', '--as-text', "Return the results as text"
120
+ sc.opt :format, '-t', '--format FORMAT', "Return the results as FORMAT"
112
121
 
113
122
  sc.exec do
114
123
  field = sc[:args].first
@@ -116,7 +125,7 @@ subcommand :devices, "Operations related to Onering's assets database" do |devic
116
125
 
117
126
  print_format(api.list(field, {
118
127
  :filter => filter
119
- }), (sc[:as_txt] ? :text : nil))
128
+ }), sc[:format])
120
129
  end
121
130
  end
122
131
 
@@ -171,7 +180,7 @@ subcommand :users, "Manage Onering users" do |users|
171
180
  # LIST
172
181
  users.subcommand :list, "List users" do |sc|
173
182
  sc.usage = "onering users list FIELD"
174
- sc.opt :as_txt, '-t', '--as-text', "Return the results as text"
183
+ sc.opt :format, '-t', '--format FORMAT', "Return the results as FORMAT"
175
184
 
176
185
  sc.exec do
177
186
  field = sc[:args].first
@@ -179,7 +188,7 @@ subcommand :users, "Manage Onering users" do |users|
179
188
 
180
189
  print_format(api.list(:users, field, {
181
190
  :filter => filter
182
- }), (sc[:as_txt] ? :text : nil))
191
+ }), sc[:format])
183
192
  end
184
193
  end
185
194
 
@@ -211,7 +220,7 @@ subcommand :call, "Call generic Onering API endpoints" do |call|
211
220
  })
212
221
 
213
222
  call.usage = "onering call path/to/endpoint"
214
- call.opt :as_txt, '-t', '--as-text', "Return the results as text"
223
+ call.opt :format, '-t', '--format FORMAT', "Return the results as FORMAT"
215
224
  call.opt :method, '-m', '--method VERB', "The HTTP method to use for the call (default: GET)"
216
225
  call.opt :opts, '-o', '--option KEY:VALUE', Array, "A comma-separated list of key:value querystrings to pass with the request"
217
226
 
@@ -222,7 +231,29 @@ subcommand :call, "Call generic Onering API endpoints" do |call|
222
231
  :fields => (Hash[call[:opts].collect{|i| i.split(':',2) }] rescue {})
223
232
  })
224
233
 
225
- print_format(rv, (call[:as_txt] ? :text : nil)) unless rv.nil? or rv.to_s.strip.chomp.empty?
234
+ print_format(rv, call[:format]) unless rv.nil? or rv.to_s.strip.chomp.empty?
235
+ end
236
+ end
237
+
238
+ subcommand :fact, "Retrieve a system fact" do |fact|
239
+ fact.usage = "onering fact NAME [DEFAULT] [NAME2 [DEFAULT2] ..]"
240
+ fact.opt :format, '-t', '--format FORMAT', "Return the results as FORMAT"
241
+
242
+ fact.exec do
243
+ rv = []
244
+
245
+ fact[:args].each_index do |i|
246
+ if i.even?
247
+ name = fact[:args][i]
248
+ else
249
+ default = fact[:args][i]
250
+ end
251
+
252
+ rv << Onering::Util.fact(name, default)
253
+ end
254
+
255
+ rv = rv.first if rv.length == 1
256
+ print_format(rv, fact[:format]) unless not rv or rv.empty?
226
257
  end
227
258
  end
228
259
 
data/lib/onering/api.rb CHANGED
@@ -14,6 +14,8 @@ module Onering
14
14
  end
15
15
 
16
16
  class Base
17
+ include Onering::Util
18
+
17
19
  DEFAULT_BASE="https://onering"
18
20
  DEFAULT_PATH="/api"
19
21
  DEFAULT_OPTIONS_FILE=[
@@ -0,0 +1,12 @@
1
+ module Onering
2
+ module Util
3
+ ENV['FACTERLIB'] = '/etc/facter'
4
+ require 'facter'
5
+
6
+ class<<self
7
+ def fact(name, default=nil)
8
+ Facter.value(name) or default
9
+ end
10
+ end
11
+ end
12
+ end
data/lib/onering.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  $: << File.expand_path(File.dirname(__FILE__))
2
+ require 'onering/util'
2
3
  require 'onering/api'
3
4
  require 'onering/plugins/devices'
4
5
  require 'onering/plugins/authentication'
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onering-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.24
5
- prerelease:
4
+ version: 0.0.25
6
5
  platform: ruby
7
6
  authors:
8
7
  - Gary Hetzel
@@ -11,39 +10,62 @@ bindir: bin
11
10
  cert_chain: []
12
11
  date: 2013-01-29 00:00:00.000000000 Z
13
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: facter
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
14
27
  - !ruby/object:Gem::Dependency
15
28
  name: subcommander
16
- requirement: &9119860 !ruby/object:Gem::Requirement
17
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
18
30
  requirements:
19
- - - ! '>='
31
+ - - '>='
20
32
  - !ruby/object:Gem::Version
21
33
  version: '0'
22
34
  type: :runtime
23
35
  prerelease: false
24
- version_requirements: *9119860
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
25
41
  - !ruby/object:Gem::Dependency
26
42
  name: deep_merge
27
- requirement: &9119220 !ruby/object:Gem::Requirement
28
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
29
44
  requirements:
30
- - - ! '>='
45
+ - - '>='
31
46
  - !ruby/object:Gem::Version
32
47
  version: '0'
33
48
  type: :runtime
34
49
  prerelease: false
35
- version_requirements: *9119220
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
36
55
  - !ruby/object:Gem::Dependency
37
56
  name: addressable
38
- requirement: &9118700 !ruby/object:Gem::Requirement
39
- none: false
57
+ requirement: !ruby/object:Gem::Requirement
40
58
  requirements:
41
- - - ! '>='
59
+ - - '>='
42
60
  - !ruby/object:Gem::Version
43
61
  version: '0'
44
62
  type: :runtime
45
63
  prerelease: false
46
- version_requirements: *9118700
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
47
69
  description: A Ruby wrapper for Onering
48
70
  email: ghetzel@outbrain.com
49
71
  executables:
@@ -52,32 +74,32 @@ extensions: []
52
74
  extra_rdoc_files: []
53
75
  files:
54
76
  - lib/onering.rb
77
+ - lib/onering/util.rb
55
78
  - lib/onering/api.rb
56
79
  - lib/onering/plugins/devices.rb
57
80
  - lib/onering/plugins/authentication.rb
58
81
  - bin/onering
59
82
  homepage: https://github.com/outbrain/onering-ruby
60
83
  licenses: []
84
+ metadata: {}
61
85
  post_install_message:
62
86
  rdoc_options: []
63
87
  require_paths:
64
88
  - lib
65
89
  required_ruby_version: !ruby/object:Gem::Requirement
66
- none: false
67
90
  requirements:
68
- - - ! '>='
91
+ - - '>='
69
92
  - !ruby/object:Gem::Version
70
93
  version: '0'
71
94
  required_rubygems_version: !ruby/object:Gem::Requirement
72
- none: false
73
95
  requirements:
74
- - - ! '>='
96
+ - - '>='
75
97
  - !ruby/object:Gem::Version
76
98
  version: '0'
77
99
  requirements: []
78
100
  rubyforge_project:
79
- rubygems_version: 1.8.11
101
+ rubygems_version: 2.0.0
80
102
  signing_key:
81
- specification_version: 3
103
+ specification_version: 4
82
104
  summary: Onering client API
83
105
  test_files: []