jerakia-client 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b71a936385fef4bf6308dde9bca65091f03ea86c
4
- data.tar.gz: a4560a41ac5ba91e514b2d624b54bdf9861809a0
3
+ metadata.gz: cb472f0bd850812a8d6f370145eb5b30ef518e5b
4
+ data.tar.gz: 20d2ce38d618a390fe7ed4f5d9b159bf4339d5a5
5
5
  SHA512:
6
- metadata.gz: 1adb502903d8e8384557ffe71f58e45e666461e49324ca8d53feb314c95789efaccf65bef008fcf4242673023fdc76ec6ded9390fbef0714875c10d251b38678
7
- data.tar.gz: ac742e582b94a176584a5f45858353908c2cd00227e7ec315aea4692ed93d11df47dd22440358554ce7dc178c3cd7ef0404dfd1d32d297db72c7985685d28cef
6
+ metadata.gz: fa2cf1265b3d810f762e97b9fae3052cddc10795d8d33b3c7def030ccdd7f9626031a09f0347edd15e1b6f0ff7d6b3cdafb5d01cf791a3e9a94bb1e6df1d2f5f
7
+ data.tar.gz: 90265e423a15ac87cfd51283a6f102db1e21f860bf0733928430389591fe7537693d2b168ea47488322e14c9017a679ae0b310f9d51c0482783a381ce4cd58a1
data/bin/jerakia-client CHANGED
@@ -1,8 +1,16 @@
1
1
  #!/usr/bin/env ruby
2
+ #
3
+ require 'json'
2
4
 
3
5
  lib = File.expand_path('../../lib', __FILE__)
4
6
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
7
 
6
8
  require 'jerakia/client/cli'
7
9
 
8
- Jerakia::Client::CLI.start(ARGV)
10
+ begin
11
+ Jerakia::Client::CLI.start(ARGV)
12
+ rescue Jerakia::Client::Error => e
13
+ puts "Error: #{JSON.parse(e.message)['message']}"
14
+ exit(1)
15
+ end
16
+
@@ -96,7 +96,7 @@ class Jerakia
96
96
  :lookup_type => options[:type].to_sym,
97
97
  :merge => options[:merge_type].to_sym,
98
98
  :scope => options[:scope].to_sym,
99
- :use_schema => options[:schema]
99
+ :use_schema => options[:schema]
100
100
  }
101
101
 
102
102
  if options[:metadata]
@@ -5,5 +5,11 @@ class Jerakia
5
5
 
6
6
  class AuthorizationError < RuntimeError
7
7
  end
8
+
9
+ class NotFoundError < RuntimeError
10
+ end
11
+
12
+ class HTTPError < RuntimeError
13
+ end
8
14
  end
9
15
  end
@@ -1,6 +1,6 @@
1
1
  class Jerakia
2
2
  class Client
3
- VERSION = '0.2.0'.freeze
3
+ VERSION = '0.3.0'.freeze
4
4
  end
5
5
  end
6
6
 
@@ -14,13 +14,40 @@ class Jerakia
14
14
 
15
15
  attr_reader :config
16
16
  def initialize(opts={})
17
+ config_file_opts = self.class.load_config_from_file
17
18
  @config = default_config.merge(
18
- opts.reject { |k,v| v.nil? }
19
+ config_file_opts.merge(
20
+ opts.reject { |k,v| v.nil? }
21
+ )
19
22
  )
20
23
  @token = nil
21
24
  end
22
25
 
23
- def default_config
26
+ def self.config_file
27
+ [
28
+ File.join(ENV['HOME'], '.jerakia', 'jerakia.yaml'),
29
+ '/etc/jerakia/jerakia.yaml'
30
+ ]. each do |filename|
31
+ return filename if File.exists?(filename)
32
+ end
33
+ return nil
34
+ end
35
+
36
+ def self.load_config_from_file
37
+ filename = config_file
38
+ confighash = {}
39
+ return {} unless filename
40
+ configdata = YAML.load(File.read(filename))
41
+ if configdata['client'].is_a?(Hash)
42
+ configdata['client'].each do |k, v|
43
+ confighash[k.to_sym] = v
44
+ end
45
+ return confighash
46
+ end
47
+ return {}
48
+ end
49
+
50
+ def default_config
24
51
  {
25
52
  :host => 'localhost',
26
53
  :port => 9843,
@@ -37,8 +64,7 @@ class Jerakia
37
64
  end
38
65
 
39
66
  def token
40
- @token ||= @config[:token]
41
- @token ||= Jerakia::Client::Token.load_from_file
67
+ @token ||= @config[:token]
42
68
  raise Jerakia::Client::Error, "No authorization token available" if @token.nil?
43
69
  @token
44
70
  end
@@ -54,14 +80,19 @@ class Jerakia
54
80
  url = url_address + url_path + uri_params
55
81
  begin
56
82
  response = RestClient.get(url, headers)
83
+
57
84
  rescue RestClient::Unauthorized => e
58
85
  raise Jerakia::Client::AuthorizationError, "Request not authorized"
86
+ rescue RestClient::NotFound => e
87
+ return nil
88
+ rescue RestClient::Exception => e
89
+ raise Jerakia::Client::Error, e.response.body
59
90
  end
60
91
  return JSON.parse(response.body)
61
92
  end
62
93
 
63
94
  def put(url_path, params)
64
- headers = {
95
+ headers = {
65
96
  'X-Authentication' => token,
66
97
  :content_type => :json
67
98
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jerakia-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Craig Dunn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-15 00:00:00.000000000 Z
11
+ date: 2017-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.19'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rest-client
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.0'
27
41
  description: CLI and ruby client libraries for Jerakia Server
28
42
  email:
29
43
  executables: