jerakia-client 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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: