-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathenclosure.rb
126 lines (112 loc) · 3.27 KB
/
enclosure.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# (c) Copyright 2021 Hewlett Packard Enterprise Development LP
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed
# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
# NOTE: This recipe requires:
# Enclosure group: Eg1
# Scopes: Scope1, Scope2
# NOTE 2: The api_version client should be 300 or greater if you run the examples using Scopes
my_client = {
url: ENV['ONEVIEWSDK_URL'],
user: ENV['ONEVIEWSDK_USER'],
password: ENV['ONEVIEWSDK_PASSWORD'],
api_version: 3000,
api_variant: 'Synergy'
}
enc_name = '0000A66102'
oneview_enclosure enc_name do
data(
hostname: '172.18.1.11',
username: '<username>',
password: '<password>',
licensingIntent: 'OneView'
)
enclosure_group 'Eg1'
client my_client
action :add
only_if { client[:api_variant] == 'C7000' }
end
#Generate certificate Signing Request
oneview_enclosure enc_name do
client my_client
bay_number 1 # bay number is required only for C7000
csr_file_path 'file_path_of_csr_file'
csr_data(
type: 'CertificateDtoV2',
organization: 'Acme Corp.',
organizationalUnit: 'IT',
locality: 'Townburgh',
state: 'Mississippi',
country: 'US',
email: '[email protected]',
commonName: 'fe80::2:0:9:1%eth2'
)
action :create_csr_request
end
#Import a signed server certtificate into 'Encl1'
oneview_enclosure enc_name do
client my_client
bay_number 1 # bay number is required only for C7000
csr_file_path 'file_path_of_csr_file'
csr_type 'CertificateDataV2'
action :import_certificate
end
# Rename enclosure
# Warning: Operation persists in hardware
oneview_enclosure enc_name do
client my_client
operation 'replace'
path '/name'
value 'ChefEncl1'
action :patch
end
# Restoring its original name
oneview_enclosure 'ChefEncl1' do
client my_client
operation 'replace'
path '/name'
value enc_name
action :patch
end
# Refreshes the enclosure
oneview_enclosure enc_name do
client my_client
action :refresh
end
# Supported for API 300 till 500
# Adds 'Encl1' to 'Scope1' and 'Scope2'
oneview_enclosure enc_name do
client my_client
scopes ['Scope1', 'Scope2']
action :add_to_scopes
only_if { client[:api_version] == 300 || client[:api_version] == 500 }
end
# Supported for API 300 till 500
# Removes 'Encl1' from 'Scope1'
oneview_enclosure enc_name do
client my_client
scopes ['Scope1']
action :remove_from_scopes
only_if { client[:api_version] == 300 || client[:api_version] == 500 }
end
# Supported for API 300 till 500
# Replaces 'Scope1' and 'Scope2' for 'Encl1'
oneview_enclosure enc_name do
client my_client
scopes ['Scope1', 'Scope2']
action :replace_scopes
only_if { client[:api_version] == 300 || client[:api_version] == 500 }
end
# Remove operation will work only for C7000
# Removes it from the appliance
oneview_enclosure enc_name do
client my_client
action :remove
only_if { client[:api_variant] == 'C7000' }
end