Skip to content
HPE 3PAR Chef Cookbook
Ruby
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
libraries Modifying the app type Sep 20, 2018
providers Initial Commit Jan 19, 2018
recipes Initial Commit Jan 19, 2018
resources 1. Fixed foodcritic issues related to name_attribute vs name_property May 15, 2018
spec
.gitignore Initial Commit Jan 19, 2018
.kitchen.yml Initial Commit Jan 19, 2018
.travis.yml Updated travis.yml script command Apr 5, 2018
Berksfile Initial Commit Jan 19, 2018
CONTRIBUTING.md Initial Commit Jan 19, 2018
Gemfile Initial Commit Jan 19, 2018
LICENSE Initial Commit Jan 19, 2018
README.md
TESTING.md
attributes.md Initial Commit Jan 19, 2018
chefignore Initial Commit Jan 19, 2018
metadata.rb 1. Fixed foodcritic issues related to name_attribute vs name_property May 15, 2018
rakefile Initial Commit Jan 19, 2018

README.md

HPE 3PAR Cookbook for Chef

The hpe3par cookbook is a starter kit which provides types and providers, using which you can write recipes to manage HPE 3PAR storage arrays. This cookbook uses the hpe3par_sdk to communicate with the 3PAR storage arrays over http/https through the WSAPI REST service hosted on the array.

This cookbook is not intended to include any recipes. Use it by creating a new cookbook and specifying a dependency on this cookbook in your metadata. Then use any of the resources provided by this cookbook.

Note: The cookbook name is 'hpe3par'. If you want to directly use from source, you need to rename the directory hpe3par_chef_cookbook to hpe3par in order to use the resources.

Requirements

  • 3PAR OS
    • 3.2.2 MU4, MU6
    • 3.3.1 MU1, MU2
  • Ruby - 2.4.x
  • Chef - 12.x
  • WSAPI service should be enabled on the 3PAR storage array.

Usage

Add the following line to the metadata.rb file of your cookbook

 # my_cookbook/metadata.rb
 ...
 depends 'hpe3par'

Now, you can utilize the hpe3par cookbook resources in your recipes, for ex:

Creating a Virtual Volume

hpe3par_virtual_volume node['hpe3par']['virtual_volume']['name'] do
  storage_system node['hpe3par']['storage_system']
  cpg node['hpe3par']['virtual_volume']['cpg']
  size node['hpe3par']['virtual_volume']['size']
  size_unit node['hpe3par']['virtual_volume']['size_unit']
  type node['hpe3par']['virtual_volume']['type']
  action :create
end

HPE 3PAR Connection settings

The connection settings for connecting to a 3PAR array are defined through attributes. Every hpe3ar resource has a storage_system attribute which represents the connection to the 3PAR array. The attribute definition for this is as follows:

node['hpe3par']['storage_system'] = {
    name: 'SRA_205',
    ip: '16.192.67.205',
    user: '3par_user',
    password: 'password'
}

Recipes

These are intended as samples/reference only and can be found in the recipes folder. These recipes list out all of the actions for each resource.

  • hpe3par::clone
  • hpe3par::cpg
  • hpe3par::flash_cache
  • hpe3par::host
  • hpe3par::host_set
  • hpe3par::qos
  • hpe3par::snapshot
  • hpe3par::virtual_volume
  • hpe3par::vlun
  • hpe3par::volume_set

Resources

All of the resources have a debug parameter which can be set to true to enable debug logs or false to disable debug logs

hpe3par_clone

Actions

  • create_offline: Default action.
  • create_online
  • delete
  • resync
  • stop

Attribute Parameters

  • storage_system: Hash (Required)
  • base_volume_name: String (Required)
  • clone_name: String (Required)
  • dest_cpg: String
  • online: Boolean
  • read_only: Boolean
  • tpvv: Boolean
  • tdvv: Boolean
  • snap_cpg: String
  • skip_zero: Boolean
  • compression: Boolean
  • save_snapshot: Boolean
  • priority: String, Defaults to "MEDIUM".
  • debug: Boolean, Defaults to false.

hpe3par_cpg

Actions

  • create: Default action.
  • delete

Attribute Parameters

  • cpg_name: String (Required)
  • storage_system: Hash (Required)
  • domain: String
  • growth_increment: Float, Defaults to -1.0.
  • growth_increment_unit: String, Defaults to "GiB".
  • growth_limit: Float, Defaults to -1.0.
  • growth_limit_unit: String, Defaults to "GiB".
  • growth_warning: Float, Defaults to -1.0.
  • growth_warning_unit: String, Defaults to "GiB".
  • raid_type: String
  • set_size: Integer, Defaults to -1.
  • high_availability: String
  • disk_type: String
  • debug: Boolean, Defaults to false.

hpe3par_flash_cache

Actions

  • create: Default action.
  • delete

Attribute Parameters

  • storage_system: Hash (Required)
  • size_in_gib: Integer (Required)
  • mode: Integer
  • debug: Boolean, Defaults to false.

hpe3par_host

Actions

  • create: Default action.
  • add_fc_path_to_host
  • add_initiator_chap
  • add_iscsi_path_to_host
  • add_target_chap
  • delete
  • modify
  • remove_fc_path_from_host
  • remove_initiator_chap
  • remove_iscsi_path_from_host
  • remove_target_chap

Attribute Parameters

  • storage_system: Hash (Required)
  • host_name: String (Required)
  • domain: String, Defaults to nil.
  • fc_wwns: Array, Defaults to nil.
  • iscsi_names: Array, Defaults to nil.
  • persona: String
  • new_name: String, Defaults to nil.
  • force_path_removal: Boolean, Defaults to nil.
  • chap_name: String, Defaults to nil.
  • chap_secret: String, Defaults to nil.
  • chap_secret_hex: Boolean, Defaults to nil.
  • debug: Boolean, Defaults to false.

hpe3par_host_set

Actions

  • create: Default action.
  • add_host
  • delete
  • remove_host

Attribute Parameters

  • storage_system: Hash (Required)
  • host_set_name: String (Required)
  • domain: String, Defaults to nil.
  • setmembers: Array, Defaults to nil.
  • debug: Boolean, Defaults to false

hpe3par_qos

Actions

  • create: Default action.
  • delete
  • modify

Attribute Parameters

  • storage_system: Hash (Required)
  • qos_target_name: String (Required)
  • type: String
  • priority: String, Defaults to "LOW".
  • bwmin_goal_kb: Integer, Defaults to -1.
  • bwmax_limit_kb: Integer, Defaults to -1.
  • iomin_goal: Integer, Defaults to -1.
  • iomax_limit: Integer, Defaults to -1.
  • bwmin_goal_op: String
  • bwmax_limit_op: String
  • iomin_goal_op: String
  • iomax_limit_op: String
  • latency_goal: Integer
  • default_latency: Boolean, Defaults to false.
  • enable: Boolean, Defaults to false.
  • latency_goal_usecs: Integer
  • debug: Boolean, Defaults to false.

hpe3par_snapshot

Actions

  • create: Default action.
  • delete
  • modify
  • restore_offline
  • restore_online

Attribute Parameters

  • storage_system: Hash (Required)
  • snapshot_name: String (Required)
  • base_volume_name: String
  • read_only: Boolean
  • expiration_time: Integer
  • retention_time: Integer
  • expiration_unit: String, Defaults to "Hours".
  • retention_unit: String, Defaults to "Hours".
  • expiration_hours: Integer, Defaults to 0.
  • retention_hours: Integer, Defaults to 0.
  • online: Boolean
  • priority: String, Defaults to "MEDIUM".
  • allow_remote_copy_parent: Boolean
  • new_name: String
  • snap_cpg: String
  • rm_exp_time: Boolean
  • debug: Boolean, Defaults to false.

hpe3par_virtual_volume

Actions

  • create: Default action.
  • change_snap_cpg
  • change_user_cpg
  • convert_type
  • delete
  • grow: This action grows the volume by the specified size. This action is non-idempotent
  • grow_to_size: This action grows the volume to the specified size. This action is idempotent
  • modify
  • set_snap_cpg

Attribute Parameters

  • storage_system: Hash (Required)
  • volume_name: String (Required)
  • cpg: String
  • size: Float
  • size_unit: String, Defaults to "GiB".
  • type: String, Defaults to "thin".
  • snap_cpg: String
  • compression: Boolean, Defaults to false.
  • keep_vv: String
  • new_name: String
  • wait_for_task_to_end: Boolean, Defaults to false.
  • ss_spc_alloc_warning_pct: Integer, Defaults to 0.
  • ss_spc_alloc_limit_pct: Integer, Defaults to 0.
  • rm_ss_spc_alloc_warning: Boolean, Defaults to false.
  • usr_spc_alloc_warning_pct: Integer, Defaults to 0.
  • usr_spc_alloc_limit_pct: Integer, Defaults to 0.
  • rm_usr_spc_alloc_warning: Boolean, Defaults to false.
  • expiration_hours: Integer, Defaults to 0.
  • retention_hours: Integer, Defaults to 0.
  • rm_exp_time: Boolean, Defaults to false.
  • rm_ss_spc_alloc_limit: Boolean, Defaults to false.
  • rm_usr_spc_alloc_limit: Boolean, Defaults to false.
  • debug: Boolean, Defaults to false.

hpe3par_vlun

Actions

  • export_volume_to_host: Default action.
  • export_volume_to_hostset
  • export_volumeset_to_host
  • export_volumeset_to_hostset
  • unexport_volume_to_host
  • unexport_volume_to_hostset
  • unexport_volumeset_to_host
  • unexport_volumeset_to_hostset

Attribute Parameters

  • storage_system: Hash (Required)
  • volume_name: String (Required)
  • lunid: Integer
  • volumeset_name: String
  • hostset_name: String
  • host_name: String
  • node_val: Integer
  • slot: Integer
  • card_port: Integer
  • autolun: Boolean, Defaults to true.
  • debug: Boolean, Defaults to false.

hpe3par_volume_set

Actions

  • create: Default action.
  • add_volume
  • delete
  • remove_volume

Attribute Parameters

  • storage_system: Hash (Required)
  • volume_set_name: String (Required)
  • domain: String
  • setmembers: Array
  • debug: Boolean, Defaults to false.

Non Idempotent Actions

Actions are Idempotent when they can be run multiple times on the same system and the results will always be identical, without producing unintended side effects.

The following actions are non-idempotent:

  • Clone: resync, create_offline
  • Snapshot: restore online, restore offline
  • Virtual Volume: grow (grow_to_size is idempotent)
  • VLUN: All actions become non-idempotent when autolun is set to true

Contributing/Development

Please read our Community Contributions Guidelines

License

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

Maintainer: Hewlett Packard Enterprise (hpe_storage_cookbooks@groups.ext.hpe.com)

You can’t perform that action at this time.