ansible_tower_client 0.7.0 → 0.8.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: 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