ansible_tower_client 0.7.0 → 0.8.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: e2b438274799e4bc69b5f9ce2be050c74034276a
4
- data.tar.gz: b072f2691bad73e981d524aedb6cb99cc324a8f4
3
+ metadata.gz: 6943f87588512d9df4e5c0de28f5d4ce00f589c6
4
+ data.tar.gz: 633d9521bdaf669184f7598c12c374b58da329ff
5
5
  SHA512:
6
- metadata.gz: c8232e3ed966adec4df39287144cba67a5a4d05519c4ee513ea04f9f7e68c3fcf24c2bcd8a5889796d87d1d0115480e5206ac15e7593a22982b84a4089e56f35
7
- data.tar.gz: c628f635fed2035683b8ed1fccd428544d7f939a422ae02d84e09c71d61d5e2e5e57be1b0ea6d3018cf0f23893c91172e3e2cd2cc852875a6244fe9df832af7a
6
+ metadata.gz: 3025629f8bce8e4e3f58ced59d792ccd1bcb5544538e6d9dce87264e213223a96f2e912b7460424a505b58b2333c7bd476e115e6932aebe45ab1007efc7ee5d1
7
+ data.tar.gz: 93482e4dc818fa62bdc6d230055d14d574f80b2770cc43af492702083de31d737ee4ca5af9beefc0c9b01be92fedb30287a49e52a66a7babaa63106fe67a5cad
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
+ ## [0.8.0] - 2017-02-23
7
+ ### Added
8
+ - Expose the raw hash of the object [(#74)](https://github.com/ansible/ansible_tower_client_ruby/pull/74)
9
+
10
+ ### Fixed
11
+ - Override RAW attributes [(#75)](https://github.com/ansible/ansible_tower_client_ruby/pull/75)
12
+ - Inherit all errors from StandardError [(#76)](https://github.com/ansible/ansible_tower_client_ruby/pull/76)
13
+ - Fix error logging after changing error response classes [(#72)](https://github.com/ansible/ansible_tower_client_ruby/pull/72)
14
+
15
+
6
16
  ## [0.7.0] - 2017-02-17
7
17
  ### Changed
8
18
  - Rescue Faraday errors and re-brand them as AnsibleTowerClient Errors [(#71)](https://github.com/ansible/ansible_tower_client_ruby/pull/71)
@@ -83,13 +83,7 @@ module AnsibleTowerClient
83
83
  rescue Faraday::SSLError => err
84
84
  raise AnsibleTowerClient::SSLError, err
85
85
  rescue Faraday::ClientError => err
86
- raise if err.response.nil?
87
- response = err.response
88
- logger.debug { "#{self.class.name} #{err.class.name} #{response.pretty_inspect}" }
89
- message = JSON.parse(response[:body])['detail'] rescue nil
90
- message ||= DEFAULT_ERROR_MSG
91
- logger.error("#{self.class.name} #{err.class.name} #{message}")
92
- raise AnsibleTowerClient::ConnectionError, message
86
+ raise AnsibleTowerClient::ConnectionError, err
93
87
  end
94
88
 
95
89
  def respond_to_missing?(method, _include_private = false)
@@ -1,6 +1,6 @@
1
1
  module AnsibleTowerClient
2
2
  class BaseModel < HashModel
3
- attr_reader :api
3
+ attr_reader :api, :raw_hash
4
4
 
5
5
  def self.base_class
6
6
  superclass == AnsibleTowerClient::BaseModel ? self : superclass.base_class
@@ -35,7 +35,7 @@ module AnsibleTowerClient
35
35
  def initialize(api, json_or_hash)
36
36
  @api = api
37
37
 
38
- raw_hash = json_or_hash.kind_of?(Hash) ? json_or_hash : JSON.parse(json_or_hash)
38
+ @raw_hash = json_or_hash.kind_of?(Hash) ? json_or_hash : JSON.parse(json_or_hash)
39
39
  self.class.send(:id_attr, *raw_hash['related'].keys) if raw_hash.key?('related')
40
40
 
41
41
  super(raw_hash)
@@ -82,7 +82,11 @@ module AnsibleTowerClient
82
82
  def update_attributes!(attributes)
83
83
  @api.patch(url, attributes.to_json)
84
84
  attributes.each do |method_name, value|
85
- send("#{method_name}=", value)
85
+ if override_raw_attributes[method_name]
86
+ send("#{override_raw_attributes[method_name]}=", value)
87
+ else
88
+ send("#{method_name}=", value)
89
+ end
86
90
  end
87
91
  true
88
92
  end
@@ -145,6 +149,10 @@ module AnsibleTowerClient
145
149
  false
146
150
  end
147
151
 
152
+ def override_raw_attributes
153
+ {}
154
+ end
155
+
148
156
  def hashify(attribute)
149
157
  YAML.safe_load(send(attribute))
150
158
  end
@@ -21,5 +21,9 @@ module AnsibleTowerClient
21
21
  def extra_vars_hash
22
22
  extra_vars.empty? ? {} : hashify(:extra_vars)
23
23
  end
24
+
25
+ def override_raw_attributes
26
+ { :credential => :credential_id, :inventory => :inventory_id, :project => :project_id }
27
+ end
24
28
  end
25
29
  end
@@ -1,5 +1,5 @@
1
1
  module AnsibleTowerClient
2
- class Error < Exception; end
2
+ class Error < StandardError; end
3
3
  class ClientError < Error; end
4
4
  class NoMethodError < Error; end
5
5
 
@@ -1,9 +1,16 @@
1
1
  module AnsibleTowerClient
2
2
  module Middleware
3
3
  class RaiseTowerError < Faraday::Response::Middleware
4
+ include Logging
4
5
  CLIENT_ERROR_STATUSES = 400...600
5
6
 
6
7
  def on_complete(env)
8
+ return unless CLIENT_ERROR_STATUSES.include?(env[:status])
9
+ logger.debug { "#{self.class.name} Raw Response:\n#{env.pretty_inspect}" }
10
+ message = JSON.parse(env.body).pretty_inspect rescue nil
11
+ message ||= env.body
12
+ logger.error("#{self.class.name} Response Body:\n#{message}")
13
+
7
14
  case env[:status]
8
15
  when 402
9
16
  raise AnsibleTowerClient::UnlicensedFeatureError
@@ -12,7 +19,7 @@ module AnsibleTowerClient
12
19
  when 407
13
20
  # mimic the behavior that we get with proxy requests with HTTPS
14
21
  raise AnsibleTowerClient::ConnectionError, %(407 "Proxy Authentication Required ")
15
- when CLIENT_ERROR_STATUSES
22
+ else
16
23
  raise AnsibleTowerClient::ClientError, env.body
17
24
  end
18
25
  end
@@ -1,3 +1,3 @@
1
1
  module AnsibleTowerClient
2
- VERSION = "0.7.0".freeze
2
+ VERSION = "0.8.0".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ansible_tower_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandon Dunne
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2017-02-17 00:00:00.000000000 Z
12
+ date: 2017-02-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport