xclarity_client 0.5.9 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/docs/apib/persisted_result.apib +196 -0
  3. data/docs/apib/unmanage_request.apib +163 -0
  4. data/docs/apib/users.apib +26 -0
  5. data/lib/utils/logger.rb +1 -0
  6. data/lib/xclarity_client/client.rb +95 -43
  7. data/lib/xclarity_client/connection/connection.rb +118 -0
  8. data/lib/xclarity_client/discover.rb +1 -1
  9. data/lib/xclarity_client/{aicc.rb → endpoints/aicc.rb} +1 -8
  10. data/lib/xclarity_client/endpoints/buildable_resource_mixin.rb +61 -0
  11. data/lib/xclarity_client/{cabinet.rb → endpoints/cabinet.rb} +1 -7
  12. data/lib/xclarity_client/{canister.rb → endpoints/canister.rb} +1 -7
  13. data/lib/xclarity_client/{chassi.rb → endpoints/chassi.rb} +1 -8
  14. data/lib/xclarity_client/{cmm.rb → endpoints/cmm.rb} +1 -7
  15. data/lib/xclarity_client/{config_pattern.rb → endpoints/config_pattern.rb} +2 -9
  16. data/lib/xclarity_client/{config_profile.rb → endpoints/config_profile.rb} +1 -8
  17. data/lib/xclarity_client/{config_target.rb → endpoints/config_target.rb} +1 -8
  18. data/lib/xclarity_client/{discover_request.rb → endpoints/discover_request.rb} +1 -8
  19. data/lib/xclarity_client/{discovery.rb → endpoints/discovery.rb} +1 -8
  20. data/lib/xclarity_client/endpoints/endpoints.rb +34 -0
  21. data/lib/xclarity_client/{event.rb → endpoints/event.rb} +1 -7
  22. data/lib/xclarity_client/{fan.rb → endpoints/fan.rb} +1 -9
  23. data/lib/xclarity_client/{fan_mux.rb → endpoints/fan_mux.rb} +2 -10
  24. data/lib/xclarity_client/{ffdc.rb → endpoints/ffdc.rb} +1 -8
  25. data/lib/xclarity_client/endpoints/globalsettings.rb +12 -0
  26. data/lib/xclarity_client/endpoints/hostplatform.rb +17 -0
  27. data/lib/xclarity_client/{job.rb → endpoints/job.rb} +1 -8
  28. data/lib/xclarity_client/{node.rb → endpoints/node.rb} +1 -8
  29. data/lib/xclarity_client/endpoints/osimage.rb +14 -0
  30. data/lib/xclarity_client/endpoints/persisted_result.rb +8 -0
  31. data/lib/xclarity_client/{power_supply.rb → endpoints/power_supply.rb} +2 -8
  32. data/lib/xclarity_client/endpoints/remote_access.rb +8 -0
  33. data/lib/xclarity_client/endpoints/remotefileserver.rb +15 -0
  34. data/lib/xclarity_client/{scalable_complex.rb → endpoints/scalable_complex.rb} +1 -8
  35. data/lib/xclarity_client/{switch.rb → endpoints/switch.rb} +1 -8
  36. data/lib/xclarity_client/endpoints/unmanage_request.rb +8 -0
  37. data/lib/xclarity_client/{update_repo.rb → endpoints/update_repo.rb} +1 -8
  38. data/lib/xclarity_client/{user.rb → endpoints/user.rb} +5 -9
  39. data/lib/xclarity_client/endpoints/xclarity_endpoint.rb +13 -0
  40. data/lib/xclarity_client/errors/errors.rb +10 -0
  41. data/lib/xclarity_client/schemas.rb +199 -0
  42. data/lib/xclarity_client/services/aicc_management.rb +9 -0
  43. data/lib/xclarity_client/services/cabinet_management.rb +9 -0
  44. data/lib/xclarity_client/services/canister_management.rb +9 -0
  45. data/lib/xclarity_client/services/chassi_management.rb +9 -0
  46. data/lib/xclarity_client/services/cmm_management.rb +9 -0
  47. data/lib/xclarity_client/services/config_pattern_management.rb +41 -0
  48. data/lib/xclarity_client/{config_profile_management.rb → services/config_profile_management.rb} +8 -14
  49. data/lib/xclarity_client/services/config_target_management.rb +9 -0
  50. data/lib/xclarity_client/services/discover_request_management.rb +30 -0
  51. data/lib/xclarity_client/services/discovery_management.rb +9 -0
  52. data/lib/xclarity_client/services/event_management.rb +9 -0
  53. data/lib/xclarity_client/services/fan_management.rb +9 -0
  54. data/lib/xclarity_client/services/fan_mux_management.rb +9 -0
  55. data/lib/xclarity_client/services/ffdc_management.rb +9 -0
  56. data/lib/xclarity_client/services/globalsettings_management.rb +26 -0
  57. data/lib/xclarity_client/services/hostplatform_management.rb +32 -0
  58. data/lib/xclarity_client/services/job_management.rb +27 -0
  59. data/lib/xclarity_client/services/mixins/endpoint_manager_mixin.rb +30 -0
  60. data/lib/xclarity_client/services/mixins/list_name_interpreter_mixin.rb +61 -0
  61. data/lib/xclarity_client/services/mixins/response_builder_mixin.rb +38 -0
  62. data/lib/xclarity_client/{node_management.rb → services/node_management.rb} +7 -11
  63. data/lib/xclarity_client/services/osimage_management.rb +47 -0
  64. data/lib/xclarity_client/services/persisted_result_management.rb +11 -0
  65. data/lib/xclarity_client/services/power_supply_management.rb +9 -0
  66. data/lib/xclarity_client/services/remote_access_management.rb +57 -0
  67. data/lib/xclarity_client/services/remotefileserver_management.rb +41 -0
  68. data/lib/xclarity_client/services/scalable_complex_management.rb +9 -0
  69. data/lib/xclarity_client/services/services.rb +37 -0
  70. data/lib/xclarity_client/services/switch_management.rb +9 -0
  71. data/lib/xclarity_client/services/unmanage_request_management.rb +38 -0
  72. data/lib/xclarity_client/{update_repo_management.rb → services/update_repo_management.rb} +4 -12
  73. data/lib/xclarity_client/services/user_management.rb +42 -0
  74. data/lib/xclarity_client/services/xclarity_service.rb +139 -0
  75. data/lib/xclarity_client/version.rb +1 -1
  76. data/lib/xclarity_client/xclarity_base.rb +2 -2
  77. data/lib/xclarity_client.rb +6 -50
  78. data/xclarity_client.gemspec +1 -0
  79. metadata +93 -53
  80. data/lib/xclarity_client/aicc_management.rb +0 -16
  81. data/lib/xclarity_client/cabinet_management.rb +0 -17
  82. data/lib/xclarity_client/canister_management.rb +0 -17
  83. data/lib/xclarity_client/chassi_management.rb +0 -17
  84. data/lib/xclarity_client/cmm_management.rb +0 -17
  85. data/lib/xclarity_client/config_pattern_management.rb +0 -48
  86. data/lib/xclarity_client/config_target_management.rb +0 -14
  87. data/lib/xclarity_client/discover_request_management.rb +0 -32
  88. data/lib/xclarity_client/discovery_management.rb +0 -17
  89. data/lib/xclarity_client/event_management.rb +0 -17
  90. data/lib/xclarity_client/fan_management.rb +0 -17
  91. data/lib/xclarity_client/fan_mux_management.rb +0 -17
  92. data/lib/xclarity_client/ffdc_management.rb +0 -13
  93. data/lib/xclarity_client/job_management.rb +0 -28
  94. data/lib/xclarity_client/power_supply_management.rb +0 -17
  95. data/lib/xclarity_client/scalable_complex_management.rb +0 -17
  96. data/lib/xclarity_client/switch_management.rb +0 -16
  97. data/lib/xclarity_client/user_management.rb +0 -17
  98. data/lib/xclarity_client/xclarity_resource.rb +0 -21
  99. /data/lib/xclarity_client/{error → errors}/authentication_error.rb +0 -0
  100. /data/lib/xclarity_client/{error → errors}/connection_failed.rb +0 -0
  101. /data/lib/xclarity_client/{error → errors}/connection_failed_unknown.rb +0 -0
  102. /data/lib/xclarity_client/{error → errors}/connection_refused.rb +0 -0
  103. /data/lib/xclarity_client/{error → errors}/hostname_unknown.rb +0 -0
  104. /data/lib/xclarity_client/{virtual_appliance_management.rb → services/virtual_appliance_management.rb} +0 -0
  105. /data/lib/xclarity_client/{xclarity_management_mixin.rb → services/xclarity_management_mixin.rb} +0 -0
@@ -0,0 +1,37 @@
1
+ module XClarityClient
2
+ module Services
3
+ end
4
+ end
5
+
6
+ require 'xclarity_client/services/xclarity_management_mixin'
7
+ require 'xclarity_client/services/xclarity_service'
8
+
9
+ require 'xclarity_client/services/aicc_management'
10
+ require 'xclarity_client/services/cabinet_management'
11
+ require 'xclarity_client/services/canister_management'
12
+ require 'xclarity_client/services/chassi_management'
13
+ require 'xclarity_client/services/cmm_management'
14
+ require 'xclarity_client/services/config_pattern_management'
15
+ require 'xclarity_client/services/config_profile_management'
16
+ require 'xclarity_client/services/config_target_management'
17
+ require 'xclarity_client/services/discover_request_management'
18
+ require 'xclarity_client/services/discovery_management'
19
+ require 'xclarity_client/services/event_management'
20
+ require 'xclarity_client/services/fan_management'
21
+ require 'xclarity_client/services/fan_mux_management'
22
+ require 'xclarity_client/services/ffdc_management'
23
+ require 'xclarity_client/services/job_management'
24
+ require 'xclarity_client/services/node_management'
25
+ require 'xclarity_client/services/persisted_result_management'
26
+ require 'xclarity_client/services/power_supply_management'
27
+ require 'xclarity_client/services/remote_access_management'
28
+ require 'xclarity_client/services/scalable_complex_management'
29
+ require 'xclarity_client/services/switch_management'
30
+ require 'xclarity_client/services/unmanage_request_management'
31
+ require 'xclarity_client/services/update_repo_management'
32
+ require 'xclarity_client/services/user_management'
33
+ require 'xclarity_client/services/virtual_appliance_management'
34
+ require 'xclarity_client/services/osimage_management'
35
+ require 'xclarity_client/services/globalsettings_management'
36
+ require 'xclarity_client/services/hostplatform_management'
37
+ require 'xclarity_client/services/remotefileserver_management'
@@ -0,0 +1,9 @@
1
+ module XClarityClient
2
+ class SwitchManagement< Services::XClarityService
3
+ manages_endpoint Switch
4
+
5
+ def population(opts = {})
6
+ fetch_all(opts)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,38 @@
1
+ require 'json'
2
+
3
+ module XClarityClient
4
+ class UnmanageRequestManagement< Services::XClarityService
5
+ manages_endpoint UnmanageRequest
6
+
7
+ def population(opts = {})
8
+ fetch_all(opts)
9
+ end
10
+
11
+ def unmanage_discovered_devices(endpoints, force)
12
+ deploy_hash = {}
13
+ deploy_hash.merge!({:endpoints => endpoints})
14
+ if force.downcase.eql? "true"
15
+ deploy_hash.merge!({:forceUnmanage => true})
16
+ else
17
+ deploy_hash.merge!({:forceUnmanage => false})
18
+ end
19
+ response = @connection.do_post(managed_resource::BASE_URI, JSON.generate(deploy_hash))
20
+ if response.status == 200 or response.status == 201
21
+ puts response.headers[:location].split("/")[-1]
22
+ end
23
+ end
24
+
25
+ def fetch_unmanage_request(job_id)
26
+ response = @connection.do_get(managed_resource::BASE_URI + "/jobs/" + job_id)
27
+ return [] unless response.success?
28
+
29
+ body = JSON.parse(response.body)
30
+
31
+ body = {managed_resource::LIST_NAME => body} if body.is_a? Array
32
+ body = {managed_resource::LIST_NAME => [body]} unless body.has_key? managed_resource::LIST_NAME
33
+ body[managed_resource::LIST_NAME].map do |resource_params|
34
+ managed_resource.new resource_params
35
+ end
36
+ end
37
+ end
38
+ end
@@ -1,24 +1,16 @@
1
- require 'json'
2
-
3
1
  module XClarityClient
4
- class UpdateRepoManagement < XClarityBase
5
-
6
- include XClarityClient::ManagementMixin
7
-
8
- def initialize(conf)
9
- super(conf, UpdateRepo::BASE_URI)
10
- end
2
+ class UpdateRepoManagement < Services::XClarityService
3
+ manages_endpoint UpdateRepo
11
4
 
12
5
  def population(opts = {})
13
6
  raise "Option key must be provided for update_repo resource" if opts.empty?
14
7
  raise "Option key must be provided for update_repo resource" if not (opts.has_key?(:key) || opts.has_key?("key"))
15
8
  repoKey = opts[:key] || opts["key"]
16
9
  if repoKey == "supportedMts" || repoKey == "size" || repoKey == "lastRefreshed" || repoKey == "importDir" || repoKey == "publicKeys" || repoKey == "updates" || repoKey == "updatesByMt" || repoKey == "updatesByMtByComp"
17
- get_all_resources(UpdateRepo, opts)
18
- else
10
+ fetch_all(opts)
11
+ else
19
12
  raise "The value for option key should be one of these : supportedMts, lastRefreshed, size, importDir, publicKeys, updates, updatesByMt, updatesByMtByComp"
20
13
  end
21
14
  end
22
-
23
15
  end
24
16
  end
@@ -0,0 +1,42 @@
1
+ require 'json'
2
+
3
+ module XClarityClient
4
+ class UserManagement < Services::XClarityService
5
+ manages_endpoint User
6
+
7
+ def population(opts = {})
8
+ fetch_all(opts)
9
+ end
10
+
11
+ def change_password(current_password, new_password)
12
+ payload = {
13
+ password: current_password,
14
+ newPassword: new_password,
15
+ confirmPassword: new_password
16
+ }
17
+
18
+ request_body = JSON.generate(payload)
19
+
20
+ response = @connection.do_put(managed_resource::SUB_URIS[:changePassword], request_body)
21
+
22
+ mount_response_change_password(response)
23
+ end
24
+
25
+ private
26
+
27
+ # Mounts a friendly response for the change password request
28
+ #
29
+ # @param [response] response provided by LXCA in change password endpoint
30
+ # @return [Hash] represents LXCA response
31
+ # :changed [Boolean] says if the password was changed or not
32
+ # :message [String] message from LXCA about the operation
33
+ def mount_response_change_password(response)
34
+ response = JSON.parse(response.body)
35
+
36
+ {
37
+ changed: response['response']['changed'],
38
+ message: response['messages'].first['explanation']
39
+ }
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,139 @@
1
+ require 'xclarity_client/connection/connection'
2
+ require 'xclarity_client/services/mixins/response_builder_mixin'
3
+ require 'xclarity_client/services/mixins/endpoint_manager_mixin'
4
+
5
+ module XClarityClient
6
+ module Services
7
+ class XClarityService
8
+ include ResponseBuilderMixin
9
+ extend EndpointManagerMixin
10
+
11
+ def initialize(connection_conf)
12
+ @connection = XClarityClient::Connection.new(connection_conf)
13
+ end
14
+
15
+ #
16
+ # Fetchs all resources represented by `managed_resource` from LXCA
17
+ #
18
+ # @return [Array] containing all `managed_resource` from LXCA
19
+ # @see EndpointManagerMixin#managed_resource
20
+ #
21
+ def fetch_all(opts = {})
22
+ $lxca_log.info "XclarityClient::Endpoints::XClarityService fetch_all",
23
+ "Sending request to #{managed_resource} resource"
24
+
25
+ response = @connection.do_get(managed_resource::BASE_URI, opts)
26
+
27
+ $lxca_log.info "XclarityClient::Endpoints::XClarityService fetch_all",
28
+ "Response received from #{managed_resource::BASE_URI}"
29
+
30
+ build_response_with_resource_list(response, managed_resource)
31
+ end
32
+
33
+ def get_object(uuids, includeAttributes, excludeAttributes)
34
+ $lxca_log.info "XclarityClient::Endpoints::XClarityService get_object",
35
+ "Sending request to #{managed_resource} resource"
36
+
37
+ uuids.reject! { |uuid| UUID.validate(uuid).nil? } unless uuids.nil?
38
+
39
+ response = if not includeAttributes.nil?
40
+ get_object_with_include_attributes(uuids, includeAttributes)
41
+ elsif not excludeAttributes.nil?
42
+ get_object_with_exclude_attributes(uuids, excludeAttributes)
43
+ elsif not uuids.nil?
44
+ @connection.do_get(managed_resource::BASE_URI + "/" + uuids.join(","))
45
+ else
46
+ @connection.do_get(managed_resource::BASE_URI)
47
+ end
48
+
49
+ build_response_with_resource_list(response, managed_resource)
50
+ end
51
+
52
+ def get_object_with_id(ids, includeAttributes, excludeAttributes)
53
+ response = if not includeAttributes.nil?
54
+ get_object_with_id_include_attributes(ids, includeAttributes, managed_resource)
55
+ elsif not excludeAttributes.nil?
56
+ get_object_with_id_exclude_attributes(ids, excludeAttributes, managed_resource)
57
+ elsif not ids.nil?
58
+ @connection.do_get(managed_resource::BASE_URI + "/" + ids.join(","))
59
+ else
60
+ @connection.do_get(managed_resource::BASE_URI)
61
+ end
62
+
63
+ build_response_with_resource_list(response, managed_resource)
64
+ end
65
+
66
+ def get_object_with_opts(opts, resource)
67
+ raise "The opts cannot be empty" if opts.empty?
68
+ filter = ""
69
+
70
+ response = if not opts.empty?
71
+ if not opts.has_key? "type"
72
+ if opts.has_key? "filterWith"
73
+ filter += "?filterWith="
74
+ filter += "#{opts["filterWith"]}"
75
+
76
+ elsif opts.has_key? "sort"
77
+ filter += ",sort=" if filter != ""
78
+ filter += "?sort=" if filter == ""
79
+ filter += "#{opts["sort"]}"
80
+ end
81
+ else
82
+ filter += "?type=#{opts["type"]}"
83
+ end
84
+ $lxca_log.info "XclarityClient::ManagementMixin get_object_with_include", "Sending request to #{resource} resource using the following filter: #{filter}"
85
+ @connection.do_get(resource::BASE_URI + filter)
86
+ end
87
+
88
+ build_response_with_resource_list(response, managed_resource)
89
+ end
90
+
91
+ private
92
+
93
+ #
94
+ #
95
+ #
96
+ def get_object_with_include_attributes(uuids, attributes)
97
+ $lxca_log.info "XclarityClient::ManagementMixin get_object_with_include",
98
+ "Sending request to #{managed_resource} resource including the following attributes: #{attributes.join(",")}"
99
+
100
+ response = if not uuids.nil?
101
+ @connection.do_get(managed_resource::BASE_URI + "/" + uuids.join(",") + "?includeAttributes=" + attributes.join(","))
102
+ else
103
+ @connection.do_get(managed_resource::BASE_URI + "?includeAttributes=" + attributes.join(","))
104
+ end
105
+
106
+ end
107
+
108
+ #
109
+ #
110
+ #
111
+ def get_object_with_exclude_attributes(uuids, attributes)
112
+ $lxca_log.info "XclarityClient::ManagementMixin get_object_with_include",
113
+ "Sending request to #{managed_resource} resource excluding the following attributes: #{attributes.join(",")}"
114
+
115
+ response = if not uuids.nil?
116
+ @connection.do_get(managed_resource::BASE_URI + "/#{uuids.join(",")}"+"?excludeAttributes=#{attributes.join(",")}")
117
+ else
118
+ @connection.do_get(managed_resource::BASE_URI + "?excludeAttributes=" + attributes.join(","))
119
+ end
120
+ end
121
+
122
+ def get_object_with_id_include_attributes(uuids, attributes, resource)
123
+ response = if not uuids.nil?
124
+ @connection.do_get(resource::BASE_URI + "/" + uuids.join(",") + "?includeAttributes=" + attributes.join(","))
125
+ else
126
+ @connection.do_get(resource::BASE_URI + "?includeAttributes=" + attributes.join(","))
127
+ end
128
+ end
129
+
130
+ def get_object_with_id_exclude_attributes(uuids, attributes, resource)
131
+ response = if not uuids.nil?
132
+ @connection.do_get(resource::BASE_URI + "/#{uuids.join(",")}"+"?excludeAttributes=#{attributes.join(",")}")
133
+ else
134
+ @connection.do_get(resource::BASE_URI + "?excludeAttributes=" + attributes.join(","))
135
+ end
136
+ end
137
+ end
138
+ end
139
+ end
@@ -1,3 +1,3 @@
1
1
  module XClarityClient
2
- VERSION = "0.5.9"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -26,12 +26,12 @@ module XClarityClient
26
26
 
27
27
  @conn = Faraday.new(url: url) do |faraday|
28
28
  faraday.request :url_encoded # form-encode POST params
29
- faraday.response :logger # log requests to STDOUT -- This line, should be uncommented if you wanna inspect the URL Request
29
+ faraday.response :logger, $lxca_log.log # log requests to STDOUT -- This line, should be uncommented if you wanna inspect the URL Request
30
30
  faraday.use :cookie_jar if conf.auth_type == 'token'
31
31
  faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
32
32
  faraday.ssl[:verify] = conf.verify_ssl == 'PEER'
33
33
  end
34
-
34
+
35
35
  @conn.headers[:user_agent] = "LXCA via Ruby Client/#{XClarityClient::VERSION}" + (conf.user_agent_label.nil? ? "" : " (#{conf.user_agent_label})")
36
36
  @conn.basic_auth(conf.username, conf.password) if conf.auth_type == 'basic_auth'
37
37
  $lxca_log.info "XClarityClient::XclarityBase connection_builder", "Connection created Successfuly"
@@ -5,59 +5,15 @@ module XClarityClient
5
5
  $lxca_log = XClarityClient::XClarityLogger.new
6
6
  end
7
7
 
8
+ require 'xclarity_client/errors/errors'
9
+
8
10
  require 'xclarity_client/configuration'
9
11
  require 'xclarity_client/xclarity_base'
10
- require 'xclarity_client/xclarity_resource'
11
- require 'xclarity_client/xclarity_management_mixin'
12
12
  require 'xclarity_client/xclarity_power_management_mixin'
13
13
  require 'xclarity_client/xclarity_credentials_validator'
14
- require 'xclarity_client/virtual_appliance_management'
15
- require 'xclarity_client/aicc'
16
- require 'xclarity_client/aicc_management'
17
- require 'xclarity_client/node'
18
- require 'xclarity_client/node_management'
19
- require 'xclarity_client/chassi'
20
- require 'xclarity_client/chassi_management'
21
- require 'xclarity_client/scalable_complex'
22
- require 'xclarity_client/scalable_complex_management'
23
- require 'xclarity_client/power_supply'
24
- require 'xclarity_client/power_supply_management'
25
- require 'xclarity_client/switch'
26
- require 'xclarity_client/switch_management'
27
- require 'xclarity_client/fan_mux'
28
- require 'xclarity_client/fan_mux_management'
29
- require 'xclarity_client/fan'
30
- require 'xclarity_client/fan_management'
31
- require 'xclarity_client/cmm'
32
- require 'xclarity_client/cmm_management'
33
- require 'xclarity_client/canister'
34
- require 'xclarity_client/canister_management'
35
- require 'xclarity_client/cabinet'
36
- require 'xclarity_client/cabinet_management'
37
- require 'xclarity_client/event'
38
- require 'xclarity_client/event_management'
39
- require 'xclarity_client/ffdc'
40
- require 'xclarity_client/ffdc_management'
41
- require 'xclarity_client/job'
42
- require 'xclarity_client/job_management'
43
- require 'xclarity_client/update_repo'
44
- require 'xclarity_client/update_repo_management'
45
- require 'xclarity_client/user'
46
- require 'xclarity_client/user_management'
47
14
  require 'xclarity_client/discover'
48
15
  require 'xclarity_client/client'
49
- require 'xclarity_client/config_target'
50
- require 'xclarity_client/config_target_management'
51
- require 'xclarity_client/config_profile'
52
- require 'xclarity_client/config_profile_management'
53
- require 'xclarity_client/config_pattern'
54
- require 'xclarity_client/config_pattern_management'
55
- require 'xclarity_client/error/authentication_error'
56
- require 'xclarity_client/error/connection_failed'
57
- require 'xclarity_client/error/connection_failed_unknown'
58
- require 'xclarity_client/error/connection_refused'
59
- require 'xclarity_client/error/hostname_unknown'
60
- require 'xclarity_client/discover_request'
61
- require 'xclarity_client/discover_request_management'
62
- require 'xclarity_client/discovery'
63
- require 'xclarity_client/discovery_management'
16
+ require 'xclarity_client/schemas'
17
+
18
+ require 'xclarity_client/endpoints/endpoints'
19
+ require 'xclarity_client/services/services'
@@ -26,4 +26,5 @@ Gem::Specification.new do |spec|
26
26
  spec.add_dependency "faraday-cookie_jar", "~> 0.0.6"
27
27
  spec.add_dependency "uuid", "~> 2.3.8"
28
28
  spec.add_dependency "faker", "~> 1.8.3"
29
+ spec.add_dependency "json-schema", "~> 2.8.0"
29
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xclarity_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.9
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manasa Rao
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2018-01-19 00:00:00.000000000 Z
12
+ date: 2018-04-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -137,6 +137,20 @@ dependencies:
137
137
  - - "~>"
138
138
  - !ruby/object:Gem::Version
139
139
  version: 1.8.3
140
+ - !ruby/object:Gem::Dependency
141
+ name: json-schema
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: 2.8.0
147
+ type: :runtime
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: 2.8.0
140
154
  description:
141
155
  email:
142
156
  - mrao@lenovo.com
@@ -174,72 +188,98 @@ files:
174
188
  - docs/apib/jobs.apib
175
189
  - docs/apib/node.apib
176
190
  - docs/apib/node_bmc.apib
191
+ - docs/apib/persisted_result.apib
177
192
  - docs/apib/power_supply.apib
178
193
  - docs/apib/scalable_complex.apib
179
194
  - docs/apib/squisher.rb
180
195
  - docs/apib/switches.apib
196
+ - docs/apib/unmanage_request.apib
181
197
  - docs/apib/update_repo.apib
182
198
  - docs/apib/users.apib
183
199
  - example/simple.rb
184
200
  - lib/utils/logger.rb
185
201
  - lib/xclarity_client.rb
186
- - lib/xclarity_client/aicc.rb
187
- - lib/xclarity_client/aicc_management.rb
188
- - lib/xclarity_client/cabinet.rb
189
- - lib/xclarity_client/cabinet_management.rb
190
- - lib/xclarity_client/canister.rb
191
- - lib/xclarity_client/canister_management.rb
192
- - lib/xclarity_client/chassi.rb
193
- - lib/xclarity_client/chassi_management.rb
194
202
  - lib/xclarity_client/client.rb
195
- - lib/xclarity_client/cmm.rb
196
- - lib/xclarity_client/cmm_management.rb
197
- - lib/xclarity_client/config_pattern.rb
198
- - lib/xclarity_client/config_pattern_management.rb
199
- - lib/xclarity_client/config_profile.rb
200
- - lib/xclarity_client/config_profile_management.rb
201
- - lib/xclarity_client/config_target.rb
202
- - lib/xclarity_client/config_target_management.rb
203
203
  - lib/xclarity_client/configuration.rb
204
+ - lib/xclarity_client/connection/connection.rb
204
205
  - lib/xclarity_client/discover.rb
205
- - lib/xclarity_client/discover_request.rb
206
- - lib/xclarity_client/discover_request_management.rb
207
- - lib/xclarity_client/discovery.rb
208
- - lib/xclarity_client/discovery_management.rb
209
- - lib/xclarity_client/error/authentication_error.rb
210
- - lib/xclarity_client/error/connection_failed.rb
211
- - lib/xclarity_client/error/connection_failed_unknown.rb
212
- - lib/xclarity_client/error/connection_refused.rb
213
- - lib/xclarity_client/error/hostname_unknown.rb
214
- - lib/xclarity_client/event.rb
215
- - lib/xclarity_client/event_management.rb
216
- - lib/xclarity_client/fan.rb
217
- - lib/xclarity_client/fan_management.rb
218
- - lib/xclarity_client/fan_mux.rb
219
- - lib/xclarity_client/fan_mux_management.rb
220
- - lib/xclarity_client/ffdc.rb
221
- - lib/xclarity_client/ffdc_management.rb
222
- - lib/xclarity_client/job.rb
223
- - lib/xclarity_client/job_management.rb
224
- - lib/xclarity_client/node.rb
225
- - lib/xclarity_client/node_management.rb
226
- - lib/xclarity_client/power_supply.rb
227
- - lib/xclarity_client/power_supply_management.rb
228
- - lib/xclarity_client/scalable_complex.rb
229
- - lib/xclarity_client/scalable_complex_management.rb
230
- - lib/xclarity_client/switch.rb
231
- - lib/xclarity_client/switch_management.rb
232
- - lib/xclarity_client/update_repo.rb
233
- - lib/xclarity_client/update_repo_management.rb
234
- - lib/xclarity_client/user.rb
235
- - lib/xclarity_client/user_management.rb
206
+ - lib/xclarity_client/endpoints/aicc.rb
207
+ - lib/xclarity_client/endpoints/buildable_resource_mixin.rb
208
+ - lib/xclarity_client/endpoints/cabinet.rb
209
+ - lib/xclarity_client/endpoints/canister.rb
210
+ - lib/xclarity_client/endpoints/chassi.rb
211
+ - lib/xclarity_client/endpoints/cmm.rb
212
+ - lib/xclarity_client/endpoints/config_pattern.rb
213
+ - lib/xclarity_client/endpoints/config_profile.rb
214
+ - lib/xclarity_client/endpoints/config_target.rb
215
+ - lib/xclarity_client/endpoints/discover_request.rb
216
+ - lib/xclarity_client/endpoints/discovery.rb
217
+ - lib/xclarity_client/endpoints/endpoints.rb
218
+ - lib/xclarity_client/endpoints/event.rb
219
+ - lib/xclarity_client/endpoints/fan.rb
220
+ - lib/xclarity_client/endpoints/fan_mux.rb
221
+ - lib/xclarity_client/endpoints/ffdc.rb
222
+ - lib/xclarity_client/endpoints/globalsettings.rb
223
+ - lib/xclarity_client/endpoints/hostplatform.rb
224
+ - lib/xclarity_client/endpoints/job.rb
225
+ - lib/xclarity_client/endpoints/node.rb
226
+ - lib/xclarity_client/endpoints/osimage.rb
227
+ - lib/xclarity_client/endpoints/persisted_result.rb
228
+ - lib/xclarity_client/endpoints/power_supply.rb
229
+ - lib/xclarity_client/endpoints/remote_access.rb
230
+ - lib/xclarity_client/endpoints/remotefileserver.rb
231
+ - lib/xclarity_client/endpoints/scalable_complex.rb
232
+ - lib/xclarity_client/endpoints/switch.rb
233
+ - lib/xclarity_client/endpoints/unmanage_request.rb
234
+ - lib/xclarity_client/endpoints/update_repo.rb
235
+ - lib/xclarity_client/endpoints/user.rb
236
+ - lib/xclarity_client/endpoints/xclarity_endpoint.rb
237
+ - lib/xclarity_client/errors/authentication_error.rb
238
+ - lib/xclarity_client/errors/connection_failed.rb
239
+ - lib/xclarity_client/errors/connection_failed_unknown.rb
240
+ - lib/xclarity_client/errors/connection_refused.rb
241
+ - lib/xclarity_client/errors/errors.rb
242
+ - lib/xclarity_client/errors/hostname_unknown.rb
243
+ - lib/xclarity_client/schemas.rb
244
+ - lib/xclarity_client/services/aicc_management.rb
245
+ - lib/xclarity_client/services/cabinet_management.rb
246
+ - lib/xclarity_client/services/canister_management.rb
247
+ - lib/xclarity_client/services/chassi_management.rb
248
+ - lib/xclarity_client/services/cmm_management.rb
249
+ - lib/xclarity_client/services/config_pattern_management.rb
250
+ - lib/xclarity_client/services/config_profile_management.rb
251
+ - lib/xclarity_client/services/config_target_management.rb
252
+ - lib/xclarity_client/services/discover_request_management.rb
253
+ - lib/xclarity_client/services/discovery_management.rb
254
+ - lib/xclarity_client/services/event_management.rb
255
+ - lib/xclarity_client/services/fan_management.rb
256
+ - lib/xclarity_client/services/fan_mux_management.rb
257
+ - lib/xclarity_client/services/ffdc_management.rb
258
+ - lib/xclarity_client/services/globalsettings_management.rb
259
+ - lib/xclarity_client/services/hostplatform_management.rb
260
+ - lib/xclarity_client/services/job_management.rb
261
+ - lib/xclarity_client/services/mixins/endpoint_manager_mixin.rb
262
+ - lib/xclarity_client/services/mixins/list_name_interpreter_mixin.rb
263
+ - lib/xclarity_client/services/mixins/response_builder_mixin.rb
264
+ - lib/xclarity_client/services/node_management.rb
265
+ - lib/xclarity_client/services/osimage_management.rb
266
+ - lib/xclarity_client/services/persisted_result_management.rb
267
+ - lib/xclarity_client/services/power_supply_management.rb
268
+ - lib/xclarity_client/services/remote_access_management.rb
269
+ - lib/xclarity_client/services/remotefileserver_management.rb
270
+ - lib/xclarity_client/services/scalable_complex_management.rb
271
+ - lib/xclarity_client/services/services.rb
272
+ - lib/xclarity_client/services/switch_management.rb
273
+ - lib/xclarity_client/services/unmanage_request_management.rb
274
+ - lib/xclarity_client/services/update_repo_management.rb
275
+ - lib/xclarity_client/services/user_management.rb
276
+ - lib/xclarity_client/services/virtual_appliance_management.rb
277
+ - lib/xclarity_client/services/xclarity_management_mixin.rb
278
+ - lib/xclarity_client/services/xclarity_service.rb
236
279
  - lib/xclarity_client/version.rb
237
- - lib/xclarity_client/virtual_appliance_management.rb
238
280
  - lib/xclarity_client/xclarity_base.rb
239
281
  - lib/xclarity_client/xclarity_credentials_validator.rb
240
- - lib/xclarity_client/xclarity_management_mixin.rb
241
282
  - lib/xclarity_client/xclarity_power_management_mixin.rb
242
- - lib/xclarity_client/xclarity_resource.rb
243
283
  - xclarity_client.gemspec
244
284
  homepage: https://github.com/lenovo/xclarity_client
245
285
  licenses: []
@@ -260,7 +300,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
260
300
  version: '0'
261
301
  requirements: []
262
302
  rubyforge_project:
263
- rubygems_version: 2.5.1
303
+ rubygems_version: 2.6.14
264
304
  signing_key:
265
305
  specification_version: 4
266
306
  summary: Lenovo XClarity API Client
@@ -1,16 +0,0 @@
1
- # XClarityClient module/namespace
2
- module XClarityClient
3
- # Aicc Management class
4
- class AiccManagement < XClarityBase
5
- include XClarityClient::ManagementMixin
6
-
7
- def initialize(conf)
8
- super(conf, Aicc::BASE_URI)
9
- end
10
-
11
- def population(opts = {})
12
- get_all_resources(Aicc, opts)
13
- end
14
-
15
- end
16
- end
@@ -1,17 +0,0 @@
1
- require 'json'
2
-
3
- module XClarityClient
4
- class CabinetManagement < XClarityBase
5
-
6
- include XClarityClient::ManagementMixin
7
-
8
- def initialize(conf)
9
- super(conf, Cabinet::BASE_URI)
10
- end
11
-
12
- def population(opts = {})
13
- get_all_resources(Cabinet, opts)
14
- end
15
-
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- require 'json'
2
-
3
- module XClarityClient
4
- class CanisterManagement < XClarityBase
5
-
6
- include XClarityClient::ManagementMixin
7
-
8
- def initialize(conf)
9
- super(conf, Canister::BASE_URI)
10
- end
11
-
12
- def population(opts = {})
13
- get_all_resources(Canister, opts)
14
- end
15
-
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- require 'json'
2
-
3
- module XClarityClient
4
- class ChassiManagement < XClarityBase
5
-
6
- include XClarityClient::ManagementMixin
7
-
8
- def initialize(conf)
9
- super(conf, Chassi::BASE_URI)
10
- end
11
-
12
- def population(opts = {})
13
- get_all_resources(Chassi, opts)
14
- end
15
-
16
- end
17
- end