HewlettPackard/oneview-puppet

View on GitHub
examples/server_profile.pp

Summary

Maintainability
Test Coverage
################################################################################
# (C) Copyright 2016-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 requires:
# A server hardware '172.18.6.15'

# Some get endpoints accept query parameters. Please check the API reference for more
# information on which filters can be used

# As the patch operation only supports one specific set of values, it has been replaced
# by 'update_from_template'
# The server template needs to be associated with a profile in order to perform this action
# oneview_server_profile{'Server Profile Update From Template':
#   ensure  => 'update_from_template',
#   require => Oneview_server_profile['Server Profile Found'],
#   data    =>
#   {
#     name => 'Test Server Profile'
#   }
# }

oneview_server_profile{'Server Profile Get Available Targets':
  ensure => 'get_available_targets',
  data   => {
    query_parameters  => {
      enclosureGroupUri       => 'EG'
    }
  }
}

oneview_server_profile{'Server Profile Get Available Networks':
  ensure => 'get_available_networks',
  data   => {
    query_parameters  => {
      enclosureGroupUri     => 'EG',
      serverHardwareTypeUri => 'SY 480 Gen9 2'
    }
  }
}

# The method #get_available_server is available till API 1200.
oneview_server_profile{'Server Profile Get Available Servers':
  ensure => 'get_available_servers',
  data   => {
      query_parameters  => {
        enclosureGroupUri        => 'EG'
      }
    }
}

oneview_server_profile{'Server Profile Create':
  ensure => 'present',
  data   =>
  {
    type              => 'ServerProfileV12',
    name              => 'Test Server Profile',
    serverHardwareUri => '0000A66101, bay 7',
  }
}

# Optional filters
oneview_server_profile{'Server Profile Found':
  ensure => 'found',
  data   => {
    name             => 'Test Server Profile'
  }
}

# This ensure method is only available for Synergy Hardware
oneview_server_profile{'Server Profile get_sas_logical_jbods':
  ensure => 'get_sas_logical_jbods',
  data   =>
  {
    name     => 'Test Server Profile',
  }
}

# This ensure method is only available for Synergy Hardware
oneview_server_profile{'Server Profile get_sas_logical_jbod_drives':
  ensure => 'get_sas_logical_jbod_drives',
  data   =>
  {
    name     => 'Test Server Profile',
  }
}

# This ensure method is only available for Synergy Hardware
oneview_server_profile{'Server Profile get_sas_logical_jbod_attachments':
  ensure => 'get_sas_logical_jbod_attachments',
  data   =>
  {
    name     => 'Test Server Profile',
  }
}


# To update/modify the server profile name
oneview_server_profile{'Server Profile Edit':
  ensure  => 'present',
  require => Oneview_server_profile['Server Profile Create'],
  data    =>
  {
    name     => 'Test Server Profile',
    new_name => 'Edited Server Profile'
  }
}

# CAUTION: More than one matching server profile can be deleted at once
oneview_server_profile{'Server Profile Destroy':
  ensure  => 'absent',
  require => Oneview_server_profile['Server Profile Edit'],
  data    =>
  {
    name => 'Edited Server Profile'
  }
}

# The server profile must have been created based on a server profile template
# in order to get the compliance preview
# oneview_server_profile{'Server Profile Found':
#   ensure  => 'get_compliance_preview',
#   # require => Oneview_server_profile['Server Profile Create'],
#   data =>
#   {
#     name               => 'Server_Profile_created_from_New SPT #2',
#     # query_parameters =>
#     # {
#     #   count => 1
#     # }
#   }
# }

# If you need to assign a network set, make sure its functionType is 'Set'
# oneview_server_profile{'Server Profile Found':
#   ensure  => 'present',
#   data =>
#   {
#     name  => 'Server_Profile_created_from_New SPT #2',
#     connections =>
#     [
#       {
#         name => 'My Connection',
#         connectionUri => 'My network set'
#         functionType => 'Set',
#       },
#       {
#         name => 'My Connection 2',
#         connectionUri => 'My ethernet'
#         functionType => 'Ethernet',
#       }
#     ]
#   }
# }