onering-client 0.0.24 → 0.0.25

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.
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: []