oneview-sdk 3.1.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
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