Skip to content

Commit

Permalink
Merge 3f20d7a into b8aa78d
Browse files Browse the repository at this point in the history
  • Loading branch information
chebroluharika committed Apr 23, 2020
2 parents b8aa78d + 3f20d7a commit 19ee80b
Show file tree
Hide file tree
Showing 2 changed files with 314 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ gem 'codecov', require: false, group: :test
gem 'coveralls', '0.8.21', require: false
gem 'facter', '>= 1.7.0'
gem 'metadata-json-lint'
gem 'oneview-sdk', '~> 5.10.0'
gem 'oneview-sdk', '~> 5.11.0'
gem 'pdk'
gem 'pry'
gem 'puppet', '>= 4.1'
Expand Down
313 changes: 313 additions & 0 deletions examples/demos/create_infrastructure_with_storage.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,313 @@
################################################################################
# (C) Copyright 2020 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.
################################################################################

# This example works for api_variant "Synergy".
# This example works with either resource uri or resource name.

# Create Ethernet Network
# If you already have Ethernet Network, then you can skip this step
oneview_ethernet_network{'Test Puppet Network':
ensure => 'present',
data => {
name => 'Test Puppet Network',
vlanId => '1045',
purpose => 'General',
smartLink => true,
privateNetwork => false
}
}

# Create another Ethernet Network
# If you already have Ethernet Network, then you can skip this step
oneview_ethernet_network{'Test Puppet Network Create1':
ensure => 'present',
data => {
name => 'Test Puppet Network Create1',
vlanId => '1000',
purpose => 'General',
smartLink => true,
privateNetwork => false
}
}

# Creates Storage System in OneView
# If you already have Storage System, then you can skip this step
oneview_storage_system{'Test Puppet Storage System':
ensure => 'present',
data => {
family => 'StoreServ',
hostname => '172.18.11.11',
username => 'dcs',
password => 'dcs'
}
}

# Creates Storage Pool in OneView
# If you already have Storage Pool, then you can skip this step
oneview_storage_pool{'Test Puppet Storage Pool':
ensure => 'present',
require => Oneview_storage_system['Test Puppet Storage System'],
data =>
{
poolName => 'CPG-SSD-AO',
storageSystemUri => 'ThreePAR-1'
}
}

$interconnect_type_1 = 'Virtual Connect SE 40Gb F8 Module for Synergy'
$interconnect_type_2 = 'Synergy 20Gb Interconnect Link Module'
$network_names = [ 'Test Puppet Network', 'Test Puppet Network Create1' ]

# Creates Logical Interconnect Group with uplinkSets, Redundancy, Boot settings in Synergy
oneview_logical_interconnect_group{'Test Puppet LIG':
ensure => 'present',
require => Oneview_ethernet_network['Test Puppet Network Create1'],
data => {
name => 'Test Puppet LIG',
redundancyType => 'HighlyAvailable',
interconnectBaySet => 3,
enclosureType => 'SY12000',
enclosureIndexes => [1, 2, 3],
uplinkSets =>
[
{
name => 'TUNNEL_ETH_UP_01',
ethernetNetworkType => 'Tagged',
networkType => 'Ethernet',
lacpTimer => 'Short',
mode => 'Auto',
uplink_ports => [{ bay => 3,
port => 'Q1',
type => $interconnect_type_1,
enclosure_index => 1 },
{ bay => 6,
port => 'Q1',
type => $interconnect_type_1,
enclosure_index => 2 }
],
networkUris => $network_names
}
],
interconnects =>
[
{
bay => 3,
type => $interconnect_type_1,
enclosure_index => 1
},
{
bay => 6,
type => $interconnect_type_1,
enclosure_index => 2
},
{
bay => 3,
type => $interconnect_type_2,
enclosure_index => 2
},
{
bay => 6,
type => $interconnect_type_2,
enclosure_index => 1
},
{
bay => 3,
type => $interconnect_type_2,
enclosure_index => 3
},
{
bay => 6,
type => $interconnect_type_2,
enclosure_index => 3
}
]
}
}

# Creates EnclosureGroup using Logical Interconnect Group created above
oneview_enclosure_group{'Test Puppet Enclosure Group':
ensure => 'present',
require => Oneview_logical_interconnect_group['Test Puppet LIG'],
data => {
name => 'Test Puppet Enclosure Group',
stackingMode => 'Enclosure',
interconnectBayMappingCount => '8',
enclosureCount => '3',
interconnectBayMappings =>
[
{
interconnectBay => '3',
logicalInterconnectGroupUri => Oneview_logical_interconnect_group['Test Puppet LIG']['data']['name'],
enclosureIndex => '1'
},
{
interconnectBay => '6',
logicalInterconnectGroupUri => Oneview_logical_interconnect_group['Test Puppet LIG']['data']['name'],
enclosureIndex => '1'
},
{
interconnectBay => '3',
logicalInterconnectGroupUri => Oneview_logical_interconnect_group['Test Puppet LIG']['data']['name'],
enclosureIndex => '2'
},
{
interconnectBay => '6',
logicalInterconnectGroupUri => Oneview_logical_interconnect_group['Test Puppet LIG']['data']['name'],
enclosureIndex => '2'
},
{
interconnectBay => '3',
logicalInterconnectGroupUri => Oneview_logical_interconnect_group['Test Puppet LIG']['data']['name'],
enclosureIndex => '3'
},
{
interconnectBay => '6',
logicalInterconnectGroupUri => Oneview_logical_interconnect_group['Test Puppet LIG']['data']['name'],
enclosureIndex => '3'
}
]
}
}

# Creates Logical Enclosure
oneview_logical_enclosure{'Test Puppet LE':
ensure => 'present',
require => Oneview_enclosure_group['Test Puppet Enclosure Group'],
data => {
name => 'Test Puppet LE',
enclosureUris => ['/rest/enclosures/0000000000A66101', '/rest/enclosures/0000000000A66102', '/rest/enclosures/0000000000A66103'],
enclosureGroupUri => Oneview_enclosure_group['Test Puppet Enclosure Group']['data']['name'],
firmwareBaselineUri => 'null',
forceInstallFirmware => 'false',
}
}

# Powering off the Server Hardware to apply ServerProfile
oneview_server_hardware{'Test Server Hardware Power Off':
ensure => 'set_power_state',
data => {
hostname => '0000A66101, bay 5',
power_state => 'off',
},
}

# Creates ServerProfileTemplate with Storage, Hardware and boot settings
oneview_server_profile_template{'Test Puppet SPT':
ensure => 'present',
require => Oneview_enclosure_group['Test Puppet Enclosure Group'],
data => {
name => 'Test Puppet SPT',
enclosureGroupUri => Oneview_enclosure_group['Test Puppet Enclosure Group']['data']['name'],
serverHardwareTypeUri => 'SY 480 Gen9 1',
connectionSettings =>
{
manageConnections => true,
connections =>
[
{
id => 1,
networkUri => Oneview_ethernet_network['Test Puppet Network']['data']['name'],
functionType => 'Ethernet',
portId => 'Mezz 3:1-a',
requestedMbps => '2000'
},
{
id => 2,
networkUri => Oneview_ethernet_network['Test Puppet Network Create1']['data']['name'],
functionType => 'Ethernet',
portId => 'Mezz 3:1-b',
requestedMbps => '2000'
}
]
},
boot =>
{
manageBoot => true,
order =>
[
'CD',
'USB',
'HardDisk',
'PXE'
]
},
bootMode =>
{
manageMode => true,
mode => 'BIOS',
secureBoot => 'Disabled'
},
bios =>
{
manageBios => true
},
sanStorage =>
{
manageSanStorage => true,
hostOSType => 'VMware (ESXi)',
volumeAttachments =>
[
{
id => 1,
lun => '',
lunType => 'Auto',
storagePaths =>
[
{
connectionId => 1,
isEnabled => true,
targetSelector => 'Auto'
},
{
connectionId => 2,
isEnabled => true,
targetSelector => 'Auto'
}
],
volume => {
properties => {
provisioningType => 'Thin',
size => 1073741824,
name => 'Test Puppet Storage Volume',
storagePool => 'CPG-SSD-AO',
snapshotPool => 'CPG-SSD-AO',
isShareable => false
}
},
}
]
}
}
}

# Creates ServerProfile from ServerProfileTemplate created above
oneview_server_profile_template{'Test Server Profile Create from Profile Template':
ensure => 'set_new_profile',
require => Oneview_server_profile_template['Test Puppet SPT'],
data => {
name => 'Test Puppet SPT',
serverProfileName => 'Test Puppet Server Profile Create from Profile Template'
}
}

# Power on the Server Hardware after the Server Profile has been applied
oneview_server_hardware{'Test Server Hardware Power On':
ensure => 'set_power_state',
data => {
hostname => '0000A66101, bay 5',
power_state => 'on',
},
}

0 comments on commit 19ee80b

Please sign in to comment.