Giter Club home page Giter Club logo

hewlettpackard / oneview-puppet Goto Github PK

View Code? Open in Web Editor NEW
8.0 9.0 17.0 12.66 MB

This project is no longer being developed and has limited support. In the near future this repository will be fully deprecated. Please consider using other OneView projects, such as Terraform and Ansible Collection

Home Page: https://forge.puppet.com/hewlettpackard/oneview

License: Apache License 2.0

Ruby 99.74% Puppet 0.11% Dockerfile 0.15%
hpe-oneview oneview-ruby-sdk puppet puppet-forge hpe-image-streamer hpe-oneview-api puppet-module provider devops

oneview-puppet's Introduction

HPE OneView SDK for Puppet

Build Status

OV Version 6.20 6.10 6.00 5.60 5.50 5.40
SDK Version/Tag v6.2.0 v6.1.0 v6.0.0 v2.10.0 v2.9.0 v2.8.0
Build Status Build status Build status Build status Build status Build status Build status

Introduction

HPE OneView makes it simple to deploy and manage today’s complex hybrid cloud infrastructure. HPE OneView can help you transform your data center to software-defined, and it supports HPE’s broad portfolio of servers, storage, and networking solutions, ensuring the simple and automated management of your hybrid infrastructure. Software-defined intelligence enables a template-driven approach for deploying, provisioning, updating, and integrating compute, storage, and networking infrastructure.

The Puppet Module for HPE OneView provides resource style declaration capabilities to Puppet manifests for managing HPE OneView Appliances.

The Puppet Module for HPE OneView allows for management of HPE OneView Appliances through the use of puppet manifests and resource style declarations, which makes internal use of the HPE OneView Ruby SDK and HPE OneView API.

It adds several resource types to puppet, and uses ensurable methods such as present, absent and other custom ensurable methods to manage the appliance to allow users to easily create, update, query and delete resources.

For more information on the Puppet Module for HPE OneView resource types and their specifications, see the Usage and examples.

What's New

HPE OneView Puppet library extends support of the SDK to OneView REST API version 3000 (OneView v6.20)

Please refer to notes for more information on the changes , features supported and issues fixed in this version

Getting Started

Requirements

  • Puppet V4.1 or greater
  • Ruby V2.3.1 or greater
  • oneview-sdk-ruby V5.11.0 or greater (available as a gem)

Beginning with the Puppet Module for HPE OneView

To install this module from the Puppet Forge, with enough permissions to install puppet modules, use the command:

puppet module install hewlettpackard-oneview

Alternatively, you can clone the source code from https://github.com/HewlettPackard/oneview-puppet into your Puppet module path using the following command:

git clone https://github.com/HewlettPackard/oneview-puppet <your_module_path>/oneview

NOTE: HPE recommends that the cloned directory be named oneview. It should also be noted that if the directory name contains any dashes it will not be found by puppet.

Usage

OneView appliance authentication

The attributes required for authenticating with your HPE OneView Appliance are:

  • ONEVIEW_URL - The web address for the HPE OneView appliance. For example, https://oneview.example.com
  • ONEVIEW_TOKEN - Set either this or the ONEVIEW_USER and ONEVIEW_PASSWORD.
  • ONEVIEW_USER - The HPE OneView appliance username.
  • ONEVIEW_PASSWORD - The HPE OneView appliance password.
  • ONEVIEW_API_VERSION - This defaults to the appliance's max API version if the API version not mentioned in config.
  • ONEVIEW_LOG_LEVEL - The log level of the HPE OneView appliance. This defaults to info
  • ONEVIEW_SSL_ENABLED - HPE recommends setting this value to true
  • ONEVIEW_HARDWARE_VARIANT - Set this to C7000 or Synergy, according to the appliance's enclosure's model. This defaults to C7000 ⚠️ The Synergy hardware variant is only available for API version >= 300 (OneView 3.0) ⚠️

You can assign attributes for your appliances using three methods:

  1. Create a json file named login.json on your working directory, and enter the authentication information for your appliance. See login_rename.json for an example.

  2. If you do not want to use the login file on the working directory, any json file containing the authentication information for the appliance can be used by setting the following environment variable:

    • ONEVIEW_AUTH_FILE - This environment variable should contain the full path to the json file containing the authentication information.
  3. Directly declare the authentication attributes mentioned previously as environment variables. The module will automatically use those values.

NOTE: All information stored on the login file or json files should be in clear text. To avoid security issues HPE recommends verifying the access permissions for those files.

Synergy Image Streamer authentication

The attributes required for authenticating with your HPE Synergy Image Streamer appliance are:

  • IMAGE_STREAMER_URL - The web address for the HPE Image Streamer appliance. For example, https://imagestreamer.example.com
  • IMAGE_STREAMER_API_VERSION - The API version for the HPE Image Streamer. This defaults to 300
  • IMAGE_STREAMER_LOG_LEVEL - The log level of the HPE Image Streamer appliance. This defaults to info
  • IMAGE_STREAMER_SSL_ENABLED - HPE recommends setting this value to true

The following attribute must be set only if you haven't configured the credentials to authenticate with your HPE OneView Appliance:

  • IMAGE_STREAMER_TOKEN - The authentication token for the HPE Image Streamer. This is the same token used to access the HPE OneView REST API.

NOTE: All information stored on the login file or json files should be in clear text. To avoid security issues HPE recommends verifying the access permissions for those files.

You can assign attributes for your appliances using three methods:

  1. Create a json file named login_image_streamer.json on your working directory, and enter the authentication information for your appliance. See login_image_streamer.json for an example. ❗ NOTE: You must provide a token only if you haven't configured the credentials to authenticate with your HPE OneView Appliance.

  2. If you do not want to use the login file on the working directory, any json file containing the authentication information for the appliance can be used by setting the following environment variable:

    • IMAGE_STREAMER_AUTH_FILE - This environment variable should contain the full path to the json file containing the authentication information.
  3. Directly declare the authentication attributes mentioned previously as environment variables. The module will automatically use those values.

NOTE: All information stored on the login file or json files should be in clear text. To avoid security issues HPE recommends verifying the access permissions for those files.

Running Examples with Docker

If you'd rather run the examples in a Docker container, you can use the Dockerfile at the top level of this repo. All you need is Docker and git (optional).

  1. Clone this repo and cd into it:

    $ git clone https://github.com/HewlettPackard/oneview-puppet.git
    $ cd oneview-puppet

    Note: You can navigate to the repo url and download the repo as a zip file if you don't want to use git

  2. You can build docker image locally or pull the docker image from Docker Hub.

    Build docker image locally

    • Build the docker image locally: $ docker build -t puppet-oneview .

    Using Docker Hub Image

    • Pull docker image from Docker Hub:

    The hewlettpackardenterprise/hpe-oneview-sdk-for-puppet:<tag> docker image contains an installation of oneview-puppet installation you can use by just pulling down the Docker Image:

    The Docker Store image tag consist of two sections: <sdk_version-OV_version>

    # Download and store a local copy of hpe-oneview-sdk-for-puppet and
    # use it as a Docker image.
    $ docker pull hewlettpackardenterprise/hpe-oneview-sdk-for-puppet:v2.7.0-OV5.3
    
    # Run docker container with below commands.
    $docker run -it --rm \
      -v $(pwd)/:/puppet
      -e ONEVIEW_URL='https://ov.example.com' \
      -e ONEVIEW_USER='Administrator' \
      -e ONEVIEW_PASSWORD='secret123' \
      -e ONEVIEW_SSL_ENABLED=true, \
      -e ONEVIEW_LOG_LEVEL='info' \
      -e ONEVIEW_API_VERSION=1800 \
      hewlettpackardenterprise/hpe-oneview-sdk-for-puppet:v2.7.0-OV5.3 puppet apply fc_network.pp --debug --trace

    Now you can run any of the example manifests in this directory:

   # Run the container, passing in your credentials to OneView and specifying which example to run.
   # Replace "pwd" with the path of the manifest you'd like to run
   # Replace "fc_network" with the name of the manifest you'd like to run
   
   $ docker run -it --rm \
     -v $(pwd)/:/puppet
     -e ONEVIEW_URL='https://ov.example.com' \
     -e ONEVIEW_USER='Administrator' \
     -e ONEVIEW_PASSWORD='secret123' \
     -e ONEVIEW_SSL_ENABLED=true, \
     -e ONEVIEW_LOG_LEVEL='info' \
     -e ONEVIEW_API_VERSION=1800 \
     puppet-oneview puppet apply fc_network.pp --debug --trace

To run an Image Streamer example manifests:

# Note that we need an additional (I3S_URL) environment variable set
# (Replace "plan_script" with the name of the recipe you'd like to run)
 $ docker run -it --rm \
  -v $(pwd)/:/puppet
  -e IMAGE_STREAMER_URL= 'https://imagestreamer.example.com' \
  -e IMAGE_STREAMER_API_VERSION=2020 \
  -e IMAGE_STREAMER_LOG_LEVEL='info' \
  -e IMAGE_STREAMER_SSL_ENABLED=true \
  puppet-oneview puppet apply image_streamer/deployment_plan.pp --debug --trace

That's it! If you'd like to modify a manifest, simply modify the manifest file, then re-run the image.

Types and Providers

General

Most resources of the Puppet module for HPE OneView accept the following ensurable methods:

  • present - Creates/adds/updates resources on which those operations are permitted.
  • absent - Deletes/removes resources.
  • found - Searches for resources of a specific type on the appliance (with or without specific filters), and prints the information to the standard output.

The majority of the ensurable methods on the resources require a data parameter. Inside data a hash should be informed with all the information required for the operation to be performed.

All get_ ensurable methods send information that is retrieved to the standard output.

To provide easier deployment and management of infrastructure, all resources tags that either contain or require an Uri can receive either the "name" or a "name, resource type" combination of parameters instead of the uri as the field value, unless otherwise specified.

For a uri clearly related to a resource, such as in enclosureUri, the name can be given instead of the uri, For example:

enclosureUri => 'Puppet Example Enclosure'

instead of

enclosureUri => '/rest/enclosures/09SGH100X6J1'

and in the case of a general tag which does not specify its resource, such as mountUri, a "name, resource type" can be provided, For example:

mountUri => 'Puppet Example Enclosure, enclosure',

instead of

mountUri => '/rest/enclosures/09SGH100X6J1',

A sample snippet of a manifest:

oneview_ethernet_network{'Ethernet Network Create':
  ensure => 'present',
  data   => {
    name                  => 'Puppet network',
    vlanId                => '1045',
    purpose               => 'General',
    smartLink             => true,
    privateNetwork        => false,
    connectionTemplateUri => nil,
    type                  => 'ethernet-networkV3'
  }
}

oneview_fc_network{'fc1':
    ensure => 'present',
    data   => {
      name                    => 'OneViewSDK Test FC Network',
      connectionTemplateUri   => nil,
      autoLoginRedistribution => true,
      fabricType              => 'FabricAttach',
    }
}

oneview_volume{'volume_1':
    ensure => 'present',
    data   => {
      name                   => 'Oneview_Puppet_TEST_VOLUME_1',
      description            => 'Test volume with common creation: Storage System + Storage Pool',
      provisioningParameters => {
            provisionType     => 'Full',
            shareable         => true,
            requestedCapacity => 1024 * 1024 * 1024,
            storagePoolUri    => 'FST_CPG1',
      },
      snapshotPoolUri        => 'FST_CPG1'
    }
}

General examples of the usage for each resource and ensurable can be found in the examples directory.

For more details for each resource type that the Puppet module for HPE OneView adds and their unique ensurable methods, refer to Resources.

Reference

The Puppet Module for HPE OneView uses the HPE OneView-Ruby-SDK to make all API calls and the HPE OneView API to execute all actions.

More information on the OneView-Ruby-SDK can be found on the official git repository: https://github.com/HewlettPackard/oneview-sdk-ruby

For additional information about the HPE OneView API and about the attributes and options it manages, go to: http://h17007.www1.hpe.com/docs/enterprise/servers/oneview2.0/cic-api/en/api-docs/current/index.html

Contributing and feature requests

Contributing: You know the drill. Fork it, branch it, change it, commit it, and pull-request it. We are passionate about improving this project, and glad to accept help to make it better.

NOTE: We reserve the right to reject changes that we feel do not fit the scope of this project. For feature additions, please open an issue to discuss your ideas before doing the work.

Feature Requests: If you have needs not being met by the current implementation, please let us know (via a new issue). This feedback is crucial for us to deliver a useful product. Do not assume we have already thought of everything, because we assure you that is not the case.

Testing

  • Style:
    • Rubocop: $ rake rubocop
    • Puppet Lint: $ rake lint
    • Metadata: $ rake metadata_lint
  • Unit: $ rake spec
  • Run all tests: $ rake test

For more information please refer to the Testing guidelines.

License

This project is licensed under the Apache 2.0 license. Please see LICENSE for more information.

Version and changes

To view history and notes for this version, view the Changelog.

Authors

oneview-puppet's People

Contributors

abiliogp avatar anushay1916 avatar asisbagga avatar chebroluharika avatar chris-hurley avatar chrishpe avatar fgbulsoni avatar harikachebrolu avatar jyothisgm avatar madhav-bharadwaj avatar marikrg avatar nabhajit-ray avatar shandcruz avatar sijeesh avatar soodpr avatar supreethpy avatar venkateshravula avatar yuvirani avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oneview-puppet's Issues

Switch API300 Support

Scenario/Intent

Use Oneview_switch with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_switch resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Volume Attachment API300 Support

Scenario/Intent

Use Oneview_volume_attachment with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_volume_attachment resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

SAS Logical Interconnect API300 Support

Scenario/Intent

Use the SAS Logical Interconnect resource from this module

Environment Details

-Puppet module for HPE OneView Version: 2.0.0
-OneView SDK Version: 3.1.0
-OneView Appliance Version: 3.0
-OneView Client API Version: 300
-Puppet Version: 4.8
-Ruby Version: 2.2.6
-Platform: Windows

Steps to Reproduce

Try to call the resource Oneview_sas_logical_interconnect

Expected Result

To be able to use the resource to create, update and delete SAS Logical Interconnects on OneView

Actual Result

Resource not implemented / Could not find the Oneview_sas_logical_interconnect type

Rack API300 Support

Scenario/Intent

Use Oneview_rack with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_rack resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Interconnect API300 Support

Scenario/Intent

Use Oneview_interconnect with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_interconnect resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Server Profile API300 Support

Scenario/Intent

Use Oneview_server_profile with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_server_profile resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Reduce code duplication and complexity

Scenario/Intent

Reduce code duplication and complexity, while maintaining functionality.

Environment Details

-Puppet module for HPE OneView Version: 2.0.0
-OneView SDK Version: 3.1.0
-OneView Appliance Version: 3.0
-OneView Client API Version: 300
-Puppet Version: 4.8
-Ruby Version: 2.2.6
-Platform: Windows

Steps to Reproduce

Check the code, mainly on the resources which currently do not use a parent class.

Expected Result

Should have the least amount of code duplication, as it is possible.

Actual Result

Some classes currently are not yet inheriting from Oneview_resource and thus have a lot of code duplication inside them.
Also, others were implemented while the Oneview_resource class was being improved, and could also have many improvements.

SAS Logical Interconnect Group Support

Scenario/Intent

Use the SAS Logical Interconnect Group resource from this module

Environment Details

-Puppet module for HPE OneView Version: 2.0.0
-OneView SDK Version: 3.1.0
-OneView Appliance Version: 3.0
-OneView Client API Version: 300
-Puppet Version: 4.8
-Ruby Version: 2.2.6
-Platform: Windows

Steps to Reproduce

Try to call the resource Oneview_sas_logical_interconnect_group

Expected Result

To be able to use the resource to create, update and delete SAS Logical Interconnect Groups on OneView

Actual Result

Resource not implemented / Could not find the Oneview_sas_logical_interconnect_group type

Logical Interconnect API300 Support

Scenario/Intent

Use Oneview_logical_interconnect with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_logical_interconnect resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Unmanaged Device API300 Support

Scenario/Intent

Use Oneview_unmanaged_device with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_unmanaged_device resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Support for Synergy hardware

Currently the module only has support for the C7000 variant of the enclosures supported by OneView. Since the oneview-sdk gem that this module uses has extended support for the Synergy variant, this should be added as well.

Image Streamer Build Plan Support

Scenario/Intent

Use the Build Plan resource from this module

Environment Details

-Puppet module for HPE OneView Version: 2.2.0
-OneView SDK Version: 3.1.0
-OneView Appliance Version: 3.0
-OneView Client API Version: 300
-Puppet Version: 4.8
-Ruby Version: 2.2.6
-Platform: Windows/Linux

Steps to Reproduce

Try to call the resource Image_streamer_build_plan

Expected Result

To be able to use the resource Build Plan on Image Streamer

Actual Result

Resource not implemented / Could not find the Image_streamer_build_plan type

Image Streamer OS Volume Support

Scenario/Intent

Use the OS Volume resource from this module

Environment Details

-Puppet module for HPE OneView Version: 2.2.0
-OneView SDK Version: 3.1.0
-OneView Appliance Version: 3.0
-OneView Client API Version: 300
-Puppet Version: 4.8
-Ruby Version: 2.2.6
-Platform: Windows/Linux

Steps to Reproduce

Try to call the resource Image_streamer_os_volume

Expected Result

To be able to use the resource OS Volume on Image Streamer

Actual Result

Resource not implemented / Could not find the Image_streamer_os_volume type

Server Hardware API300 Support

Scenario/Intent

Use Oneview_server_hardware with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_server_hardware resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Uplink Set API300 Support

Scenario/Intent

Use Oneview_uplink_set with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_uplink_set resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Server Hardware Type API300 Support

Scenario/Intent

Use Oneview_server_hardware_type with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_server_hardware_type resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Logical Switch Group API300 Support

Scenario/Intent

Use Oneview_logical_switch_group with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_logical_switch_group resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Volume API300 Support

Scenario/Intent

Use Oneview_volume with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_volume resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Logical Enclosure API300 Support

Scenario/Intent

Use Oneview_logical_enclosure with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_logical_enclosure resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Storage System API300 Support

Scenario/Intent

Use Oneview_storage_system with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_storage_system resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Connection template API 300 Support

Scenario/Intent

Use connection template with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the connection template resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Update documentation

Scenario/Intent

Read updated documentation on the new resource types added and new ensure methods

Environment Details

-Puppet module for HPE OneView Version: 2.0.0
-OneView SDK Version: 3.1.0
-OneView Appliance Version: 3.0
-OneView Client API Version: 300
-Puppet Version: 4.8
-Ruby Version: 2.2.6
-Platform: Windows

Steps to Reproduce

Check the docs

Expected Result

Should have the documentation for all ensure methods and resource types

Actual Result

Currently it does not.

Volume Template API300 Support

Scenario/Intent

Use Oneview_volume_template with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_volume_template resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Image Streamer Plan Script API300 Support

Scenario/Intent

Use the Plan Script resource from this module

Environment Details

-Puppet module for HPE OneView Version: 2.2.0
-OneView SDK Version: 3.1.0
-OneView Appliance Version: 3.0
-OneView Client API Version: 300
-Puppet Version: 4.8
-Ruby Version: 2.2.6
-Platform: Windows/Linux

Steps to Reproduce

Try to call the resource Image_streamer_plan_script

Expected Result

To be able to use the resource Plan Script on Image Streamer

Actual Result

Resource not implemented / Could not find the Image_streamer_plan_script type

Simplecov not covering individual files

Scenario/Intent

'rake test' should fail if a file has not achieved a minimal coverage%, but with its current configs it doesn't

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Delete one of the unit tests under spec/unit/provider
2- Run 'rake test'

Expected Result

It should fail because the provider for which the test was deleted does meet the minimal code coverage

Actual Result

Does not fail

Logical Interconnect Group API300 Support

Scenario/Intent

Use Oneview_logical_interconnect_group with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_logical_interconnect_group resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Transfer idempotency verifications to the SDK

Scenario/Intent

Use the SDK like method instead of custom find_bys for ensuring idempotency on resources

Environment Details

Puppet module for HPE OneView Version: 2.0.0
OneView SDK Version: 3.1.0
OneView Appliance Version: 3.0
OneView Client API Version: 300
Puppet Version: 4.8
Ruby Version: 2.2.6
Platform: Windows

Steps to Reproduce

Run any exists?

Expected Result

Use a standard like method instead of custom find_bys

Actual Result

Currently there are several different find_bys being used, some use unique_id, some use the whole @data, others are completely ignored.

Improve server profile idempotency

Scenario/Intent

On some usage scenarios, when running with the 'present' ensurable, the server profile does not behave idempotently as expected and makes calls when it shouldn't.

Environment Details

Puppet module for HPE OneView Version: 2.0.0
OneView SDK Version: 3.1.0
OneView Appliance Version: 3.0
OneView Client API Version: 300
Puppet Version: 4.8
Ruby Version: 2.2.6
Platform: Windows

Steps to Reproduce

Run complete scenarios with server profile, specifying as many options as possible.

Expected Result

If there are no changes between manifest runs, or if the change is something which should not matter, like order on a hash, then no create/update/patch calls should be made to OneView since it should be able to notice nothing has changed.

Actual Result

On some scenarios it actually does not act as expected and runs update calls.

Logical Switch API 300 Support

Scenario/Intent

Use Oneview_logical_switch with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_logical_switch resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Datacenter API300 Support

Scenario/Intent

Use Oneview_datacenter with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_datacenter resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Support for OneView API version 300

Currently the API 300 of OneView is not supported by this module. Since the oneview-sdk gem has released support for API 300, it should also be added here.

Server Profile Template API300 Support

Scenario/Intent

Use Oneview_server_profile_template with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_server_profile_template resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Storage Pool API300 Support

Scenario/Intent

Use Oneview_storage_pool with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_storage_pool resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Logical Downlink API300 Support

Scenario/Intent

Use Oneview_logical_downlink with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_logical_downlink resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Power Device API300 Support

Scenario/Intent

Use Oneview_power_device with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_power_device resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Firmware Driver API300 Support

Scenario/Intent

Use Oneview_firmware_driver with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_firmware_driver resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Image Streamer Golden Image Support

Scenario/Intent

Use the Golden Image resource from this module

Environment Details

-Puppet module for HPE OneView Version: 2.2.0
-OneView SDK Version: 3.1.0
-OneView Appliance Version: 3.0
-OneView Client API Version: 300
-Puppet Version: 4.8
-Ruby Version: 2.2.6
-Platform: Windows/Linux

Steps to Reproduce

Try to call the resource Image_streamer_golden_image

Expected Result

To be able to use the resource Golden Image on Image Streamer

Actual Result

Resource not implemented / Could not find the Image_streamer_golden_image

Implement GET endpoint as FACTS

Scenario/Intent

Use the information from a get endpoint as an input or variable for a resource declaration

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.1.0
  • OneView Appliance Version: 3.0
  • OneView Client API Version: 300
  • Puppet Version: 4.8
  • Ruby Version: 2.2.6
  • Platform: Windows

Steps to Reproduce

Feature not implemented - no steps to reproduce

Expected Result

Expected meaningful facts with output that can be used as variables on resource declarations

Actual Result

Currently no facts are available for this module

SAN Manager API300 Support

Scenario/Intent

Use Oneview_san_manager with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_san_manager resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Drive Enclosure resource Support

Scenario/Intent

Use the Drive Enclosure resource with this module

Environment Details

-Puppet module for HPE OneView Version: 2.0.0
-OneView SDK Version: 3.1.0
-OneView Appliance Version: 3.0
-OneView Client API Version: 300
-Puppet Version: 4.8
-Ruby Version: 2.2.6
-Platform: Windows

Steps to Reproduce

Try to call the resource Oneview_drive_enclosure

Expected Result

To be able to use the resource Drive Enclosures on OneView

Actual Result

Resource not implemented / Could not find the Oneview_drive_enclosure type

Enclosure Group API300 Support

Scenario/Intent

Use Oneview_enclosure_group with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_enclosure_group resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Enclosure API300 Support

Scenario/Intent

Use Oneview_enclosure with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_enclosure resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Image Streamer Deployment Plan Support

Scenario/Intent

Use the Deployment Plan resource from this module

Environment Details

-Puppet module for HPE OneView Version: 2.2.0
-OneView SDK Version: 3.1.0
-OneView Appliance Version: 3.0
-OneView Client API Version: 300
-Puppet Version: 4.8
-Ruby Version: 2.2.6
-Platform: Windows/Linux

Steps to Reproduce

Try to call the resource Image_streamer_deployment_plan

Expected Result

To be able to use the resource Deployment Plan on Image Streamer

Actual Result

Resource not implemented / Could not find the Image_streamer_deployment_plan type

Firmware Bundle API300 Support

Scenario/Intent

Use Oneview_firmware_bundle with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_firmware_bundle resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Fully document all methods

Scenario/Intent

Inch CI is showing some undocumented methods. Should look into those and make sure everything is either documented or look into disabling Inch CI for what is not relevant/should not be documented.

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0

Steps to Reproduce

Check the Inch CI in the readme or https://inch-ci.org/github/HewlettPackard/oneview-puppet

Expected Result

See no undocumented methods

Actual Result

There's something like 1/3 methods that are undocumented. Those should be documented or if the CI is expecting documentation where it would not make sense, a way to clearly show that would also be good.

Unit tests on unexpected scenarios

Scenario/Intent

Run unit tests on a file with API 200 and Synergy hardware variant.

Steps to Reproduce

Run unit tests on a file with API 200 and Synergy hardware variant.

Expected Result

I get only the c7000 unit tests for 200, as synergy was not supported in 200.

Actual Result

It tries to run Synergy with 200 and fails due to uninitialized constant.

SAS Interconnect resource support

Scenario/Intent

Use the SAS Interconnect resource from this module

Environment Details

-Puppet module for HPE OneView Version: 2.0.0
-OneView SDK Version: 3.1.0
-OneView Appliance Version: 3.0
-OneView Client API Version: 300
-Puppet Version: 4.8
-Ruby Version: 2.2.6
-Platform: Windows

Steps to Reproduce

Try to call the resource Oneview_sas_interconnect

Expected Result

To be able to use the resource to create, update and delete SAS Interconnects on OneView

Actual Result

Resource not implemented / Could not find the Oneview_sas_interconnect type

Scope Uris not being retrieved automatically

Scenario/Intent

Insert a name for Scope Uris and it automatically get the correct resource for it

Environment Details

Puppet module for HPE OneView Version: 2.0.0
OneView SDK Version: 3.1.0
OneView Appliance Version: 3.0
OneView Client API Version: 300
Puppet Version: 4.8
Ruby Version: 2.2.6
Platform: Windows

Steps to Reproduce

Insert a name instead of a '/rest/etc' uri on a scope uri field

Expected Result

Should "automagically" get the resource uri

Actual Result

Currently does not work / this is not yet implemented on the ruby sdk

Managed SAN API300 Support

Scenario/Intent

Use Oneview_managed_san with API 300 on the Synergy and C7000 hardware variants

Environment Details

  • Puppet module for HPE OneView Version: 2.0.0
  • OneView SDK Version: 3.0.0+
  • OneView Appliance Version: 3.0.0
  • OneView Client API Version: 300
  • Puppet Version: 4.0.0+
  • Ruby Version: 2.2.6
  • Platform: Windows/CentOS

Steps to Reproduce

1- Create a login file with api_version = 300 and hardware_variant = "C7000" or "Synergy"
2- Create a manifest in which I call the Oneview_managed_san resource

Expected Result

Should use the API 300 of the chosen hardware variant to perform any actions

Actual Result

Uses the API 200 of the C7000 hardware variant to perform all actions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.