oneview-sdk 3.1.0 → 4.0.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.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -8
  3. data/README.md +41 -11
  4. data/Rakefile +47 -0
  5. data/lib/oneview-sdk.rb +6 -1
  6. data/lib/oneview-sdk/cli.rb +21 -6
  7. data/lib/oneview-sdk/client.rb +23 -7
  8. data/lib/oneview-sdk/image-streamer/client.rb +96 -0
  9. data/lib/oneview-sdk/image-streamer/resource/api300/artifacts_bundle.rb +26 -0
  10. data/lib/oneview-sdk/image-streamer/resource/api300/build_plan.rb +26 -0
  11. data/lib/oneview-sdk/image-streamer/resource/api300/deployment_plan.rb +26 -0
  12. data/lib/oneview-sdk/image-streamer/resource/api300/golden_image.rb +26 -0
  13. data/lib/oneview-sdk/{resource/api300/synergy/logical_switch_group.rb → image-streamer/resource/api300/os_volume.rb} +17 -13
  14. data/lib/oneview-sdk/image-streamer/resource/api300/plan_script.rb +42 -0
  15. data/lib/oneview-sdk/image-streamer/resource/api300/resource.rb +21 -0
  16. data/lib/oneview-sdk/image-streamer/resource/api_300.rb +39 -0
  17. data/lib/oneview-sdk/image_streamer.rb +68 -0
  18. data/lib/oneview-sdk/resource.rb +13 -1
  19. data/lib/oneview-sdk/resource/api200/connection_template.rb +2 -2
  20. data/lib/oneview-sdk/resource/api200/datacenter.rb +2 -2
  21. data/lib/oneview-sdk/resource/api200/enclosure.rb +2 -2
  22. data/lib/oneview-sdk/resource/api200/enclosure_group.rb +6 -0
  23. data/lib/oneview-sdk/resource/api200/fabric.rb +4 -4
  24. data/lib/oneview-sdk/resource/api200/firmware_driver.rb +2 -2
  25. data/lib/oneview-sdk/resource/api200/interconnect.rb +3 -3
  26. data/lib/oneview-sdk/resource/api200/logical_downlink.rb +3 -3
  27. data/lib/oneview-sdk/resource/api200/logical_interconnect_group.rb +8 -8
  28. data/lib/oneview-sdk/resource/api200/logical_switch.rb +2 -4
  29. data/lib/oneview-sdk/resource/api200/managed_san.rb +3 -3
  30. data/lib/oneview-sdk/resource/api200/power_device.rb +2 -2
  31. data/lib/oneview-sdk/resource/api200/rack.rb +2 -2
  32. data/lib/oneview-sdk/resource/api200/san_manager.rb +2 -2
  33. data/lib/oneview-sdk/resource/api200/server_hardware.rb +2 -2
  34. data/lib/oneview-sdk/resource/api200/server_hardware_type.rb +2 -2
  35. data/lib/oneview-sdk/resource/api200/storage_pool.rb +3 -3
  36. data/lib/oneview-sdk/resource/api200/storage_system.rb +2 -2
  37. data/lib/oneview-sdk/resource/api200/switch.rb +4 -4
  38. data/lib/oneview-sdk/resource/api200/unmanaged_device.rb +2 -2
  39. data/lib/oneview-sdk/resource/api200/user.rb +79 -0
  40. data/lib/oneview-sdk/resource/api200/volume_attachment.rb +3 -3
  41. data/lib/oneview-sdk/resource/api200/volume_snapshot.rb +2 -2
  42. data/lib/oneview-sdk/resource/api300.rb +2 -2
  43. data/lib/oneview-sdk/resource/api300/c7000/enclosure.rb +3 -15
  44. data/lib/oneview-sdk/resource/api300/c7000/enclosure_group.rb +54 -1
  45. data/lib/oneview-sdk/resource/api300/c7000/logical_downlink.rb +2 -2
  46. data/lib/oneview-sdk/resource/api300/c7000/logical_switch.rb +4 -0
  47. data/lib/oneview-sdk/resource/api300/c7000/managed_san.rb +1 -1
  48. data/lib/oneview-sdk/resource/api300/c7000/scope.rb +142 -0
  49. data/lib/oneview-sdk/resource/api300/c7000/server_hardware.rb +3 -17
  50. data/lib/oneview-sdk/resource/api300/c7000/user.rb +22 -0
  51. data/lib/oneview-sdk/resource/api300/synergy/drive_enclosure.rb +3 -3
  52. data/lib/oneview-sdk/resource/api300/synergy/enclosure.rb +4 -31
  53. data/lib/oneview-sdk/resource/api300/synergy/enclosure_group.rb +3 -6
  54. data/lib/oneview-sdk/resource/api300/synergy/logical_downlink.rb +2 -2
  55. data/lib/oneview-sdk/resource/api300/synergy/logical_enclosure.rb +1 -1
  56. data/lib/oneview-sdk/resource/api300/synergy/logical_interconnect_group.rb +24 -23
  57. data/lib/oneview-sdk/resource/api300/synergy/logical_switch.rb +2 -0
  58. data/lib/oneview-sdk/resource/api300/synergy/sas_interconnect.rb +3 -3
  59. data/lib/oneview-sdk/resource/api300/synergy/sas_logical_interconnect.rb +2 -2
  60. data/lib/oneview-sdk/resource/api300/synergy/scope.rb +22 -0
  61. data/lib/oneview-sdk/resource/api300/synergy/user.rb +22 -0
  62. data/lib/oneview-sdk/rest.rb +7 -2
  63. data/lib/oneview-sdk/version.rb +2 -2
  64. data/oneview-sdk.gemspec +1 -0
  65. metadata +32 -4
@@ -19,25 +19,25 @@ module OneviewSDK
19
19
 
20
20
  # Method is not available
21
21
  # @raise [OneviewSDK::MethodUnavailable] method is not available
22
- def create
22
+ def create(*)
23
23
  unavailable_method
24
24
  end
25
25
 
26
26
  # Method is not available
27
27
  # @raise [OneviewSDK::MethodUnavailable] method is not available
28
- def update
28
+ def update(*)
29
29
  unavailable_method
30
30
  end
31
31
 
32
32
  # Method is not available
33
33
  # @raise [OneviewSDK::MethodUnavailable] method is not available
34
- def delete
34
+ def delete(*)
35
35
  unavailable_method
36
36
  end
37
37
 
38
38
  # Method is not available
39
39
  # @raise [OneviewSDK::MethodUnavailable] method is not available
40
- def refresh
40
+ def refresh(*)
41
41
  unavailable_method
42
42
  end
43
43
  end
@@ -23,13 +23,13 @@ module OneviewSDK
23
23
 
24
24
  # Method is not available
25
25
  # @raise [OneviewSDK::MethodUnavailable] method is not available
26
- def delete
26
+ def delete(*)
27
27
  unavailable_method
28
28
  end
29
29
 
30
30
  # Method is not available
31
31
  # @raise [OneviewSDK::MethodUnavailable] method is not available
32
- def update
32
+ def update(*)
33
33
  unavailable_method
34
34
  end
35
35
  end
@@ -31,19 +31,19 @@ module OneviewSDK
31
31
 
32
32
  # Method is not available
33
33
  # @raise [OneviewSDK::MethodUnavailable] method is not available
34
- def create
34
+ def create(*)
35
35
  unavailable_method
36
36
  end
37
37
 
38
38
  # Method is not available
39
39
  # @raise [OneviewSDK::MethodUnavailable] method is not available
40
- def update
40
+ def update(*)
41
41
  unavailable_method
42
42
  end
43
43
 
44
44
  # Method is not available
45
45
  # @raise [OneviewSDK::MethodUnavailable] method is not available
46
- def delete
46
+ def delete(*)
47
47
  unavailable_method
48
48
  end
49
49
 
@@ -19,19 +19,19 @@ module OneviewSDK
19
19
 
20
20
  # Method is not available
21
21
  # @raise [OneviewSDK::MethodUnavailable] method is not available
22
- def create
22
+ def create(*)
23
23
  unavailable_method
24
24
  end
25
25
 
26
26
  # Method is not available
27
27
  # @raise [OneviewSDK::MethodUnavailable] method is not available
28
- def update
28
+ def update(*)
29
29
  unavailable_method
30
30
  end
31
31
 
32
32
  # Method is not available
33
33
  # @raise [OneviewSDK::MethodUnavailable] method is not available
34
- def delete
34
+ def delete(*)
35
35
  unavailable_method
36
36
  end
37
37
 
@@ -40,6 +40,14 @@ module OneviewSDK
40
40
  parse_interconnect_map_template if @data['interconnectMapTemplate']['interconnectMapEntryTemplates'] == []
41
41
  end
42
42
 
43
+ # Get the logical interconnect group default settings
44
+ # @param [OneviewSDK::Client] client The client object for the OneView appliance
45
+ # @return [Hash] The logical interconnect group settings
46
+ def self.get_default_settings(client)
47
+ response = client.rest_get(BASE_URI + '/defaultSettings', client.api_version)
48
+ client.response_handler(response)
49
+ end
50
+
43
51
  # Adds an interconnect
44
52
  # @param [Fixnum] bay Bay number
45
53
  # @param [String] type Interconnect type
@@ -63,14 +71,6 @@ module OneviewSDK
63
71
  @data['uplinkSets'] << uplink_set.data
64
72
  end
65
73
 
66
- # Get the logical interconnect group default settings
67
- # @return [Hash] The logical interconnect group settings
68
- def get_default_settings
69
- get_uri = self.class::BASE_URI + '/defaultSettings'
70
- response = @client.rest_get(get_uri, @api_version)
71
- @client.response_handler(response)
72
- end
73
-
74
74
  # Gets the logical interconnect group settings
75
75
  # @return [Hash] The logical interconnect group settings
76
76
  def get_settings
@@ -46,10 +46,8 @@ module OneviewSDK
46
46
  self
47
47
  end
48
48
 
49
- # Updates this object using the data that exists on OneView
50
- # @note Will overwrite any data that differs from OneView
51
- # @return [Resource] self
52
- def refresh
49
+ # Reclaims the top-of-rack switches in a logical switch.
50
+ def refresh_state
53
51
  response = @client.rest_put(@data['uri'] + '/refresh')
54
52
  @client.response_handler(response)
55
53
  end
@@ -19,19 +19,19 @@ module OneviewSDK
19
19
 
20
20
  # Method is not available
21
21
  # @raise [OneviewSDK::MethodUnavailable] method is not available
22
- def create
22
+ def create(*)
23
23
  unavailable_method
24
24
  end
25
25
 
26
26
  # Method is not available
27
27
  # @raise [OneviewSDK::MethodUnavailable] method is not available
28
- def delete
28
+ def delete(*)
29
29
  unavailable_method
30
30
  end
31
31
 
32
32
  # Method is not available
33
33
  # @raise [OneviewSDK::MethodUnavailable] method is not available
34
- def update
34
+ def update(*)
35
35
  unavailable_method
36
36
  end
37
37
 
@@ -42,13 +42,13 @@ module OneviewSDK
42
42
 
43
43
  # Method is not available
44
44
  # @raise [OneviewSDK::MethodUnavailable] method is not available
45
- def create
45
+ def create(*)
46
46
  unavailable_method
47
47
  end
48
48
 
49
49
  # Method is not available
50
50
  # @raise [OneviewSDK::MethodUnavailable] method is not available
51
- def delete
51
+ def delete(*)
52
52
  unavailable_method
53
53
  end
54
54
 
@@ -41,13 +41,13 @@ module OneviewSDK
41
41
 
42
42
  # Method is not available
43
43
  # @raise [OneviewSDK::MethodUnavailable] method is not available
44
- def create
44
+ def create(*)
45
45
  unavailable_method
46
46
  end
47
47
 
48
48
  # Method is not available
49
49
  # @raise [OneviewSDK::MethodUnavailable] method is not available
50
- def delete
50
+ def delete(*)
51
51
  unavailable_method
52
52
  end
53
53
 
@@ -46,13 +46,13 @@ module OneviewSDK
46
46
 
47
47
  # Method is not available
48
48
  # @raise [OneviewSDK::MethodUnavailable] method is not available
49
- def create
49
+ def create(*)
50
50
  unavailable_method
51
51
  end
52
52
 
53
53
  # Method is not available
54
54
  # @raise [OneviewSDK::MethodUnavailable] method is not available
55
- def delete
55
+ def delete(*)
56
56
  unavailable_method
57
57
  end
58
58
 
@@ -64,13 +64,13 @@ module OneviewSDK
64
64
 
65
65
  # Method is not available
66
66
  # @raise [OneviewSDK::MethodUnavailable] method is not available
67
- def create
67
+ def create(*)
68
68
  unavailable_method
69
69
  end
70
70
 
71
71
  # Method is not available
72
72
  # @raise [OneviewSDK::MethodUnavailable] method is not available
73
- def delete
73
+ def delete(*)
74
74
  unavailable_method
75
75
  end
76
76
 
@@ -33,13 +33,13 @@ module OneviewSDK
33
33
 
34
34
  # Method is not available
35
35
  # @raise [OneviewSDK::MethodUnavailable] method is not available
36
- def create
36
+ def create(*)
37
37
  unavailable_method
38
38
  end
39
39
 
40
40
  # Method is not available
41
41
  # @raise [OneviewSDK::MethodUnavailable] method is not available
42
- def delete
42
+ def delete(*)
43
43
  unavailable_method
44
44
  end
45
45
 
@@ -40,19 +40,19 @@ module OneviewSDK
40
40
 
41
41
  # Method is not available
42
42
  # @raise [OneviewSDK::MethodUnavailable] method is not available
43
- def create
43
+ def create(*)
44
44
  unavailable_method
45
45
  end
46
46
 
47
47
  # Method is not available
48
48
  # @raise [OneviewSDK::MethodUnavailable] method is not available
49
- def delete
49
+ def delete(*)
50
50
  unavailable_method
51
51
  end
52
52
 
53
53
  # Method is not available
54
54
  # @raise [OneviewSDK::MethodUnavailable] method is not available
55
- def update
55
+ def update(*)
56
56
  unavailable_method
57
57
  end
58
58
 
@@ -34,13 +34,13 @@ module OneviewSDK
34
34
 
35
35
  # Method is not available
36
36
  # @raise [OneviewSDK::MethodUnavailable] method is not available
37
- def create
37
+ def create(*)
38
38
  unavailable_method
39
39
  end
40
40
 
41
41
  # Method is not available
42
42
  # @raise [OneviewSDK::MethodUnavailable] method is not available
43
- def delete
43
+ def delete(*)
44
44
  unavailable_method
45
45
  end
46
46
 
@@ -25,25 +25,25 @@ module OneviewSDK
25
25
 
26
26
  # Method is not available
27
27
  # @raise [OneviewSDK::MethodUnavailable] method is not available
28
- def create
28
+ def create(*)
29
29
  unavailable_method
30
30
  end
31
31
 
32
32
  # Method is not available
33
33
  # @raise [OneviewSDK::MethodUnavailable] method is not available
34
- def update
34
+ def update(*)
35
35
  unavailable_method
36
36
  end
37
37
 
38
38
  # Method is not available
39
39
  # @raise [OneviewSDK::MethodUnavailable] method is not available
40
- def refresh
40
+ def refresh(*)
41
41
  unavailable_method
42
42
  end
43
43
 
44
44
  # Method is not available
45
45
  # @raise [OneviewSDK::MethodUnavailable] method is not available
46
- def delete
46
+ def delete(*)
47
47
  unavailable_method
48
48
  end
49
49
 
@@ -30,13 +30,13 @@ module OneviewSDK
30
30
 
31
31
  # Method is not available
32
32
  # @raise [OneviewSDK::MethodUnavailable] method is not available
33
- def create
33
+ def create(*)
34
34
  unavailable_method
35
35
  end
36
36
 
37
37
  # Method is not available
38
38
  # @raise [OneviewSDK::MethodUnavailable] method is not available
39
- def delete
39
+ def delete(*)
40
40
  unavailable_method
41
41
  end
42
42
 
@@ -0,0 +1,79 @@
1
+ # (c) Copyright 2017 Hewlett Packard Enterprise Development LP
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ #
7
+ # Unless required by applicable law or agreed to in writing, software distributed
8
+ # under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9
+ # CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
10
+ # language governing permissions and limitations under the License.
11
+
12
+ require_relative 'resource'
13
+
14
+ module OneviewSDK
15
+ module API200
16
+ # User resource implementation
17
+ class User < Resource
18
+ BASE_URI = '/rest/users'.freeze
19
+ UNIQUE_IDENTIFIERS = %w(userName uri).freeze
20
+
21
+ # Create a resource object, associate it with a client, and set its properties.
22
+ # @param [OneviewSDK::Client] client The client object for the OneView appliance
23
+ # @param [Hash] params The options for this resource (key-value pairs)
24
+ # @param [Integer] api_ver The api version to use when interracting with this resource.
25
+ def initialize(client, params = {}, api_ver = nil)
26
+ super
27
+ # Default values:
28
+ @data['type'] ||= 'UserAndRoles'
29
+ @data['enabled'] ||= true
30
+ @data['roles'] ||= ['Read only']
31
+ end
32
+
33
+ # Create the resource on OneView using the current data
34
+ # @note Calls the refresh method to set additional data
35
+ # @note Removes the password attribute after creation
36
+ # @raise [OneviewSDK::IncompleteResource] if the client is not set
37
+ # @raise [StandardError] if the resource creation fails
38
+ # @return [Resource] self
39
+ def create
40
+ ensure_client
41
+ response = @client.rest_post(self.class::BASE_URI, { 'body' => @data }, @api_version)
42
+ body = @client.response_handler(response)
43
+ @data.delete('password')
44
+ set_all(body)
45
+ self
46
+ end
47
+
48
+ # Set data and save to OneView
49
+ # @param [Hash] attributes The attributes to add/change for this resource (key-value pairs)
50
+ # @raise [OneviewSDK::IncompleteResource] if the client or uri is not set
51
+ # @raise [StandardError] if the resource save fails
52
+ # @return [Resource] self
53
+ def update(attributes = {})
54
+ set_all(attributes)
55
+ ensure_client && ensure_uri
56
+ new_data = @data.select { |k, _v| k.to_s != 'roles' } # This cannot be updated here. It is updated below
57
+ response = @client.rest_put(self.class::BASE_URI, { 'body' => new_data }, @api_version)
58
+ d = @client.response_handler(response)
59
+ set_roles(@data['roles']) if @data['roles'] && @data['roles'].sort != d['roles'].sort
60
+ self
61
+ end
62
+
63
+ # Set data and save to OneView
64
+ # @param [Array] roles The names of the roles to set for this user
65
+ # @raise [OneviewSDK::IncompleteResource] if the client or uri is not set
66
+ # @raise [StandardError] if setting the role fails
67
+ # @return [Resource] self
68
+ def set_roles(roles)
69
+ ensure_client && ensure_uri
70
+ data = roles.map { |r| { roleName: r, type: 'RoleNameDtoV2' } }
71
+ response = @client.rest_put("#{@data['uri']}/roles?multiResource=true", { 'body' => data }, @api_version)
72
+ r = @client.response_handler(response)
73
+ new_roles = r.map { |i| i['roleName'] }
74
+ set('roles', new_roles)
75
+ self
76
+ end
77
+ end
78
+ end
79
+ end
@@ -29,19 +29,19 @@ module OneviewSDK
29
29
 
30
30
  # Method is not available
31
31
  # @raise [OneviewSDK::MethodUnavailable] method is not available
32
- def create
32
+ def create(*)
33
33
  unavailable_method
34
34
  end
35
35
 
36
36
  # Method is not available
37
37
  # @raise [OneviewSDK::MethodUnavailable] method is not available
38
- def update
38
+ def update(*)
39
39
  unavailable_method
40
40
  end
41
41
 
42
42
  # Method is not available
43
43
  # @raise [OneviewSDK::MethodUnavailable] method is not available
44
- def delete
44
+ def delete(*)
45
45
  unavailable_method
46
46
  end
47
47
 
@@ -29,13 +29,13 @@ module OneviewSDK
29
29
 
30
30
  # Method is not available
31
31
  # @raise [OneviewSDK::MethodUnavailable] method is not available
32
- def create
32
+ def create(*)
33
33
  unavailable_method
34
34
  end
35
35
 
36
36
  # Method is not available
37
37
  # @raise [OneviewSDK::MethodUnavailable] method is not available
38
- def update
38
+ def update(*)
39
39
  unavailable_method
40
40
  end
41
41