razor-client 0.11.0 → 0.12.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.
- data/README.md +6 -3
- data/bin/razor +15 -2
- data/lib/razor/cli/format.rb +5 -1
- data/lib/razor/cli/navigate.rb +6 -4
- data/razor-client.gemspec +3 -1
- metadata +3 -3
data/README.md
CHANGED
@@ -5,12 +5,15 @@ backwards incompatible changes, especially to the database schema which
|
|
5
5
|
would force you to rebuild all the machines that Razor is managing. Razor
|
6
6
|
will become stable RSN.
|
7
7
|
|
8
|
-
This is the command line client for the
|
9
|
-
|
10
|
-
|
8
|
+
This is the command line client for the [Razor
|
9
|
+
server](https://github.com/puppetlabs/razor-server) Please have a look at
|
10
|
+
the Wiki over there for details, in particular, the [Getting
|
11
|
+
Started](https://github.com/puppetlabs/razor-server/wiki/Getting-started)
|
12
|
+
page contains instructions about installation and setup of the client.
|
11
13
|
|
12
14
|
## Getting in touch
|
13
15
|
|
16
|
+
* bug/issue tracker: [RAZOR project in JIRA](https://tickets.puppetlabs.com/browse/RAZOR)
|
14
17
|
* on IRC: `#puppet-razor` on [freenode](http://freenode.net/)
|
15
18
|
* mailing list: [puppet-razor@googlegroups.com](http://groups.google.com/group/puppet-razor)
|
16
19
|
|
data/bin/razor
CHANGED
@@ -4,20 +4,32 @@ require_relative "../lib/razor/cli"
|
|
4
4
|
|
5
5
|
include Razor::CLI::Format
|
6
6
|
|
7
|
-
|
7
|
+
def die(message = nil)
|
8
|
+
puts "Error: #{message}" if message
|
9
|
+
exit 1
|
10
|
+
end
|
11
|
+
|
12
|
+
begin
|
13
|
+
parse = Razor::CLI::Parse.new(ARGV)
|
14
|
+
rescue Razor::CLI::InvalidURIError => e
|
15
|
+
die e.message
|
16
|
+
end
|
17
|
+
|
8
18
|
if parse.show_help?
|
9
19
|
puts parse.help
|
10
20
|
exit 0
|
11
21
|
end
|
22
|
+
|
12
23
|
begin
|
13
24
|
document = parse.navigate.get_document
|
14
25
|
url = parse.navigate.last_url
|
15
26
|
puts "From #{url}:\n\n#{format_document document}\n\n"
|
16
27
|
rescue Razor::CLI::NavigationError => e
|
17
|
-
|
28
|
+
die "#{e}\n#{parse.help}\n\n"
|
18
29
|
rescue SocketError, Errno::ECONNREFUSED => e
|
19
30
|
puts "Error: Could not connect to the server at #{parse.api_url}"
|
20
31
|
puts " #{e}\n"
|
32
|
+
die
|
21
33
|
rescue RestClient::Exception => e
|
22
34
|
r = e.response
|
23
35
|
puts "Error from doing #{r.args[:method].to_s.upcase} #{r.args[:url]}"
|
@@ -33,4 +45,5 @@ rescue RestClient::Exception => e
|
|
33
45
|
# what happened has failed. Just dump the response
|
34
46
|
puts r.body
|
35
47
|
end
|
48
|
+
die
|
36
49
|
end
|
data/lib/razor/cli/format.rb
CHANGED
@@ -53,7 +53,11 @@ module Razor::CLI
|
|
53
53
|
output = "#{f.rjust key_indent + 2}: "
|
54
54
|
output << case value
|
55
55
|
when Hash
|
56
|
-
|
56
|
+
if value.empty?
|
57
|
+
"{}"
|
58
|
+
else
|
59
|
+
"\n" + format_object(value, key_indent + 4).rstrip
|
60
|
+
end
|
57
61
|
when Array
|
58
62
|
if value.all? { |v| v.is_a?(String) }
|
59
63
|
"[" + value.map(&:inspect).join(",") + "]"
|
data/lib/razor/cli/navigate.rb
CHANGED
@@ -67,10 +67,7 @@ module Razor::CLI
|
|
67
67
|
body[$1] = convert_arg(cmd["name"], $1, ($3 || @segments.shift))
|
68
68
|
end
|
69
69
|
end
|
70
|
-
|
71
|
-
if cmd["name"] == "create-tag" && body["rule"]
|
72
|
-
body["rule"] = JSON::parse(body["rule"])
|
73
|
-
end
|
70
|
+
|
74
71
|
body = JSON::parse(File::read(body["json"])) if body["json"]
|
75
72
|
[cmd, body]
|
76
73
|
end
|
@@ -87,6 +84,10 @@ module Razor::CLI
|
|
87
84
|
|
88
85
|
if obj.is_a?(Hash) && obj["id"]
|
89
86
|
@doc = json_get(obj["id"])
|
87
|
+
# strip the wrapper around collections
|
88
|
+
if @doc.is_a? Hash and @doc["items"].is_a? Array
|
89
|
+
@doc = @doc["items"]
|
90
|
+
end
|
90
91
|
@doc_url = obj["id"]
|
91
92
|
elsif obj.is_a? Hash
|
92
93
|
@doc = obj
|
@@ -128,6 +129,7 @@ module Razor::CLI
|
|
128
129
|
end
|
129
130
|
|
130
131
|
def convert_arg(cmd_name, arg_name, value)
|
132
|
+
value = nil if value == "null"
|
131
133
|
self.class.arg_type(cmd_name, arg_name) == "json" ? JSON::parse(value) : value
|
132
134
|
end
|
133
135
|
end
|
data/razor-client.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "razor-client"
|
7
|
-
spec.version = "0.
|
7
|
+
spec.version = "0.12.0"
|
8
8
|
spec.authors = ["Puppet Labs"]
|
9
9
|
spec.email = ["info@puppetlabs.com"]
|
10
10
|
spec.description = "The client for the Razor server"
|
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^spec/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
+
spec.required_ruby_version = '>= 1.9.3'
|
22
|
+
|
21
23
|
spec.add_dependency "rest-client"
|
22
24
|
spec.add_dependency "terminal-table"
|
23
25
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: razor-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-01-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rest-client
|
@@ -119,7 +119,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
119
119
|
requirements:
|
120
120
|
- - ! '>='
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version:
|
122
|
+
version: 1.9.3
|
123
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
124
|
none: false
|
125
125
|
requirements:
|