dellemc.powerflex.protection_domain_v2 module – Managing protection domain on Dell PowerFlex 5.x

Note

This module is part of the dellemc.powerflex collection (version 3.0.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install dellemc.powerflex. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: dellemc.powerflex.protection_domain_v2.

New in dellemc.powerflex 3.0.0

Synopsis

  • Dell PowerFlex protection domain module includes getting the details of protection domain, creating a new protection domain, and modifying the attribute of a protection domain.

Requirements

The below requirements are needed on the host that executes this module.

  • A Dell PowerFlex storage system version 5.0 or later.

  • PyPowerFlex 2.0.0

Parameters

Parameter

Comments

hostname

aliases: gateway_host

string / required

IP or FQDN of the PowerFlex host.

is_active

boolean

Used to indicate the state of the protection domain and to activate or deactivate it.

When set to true, the protection domain will be in active state.

When set to false, the protection domain will be in inactive state.

Choices:

  • false

  • true

password

string / required

The password of the PowerFlex host.

port

integer

Port number through which communication happens with PowerFlex host.

Default: 443

protection_domain_id

string

The ID of the protection domain.

Except for create operation, all other operations can be performed using protection_domain_id.

Mutually exclusive with protection_domain_name.

protection_domain_name

string

The name of the protection domain.

Mandatory for create operation.

It is unique across the PowerFlex array.

Mutually exclusive with protection_domain_id.

protection_domain_new_name

string

Used to rename the protection domain.

state

string / required

The state of the protection domain. Can be ‘present’ or ‘absent’.

Choices:

  • "present"

  • "absent"

timeout

integer

Time after which connection will get terminated.

It is to be mentioned in seconds.

Default: 120

username

string / required

The username of the PowerFlex host.

validate_certs

aliases: verifycert

boolean

Boolean variable to specify whether or not to validate SSL certificate.

true - Indicates that the SSL certificate should be verified.

false - Indicates that the SSL certificate should not be verified.

Choices:

  • false

  • true ← (default)

Notes

Note

  • This module is supported on Dell PowerFlex 5.x and later versions.

  • The protection domain can only be deleted if all its related objects have been dissociated from the protection domain.

  • If the protection domain set to inactive, then no operation can be performed on protection domain.

  • The check_mode is supported.

  • The modules present in the collection named as ‘dellemc.powerflex’ are built to support the Dell PowerFlex storage platform.

Examples

- name: Create protection domain
  dellemc.powerflex.protection_domain_v2:
    hostname: "{{hostname}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    protection_domain_name: "domain1"
    state: "present"

- name: Create protection domain with all parameters
  dellemc.powerflex.protection_domain_v2:
    hostname: "{{hostname}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    protection_domain_name: "domain1"
    is_active: true
    state: present

- name: Get protection domain details using name
  dellemc.powerflex.protection_domain_v2:
    hostname: "{{hostname}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    port: "{{port}}"
    protection_domain_name: "domain1"
    state: "present"

- name: Get protection domain details using ID
  dellemc.powerflex.protection_domain_v2:
    hostname: "{{hostname}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    port: "{{port}}"
    protection_domain_id: "5718253c00000004"
    state: "present"

- name: Modify protection domain attributes
  dellemc.powerflex.protection_domain_v2:
    hostname: "{{hostname}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    port: "{{port}}"
    protection_domain_name: "domain1"
    protection_domain_new_name: "domain1_new"
    state: "present"

- name: Delete protection domain using name
  dellemc.powerflex.protection_domain_v2:
    hostname: "{{hostname}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    port: "{{port}}"
    protection_domain_name: "domain1_new"
    state: "absent"

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

changed

boolean

Whether or not the resource has changed.

Returned: always

Sample: false

protection_domain_details

dictionary

Details of the protection domain.

Returned: When protection domain exists

Sample: {"bandwidthLimitBgDevScanner": 10, "bandwidthLimitDoublyImpactedRebuild": 400, "bandwidthLimitNodeNetwork": 25, "bandwidthLimitOther": 10, "bandwidthLimitOverallIos": 400, "bandwidthLimitRebalance": 40, "bandwidthLimitSinglyImpactedRebuild": 400, "fglDefaultMetadataCacheSize": 0, "fglDefaultNumConcurrentWrites": 1000, "fglMetadataCacheEnabled": false, "genType": "EC", "id": "e59841fd00000002", "links": [{"href": "/api/instances/ProtectionDomain::e59841fd00000002", "rel": "self"}, {"body": {"ids": ["e59841fd00000002"], "resource_type": "protection_domain"}, "href": "/dtapi/rest/v1/metrics/query", "rel": "/dtapi/rest/v1/metrics/query"}, {"href": "/api/instances/ProtectionDomain::e59841fd00000002/relationships/Sdr", "rel": "/api/ProtectionDomain/relationship/Sdr"}, {"href": "/api/instances/ProtectionDomain::e59841fd00000002/relationships/Dgwt", "rel": "/api/ProtectionDomain/relationship/Dgwt"}, {"href": "/api/instances/ProtectionDomain::e59841fd00000002/relationships/AccelerationPool", "rel": "/api/ProtectionDomain/relationship/AccelerationPool"}, {"href": "/api/instances/ProtectionDomain::e59841fd00000002/relationships/Sdt", "rel": "/api/ProtectionDomain/relationship/Sdt"}, {"href": "/api/instances/ProtectionDomain::e59841fd00000002/relationships/StoragePool", "rel": "/api/ProtectionDomain/relationship/StoragePool"}, {"href": "/api/instances/ProtectionDomain::e59841fd00000002/relationships/Sds", "rel": "/api/ProtectionDomain/relationship/Sds"}, {"href": "/api/instances/ProtectionDomain::e59841fd00000002/relationships/ReplicationConsistencyGroup", "rel": "/api/ProtectionDomain/relationship/ReplicationConsistencyGroup"}, {"href": "/api/instances/ProtectionDomain::e59841fd00000002/relationships/DeviceGroup", "rel": "/api/ProtectionDomain/relationship/DeviceGroup"}, {"href": "/api/instances/ProtectionDomain::e59841fd00000002/relationships/FaultSet", "rel": "/api/ProtectionDomain/relationship/FaultSet"}, {"href": "/api/instances/ProtectionDomain::e59841fd00000002/relationships/StorageNode", "rel": "/api/ProtectionDomain/relationship/StorageNode"}, {"href": "/api/instances/ProtectionDomain::e59841fd00000002/relationships/Pds", "rel": "/api/ProtectionDomain/relationship/Pds"}, {"href": "/api/instances/System::815945c41cd8460f", "rel": "/api/parent/relationship/systemId"}], "mdmSdsNetworkDisconnectionsCounterParameters": {"longWindow": {"threshold": 700, "windowSizeInSec": 86400}, "mediumWindow": {"threshold": 500, "windowSizeInSec": 3600}, "shortWindow": {"threshold": 300, "windowSizeInSec": 60}}, "name": "domain1", "overallConcurrentIoLimit": 4, "overallIoNetworkThrottlingEnabled": false, "overallIoNetworkThrottlingInKbps": null, "protectedMaintenanceModeNetworkThrottlingEnabled": false, "protectedMaintenanceModeNetworkThrottlingInKbps": null, "protectionDomainState": "Active", "rebalanceEnabled": true, "rebalanceNetworkThrottlingEnabled": false, "rebalanceNetworkThrottlingInKbps": null, "rebuildEnabled": true, "rebuildNetworkThrottlingEnabled": false, "rebuildNetworkThrottlingInKbps": null, "rfcacheAccpId": null, "rfcacheEnabled": true, "rfcacheMaxIoSizeKb": 128, "rfcacheOpertionalMode": "WriteMiss", "rfcachePageSizeKb": 64, "rplCapAlertLevel": "invalid", "sdrSdsConnectivityInfo": {"clientServerConnStatus": "CLIENT_SERVER_CONN_STATUS_ALL_CONNECTED", "disconnectedClientId": null, "disconnectedClientName": null, "disconnectedServerId": null, "disconnectedServerIp": null, "disconnectedServerName": null}, "sdsConfigurationFailureCounterParameters": {"longWindow": {"threshold": 700, "windowSizeInSec": 86400}, "mediumWindow": {"threshold": 500, "windowSizeInSec": 3600}, "shortWindow": {"threshold": 300, "windowSizeInSec": 60}}, "sdsDecoupledCounterParameters": {"longWindow": {"threshold": 700, "windowSizeInSec": 86400}, "mediumWindow": {"threshold": 500, "windowSizeInSec": 3600}, "shortWindow": {"threshold": 300, "windowSizeInSec": 60}}, "sdsReceiveBufferAllocationFailuresCounterParameters": {"longWindow": {"threshold": 2000000, "windowSizeInSec": 86400}, "mediumWindow": {"threshold": 200000, "windowSizeInSec": 3600}, "shortWindow": {"threshold": 20000, "windowSizeInSec": 60}}, "sdsSdsNetworkDisconnectionsCounterParameters": {"longWindow": {"threshold": 700, "windowSizeInSec": 86400}, "mediumWindow": {"threshold": 500, "windowSizeInSec": 3600}, "shortWindow": {"threshold": 300, "windowSizeInSec": 60}}, "sdtSdsConnectivityInfo": {"clientServerConnStatus": "CLIENT_SERVER_CONN_STATUS_ALL_CONNECTED", "disconnectedClientId": null, "disconnectedClientName": null, "disconnectedServerId": null, "disconnectedServerIp": null, "disconnectedServerName": null}, "systemId": "815945c41cd8460f", "vtreeMigrationNetworkThrottlingEnabled": false, "vtreeMigrationNetworkThrottlingInKbps": null}

fglDefaultMetadataCacheSize

integer

FGL metadata cache size.

Returned: success

fglDefaultNumConcurrentWrites

string

FGL concurrent writes.

Returned: success

fglMetadataCacheEnabled

boolean

Whether FGL cache enabled.

Returned: success

id

string

Protection domain ID.

Returned: success

list / elements=string

Protection domain links.

Returned: success

string

Protection domain instance URL.

Returned: success

string

Protection domain’s relationship with different entities.

Returned: success

mdmSdsNetworkDisconnectionsCounterParameters

dictionary

MDM’s SDS counter parameter.

Returned: success

longWindow

integer

Long window for Counter Parameters.

Returned: success

mediumWindow

integer

Medium window for Counter Parameters.

Returned: success

shortWindow

integer

Short window for Counter Parameters.

Returned: success

name

string

Name of the protection domain.

Returned: success

overallIoNetworkThrottlingEnabled

boolean

Whether overall network throttling enabled.

Returned: success

overallIoNetworkThrottlingInKbps

integer

Overall network throttling in KBps.

Returned: success

protectedMaintenanceModeNetworkThrottlingEnabled

boolean

Whether protected maintenance mode network throttling enabled.

Returned: success

protectedMaintenanceModeNetworkThrottlingInKbps

integer

Protected maintenance mode network throttling in KBps.

Returned: success

protectionDomainState

integer

State of protection domain.

Returned: success

rebalanceNetworkThrottlingEnabled

integer

Whether rebalance network throttling enabled.

Returned: success

rebalanceNetworkThrottlingInKbps

integer

Rebalance network throttling in KBps.

Returned: success

rebuildNetworkThrottlingEnabled

integer

Whether rebuild network throttling enabled.

Returned: success

rebuildNetworkThrottlingInKbps

integer

Rebuild network throttling in KBps.

Returned: success

rfcacheAccpId

string

Id of RF cache acceleration pool.

Returned: success

rfcacheEnabled

boolean

Whether RF cache is enabled or not.

Returned: success

rfcacheMaxIoSizeKb

integer

RF cache maximum I/O size in KB.

Returned: success

rfcacheOpertionalMode

string

RF cache operational mode.

Returned: success

rfcachePageSizeKb

boolean

RF cache page size in KB.

Returned: success

sdrSdsConnectivityInfo

dictionary

Connectivity info of SDR and SDS.

Returned: success

clientServerConnStatus

string

Connectivity status of client and server.

Returned: success

disconnectedClientId

string

Disconnected client ID.

Returned: success

disconnectedClientName

string

Disconnected client name.

Returned: success

disconnectedServerId

string

Disconnected server ID.

Returned: success

disconnectedServerIp

string

Disconnected server IP.

Returned: success

disconnectedServerName

string

Disconnected server name.

Returned: success

sdsSdsNetworkDisconnectionsCounterParameters

dictionary

Counter parameter for SDS-SDS network.

Returned: success

longWindow

integer

Long window for Counter Parameters.

Returned: success

mediumWindow

integer

Medium window for Counter Parameters.

Returned: success

shortWindow

integer

Short window for Counter Parameters.

Returned: success

systemId

string

ID of system.

Returned: success

vtreeMigrationNetworkThrottlingEnabled

boolean

Whether V-Tree migration network throttling enabled.

Returned: success

vtreeMigrationNetworkThrottlingInKbps

integer

V-Tree migration network throttling in KBps.

Returned: success

Authors

  • Luis Liu (@vangork)