xclarity_client 0.4.1 → 0.5.2

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.
@@ -5,8 +5,8 @@ module XClarityClient
5
5
  BASE_URI = '/scalableComplex'.freeze
6
6
  LIST_NAME = 'complex'.freeze
7
7
 
8
- attr_accessor :properties, :_id, :location, :nodeCount, :orphanNodes,
9
- :partition, :partitionCount, :uuid, :slots, :complexID
8
+ attr_accessor :complexID, :location, :nodeCount, :orphanNodes,
9
+ :partition, :partitionCount, :uuid
10
10
 
11
11
 
12
12
  def initialize(attributes)
@@ -5,12 +5,13 @@ module XClarityClient
5
5
  BASE_URI = '/switches'.freeze
6
6
  LIST_NAME = 'switchList'.freeze
7
7
 
8
- attr_accessor :properties, :_id, :accessState, :applyPending, :attachedNodes, :cmmDisplayName, :cmmHealthState, :entitleSerialNumber, :fans, :firmware, :hostname, :ipInterfaces,
9
- :leds, :macAddresses, :machineType, :manufacturer, :manufacturerId, :ports, :productId, :productName, :protectedMode, :serialNumber, :type, :upTime, :uuid, :accessState,
10
- :cmmHealthState, :excludedHealthState, :memoryUtilization, :model, :overallHealthState, :panicDump, :powerState, :savePending, :slots, :posID, :stackMode, :stackedMode,
11
- :stackRole, :sysObjectID, :temperatureSensors, :userDescription, :vpdID, :contact, :cpuUtilization, :dataHandle, :description, :dnsHostnames, :domainName, :errorFields,
12
- :FRU, :fruSerialNumber, :ipv4Addresses, :ipv6Addresses, :ipInterfaces, :manufacturingDate, :name, :resetReason, :uri, :backedBy, :partNumber, :parent, :powerAllocation
13
-
8
+ attr_accessor :accessState, :attachedNodes, :backedBy, :cmmDisplayName, :cmmHealthState,
9
+ :dataHandle, :description, :dnsHostnames, :errorFields, :excludedHealthState,
10
+ :firmware, :FRU, :fruSerialNumber, :hostname, :ipInterfaces, :ipv4Addresses,
11
+ :ipv6Addresses, :leds, :macAddresses, :machineType, :manufacturer, :manufacturerId,
12
+ :model, :name, :overallHealthState, :parent, :partNumber, :posID, :powerAllocation,
13
+ :powerState, :productId, :productName, :protectedMode, :serialNumber, :slots,
14
+ :stackMode, :type, :uri, :userDescription, :uuid, :vpdID
14
15
 
15
16
  def initialize(attributes)
16
17
  build_resource(attributes)
@@ -1,3 +1,3 @@
1
1
  module XClarityClient
2
- VERSION = "0.4.1"
2
+ VERSION = "0.5.2"
3
3
  end
@@ -23,6 +23,7 @@ module XClarityClient
23
23
 
24
24
  def ip_enablement_state
25
25
  uri = BASE_URI+NETWORK_URI+IPDISABLE_URI
26
+ $lxca_log.info "XclarityClient::VirtualApplianceManagement ip_enablement_state", "Action has been sent to #{uri}"
26
27
  response = connection(uri)
27
28
  response
28
29
  end
@@ -33,6 +34,7 @@ module XClarityClient
33
34
 
34
35
  def host_settings
35
36
  uri = BASE_URI+NETWORK_URI+IPDISABLE_URI
37
+ $lxca_log.info "XclarityClient::VirtualApplianceManagement host_settings", "Action has been sent to #{uri}"
36
38
  response = connection(uri)
37
39
  response
38
40
  end
@@ -43,6 +45,7 @@ module XClarityClient
43
45
 
44
46
  def network_interface_settings(interface)
45
47
  uri = BASE_URI+NETWORK_URI+INTERFACES_URI+"/#{interface}"
48
+ $lxca_log.info "XclarityClient::VirtualApplianceManagement network_interface_settings", "Action has been sent to #{uri}"
46
49
  response = connection(uri)
47
50
  response
48
51
  end
@@ -53,6 +56,7 @@ module XClarityClient
53
56
 
54
57
  def route_settings
55
58
  uri = BASE_URI+NETWORK_URI+ROUTES_URI
59
+ $lxca_log.info "XclarityClient::VirtualApplianceManagement route_settings", "Action has been sent to #{uri}"
56
60
  response = connection(uri)
57
61
  response
58
62
  end
@@ -63,6 +67,7 @@ module XClarityClient
63
67
 
64
68
  def subscriptions
65
69
  uri = BASE_URI+SUBSCRIPTIONS_URI
70
+ $lxca_log.info "XclarityClient::VirtualApplianceManagement subscriptions", "Action has been sent to #{uri}"
66
71
  response = connection(uri)
67
72
  response
68
73
  end
@@ -1,22 +1,31 @@
1
1
  require 'faraday'
2
2
  require 'json'
3
3
  require 'uri'
4
+ require 'uri/https'
4
5
 
5
6
  module XClarityClient
6
7
  class XClarityBase
7
8
 
8
9
  token_auth = '/session'.freeze
9
-
10
10
  attr_reader :conn
11
-
11
+
12
12
  def initialize(conf, uri)
13
13
  connection_builder(conf, uri)
14
14
  end
15
15
 
16
16
  def connection_builder(conf, uri)
17
-
17
+ $lxca_log.info "XClarityClient::XClarityBase connection_builder", "Building the url"
18
18
  #Building configuration
19
- @conn = Faraday.new(url: conf.host + uri) do |faraday|
19
+ hostname = URI.parse(conf.host)
20
+ url = URI::HTTPS.build({ :host => hostname.scheme ? hostname.host : hostname.path,
21
+ :port => conf.port.to_i,
22
+ :path => uri,
23
+ :query => hostname.query,
24
+ :fragment => hostname.fragment }).to_s
25
+
26
+ $lxca_log.info "XClarityClient::XClarityBase connection_builder", "Creating connection to #{url}"
27
+
28
+ @conn = Faraday.new(url: url) do |faraday|
20
29
  faraday.request :url_encoded # form-encode POST params
21
30
  faraday.response :logger # log requests to STDOUT -- This line, should be uncommented if you wanna inspect the URL Request
22
31
  faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
@@ -26,7 +35,7 @@ module XClarityClient
26
35
  response = authentication(conf) unless conf.auth_type != 'token'
27
36
  #TODO: What's to do with the response of authentication request?
28
37
  @conn.basic_auth(conf.username, conf.password) if conf.auth_type == 'basic_auth'
29
-
38
+ $lxca_log.info "XClarityClient::XclarityBase connection_builder", "Connection created Successfuly"
30
39
  @conn
31
40
  end
32
41
 
@@ -34,14 +43,25 @@ module XClarityClient
34
43
 
35
44
  def connection(uri = "", opts = {})
36
45
  query = opts.size > 0 ? "?" + opts.map {|k, v| "#{k}=#{v}"}.join(",") : ""
37
- @conn.get(uri + query)
46
+ begin
47
+ @conn.get(uri + query)
48
+ rescue Faraday::Error::ConnectionFailed => e
49
+ $lxca_log.error "XClarityClient::XclarityBase connection", "Error trying to send a GET to #{uri + query}"
50
+ Faraday::Response.new
51
+ end
38
52
  end
39
53
 
40
54
  def do_put (uri="", request = {})
41
- @conn.put do |req|
42
- req.url uri
43
- req.headers['Content-Type'] = 'application/json'
44
- req.body = request
55
+ begin
56
+ @conn.put do |req|
57
+ req.url uri
58
+ req.headers['Content-Type'] = 'application/json'
59
+ req.body = request
60
+ end
61
+ rescue Faraday::Error::ConnectionFailed => e
62
+ $lxca_log.error "XClarityClient::XclarityBase do_put", "Error trying to send a PUT to #{uri}"
63
+ $lxca_log.error "XClarityClient::XclarityBase do_put", "Request sent: #{request}"
64
+ Faraday::Response.new
45
65
  end
46
66
  end
47
67
 
@@ -1,8 +1,12 @@
1
1
  module XClarityClient
2
2
  module ManagementMixin
3
3
  def get_all_resources (resource, opts = {})
4
+ $lxca_log.info "XclarityClient::ManagementMixin get_all_resources", "Sending request to #{resource} resource"
5
+
4
6
  response = connection(resource::BASE_URI, opts)
5
7
 
8
+ $lxca_log.info "XclarityClient::ManagementMixin get_all_resources", "Response received from #{resource::BASE_URI}"
9
+
6
10
  return [] unless response.success?
7
11
 
8
12
  body = JSON.parse(response.body)
@@ -15,6 +19,8 @@ module XClarityClient
15
19
 
16
20
  def get_object(uuids, includeAttributes, excludeAttributes, resource)
17
21
 
22
+ $lxca_log.info "XclarityClient::ManagementMixin get_object", "Sending request to #{resource} resource"
23
+
18
24
  uuids.reject! { |uuid| UUID.validate(uuid).nil? } unless uuids.nil?
19
25
 
20
26
  response = if not includeAttributes.nil?
@@ -39,6 +45,8 @@ module XClarityClient
39
45
 
40
46
  def get_object_with_include_attributes(uuids, attributes, resource)
41
47
 
48
+ $lxca_log.info "XclarityClient::ManagementMixin get_object_with_include", "Sending request to #{resource} resource including the following attributes: #{attributes.join(",")}"
49
+
42
50
  uuids.reject! { |uuid| UUID.validate(uuid).nil? } unless uuids.nil?
43
51
 
44
52
  response = if not uuids.nil?
@@ -51,6 +59,8 @@ module XClarityClient
51
59
 
52
60
  def get_object_with_exclude_attributes(uuids, attributes, resource)
53
61
 
62
+ $lxca_log.info "XclarityClient::ManagementMixin get_object_with_include", "Sending request to #{resource} resource excluding the following attributes: #{attributes.join(",")}"
63
+
54
64
  uuids.reject! { |uuid| UUID.validate(uuid).nil? } unless uuids.nil?
55
65
 
56
66
  response = if not uuids.nil?
@@ -78,7 +88,8 @@ module XClarityClient
78
88
  else
79
89
  filter += "?type=#{opts["type"]}"
80
90
  end
81
- connection(resource::BASE_URI + filter)
91
+ $lxca_log.info "XclarityClient::ManagementMixin get_object_with_include", "Sending request to #{resource} resource using the following filter: #{filter}"
92
+ connection(resource::BASE_URI + filter)
82
93
  end
83
94
 
84
95
  return [] unless response.success?
@@ -6,11 +6,11 @@ require 'xclarity_client/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "xclarity_client"
8
8
  spec.version = XClarityClient::VERSION
9
- spec.authors = ["Julian Cheal"]
10
- spec.email = ["jcheal@redhat.com"]
9
+ spec.authors = ["Manasa Rao","Rodney H. Brown"]
10
+ spec.email = ["mrao@lenovo.com","rbrown4@lenovo.com"]
11
11
 
12
- spec.summary = %q{Lenovo XClairty API Client}
13
- spec.homepage = "https://github.com/juliancheal/xclarity_client"
12
+ spec.summary = %q{Lenovo XClarity API Client}
13
+ spec.homepage = "https://github.com/lenovo/xclarity_client"
14
14
 
15
15
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
16
16
  spec.bindir = "exe"
@@ -24,4 +24,5 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency "webmock", "~> 2.1.0"
25
25
  spec.add_dependency "faraday", "~> 0.9.2"
26
26
  spec.add_dependency "uuid", "~> 2.3.8"
27
+ spec.add_dependency "faker", "~> 1.8.3"
27
28
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xclarity_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
- - Julian Cheal
7
+ - Manasa Rao
8
+ - Rodney H. Brown
8
9
  autorequire:
9
10
  bindir: exe
10
11
  cert_chain: []
11
- date: 2017-03-10 00:00:00.000000000 Z
12
+ date: 2017-07-18 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
@@ -108,9 +109,24 @@ dependencies:
108
109
  - - "~>"
109
110
  - !ruby/object:Gem::Version
110
111
  version: 2.3.8
112
+ - !ruby/object:Gem::Dependency
113
+ name: faker
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: 1.8.3
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: 1.8.3
111
126
  description:
112
127
  email:
113
- - jcheal@redhat.com
128
+ - mrao@lenovo.com
129
+ - rbrown4@lenovo.com
114
130
  executables: []
115
131
  extensions: []
116
132
  extra_rdoc_files: []
@@ -141,6 +157,7 @@ files:
141
157
  - docs/apib/squisher.rb
142
158
  - docs/apib/switches.apib
143
159
  - example/simple.rb
160
+ - lib/utils/logger.rb
144
161
  - lib/xclarity_client.rb
145
162
  - lib/xclarity_client/cabinet.rb
146
163
  - lib/xclarity_client/cabinet_management.rb
@@ -152,6 +169,7 @@ files:
152
169
  - lib/xclarity_client/cmm.rb
153
170
  - lib/xclarity_client/cmm_management.rb
154
171
  - lib/xclarity_client/configuration.rb
172
+ - lib/xclarity_client/discover.rb
155
173
  - lib/xclarity_client/event.rb
156
174
  - lib/xclarity_client/event_management.rb
157
175
  - lib/xclarity_client/fan.rb
@@ -172,7 +190,7 @@ files:
172
190
  - lib/xclarity_client/xclarity_management_mixin.rb
173
191
  - lib/xclarity_client/xclarity_resource.rb
174
192
  - xclarity_client.gemspec
175
- homepage: https://github.com/juliancheal/xclarity_client
193
+ homepage: https://github.com/lenovo/xclarity_client
176
194
  licenses: []
177
195
  metadata: {}
178
196
  post_install_message:
@@ -194,5 +212,5 @@ rubyforge_project:
194
212
  rubygems_version: 2.5.1
195
213
  signing_key:
196
214
  specification_version: 4
197
- summary: Lenovo XClairty API Client
215
+ summary: Lenovo XClarity API Client
198
216
  test_files: []