community.network.opx_cps – CPS operations on networking device running Openswitch (OPX)

Note

This plugin is part of the community.network collection (version 2.1.1).

To install it use: ansible-galaxy collection install community.network.

To use it in a playbook, specify: community.network.opx_cps.

Synopsis

Requirements

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

  • cps

  • cps_object

  • cps_utils

Parameters

Parameter Choices/Defaults Comments
attr_data
string
Attribute Yang path and their corresponding data.
attr_type
string
Attribute Yang type.
commit_event
boolean
    Choices:
  • no ←
  • yes
Attempts to force the auto-commit event to the specified yang object.
db
boolean
    Choices:
  • no ←
  • yes
Queries/Writes the specified yang path from/to the db.
module_name
string
Yang path to be configured.
operation
string
    Choices:
  • delete
  • create ←
  • set
  • action
  • get
Operation to be performed on the object.
qualifier
string
    Choices:
  • target ←
  • observed
  • proposed
  • realtime
  • registration
  • running
  • startup
A qualifier provides the type of object data to retrieve or act on.

Examples

- name: Create VLAN
  community.network.opx_cps:
    module_name: "dell-base-if-cmn/if/interfaces/interface"
    attr_data: {
         "base-if-vlan/if/interfaces/interface/id": 230,
         "if/interfaces/interface/name": "br230",
         "if/interfaces/interface/type": "ianaift:l2vlan"
    }
    operation: "create"
- name: Get VLAN
  community.network.opx_cps:
    module_name: "dell-base-if-cmn/if/interfaces/interface"
    attr_data: {
         "if/interfaces/interface/name": "br230",
    }
    operation: "get"
- name: Modify some attributes in VLAN
  community.network.opx_cps:
    module_name: "dell-base-if-cmn/if/interfaces/interface"
    attr_data: {
         "cps/key_data":
            { "if/interfaces/interface/name": "br230" },
         "dell-if/if/interfaces/interface/untagged-ports": ["e101-008-0"],
    }
    operation: "set"
- name: Delete VLAN
  community.network.opx_cps:
    module_name: "dell-base-if-cmn/if/interfaces/interface"
    attr_data: {
         "if/interfaces/interface/name": "br230",
    }
    operation: "delete"

Return Values

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

Key Returned Description
commit_event
boolean
when commit_event is set to True in module options
Denotes if auto-commit event is set

Sample:
True
cps_curr_config
dictionary
when CPS operations set, delete
Returns the CPS Get output i.e. the running configuration before CPS operation of set/delete is performed

Sample:
[{'data': {'base-if-vlan/if/interfaces/interface/id': 230, 'cps/key_data': {'if/interfaces/interface/name': 'br230'}, 'dell-base-if-cmn/if/interfaces/interface/if-index': 44, 'dell-if/if/interfaces/interface/learning-mode': 1, 'dell-if/if/interfaces/interface/mtu': 1532, 'dell-if/if/interfaces/interface/phys-address': '', 'dell-if/if/interfaces/interface/vlan-type': 1, 'if/interfaces/interface/enabled': 0, 'if/interfaces/interface/type': 'ianaift:l2vlan'}, 'key': 'target/dell-base-if-cmn/if/interfaces/interface'}]
db
boolean
when db is set to True in module options
Denotes if CPS DB transaction was performed

Sample:
True
diff
dictionary
when CPS operations set, delete
The actual configuration that will be pushed comparing the running configuration and input attributes

Sample:
{'cps/key_data': {'if/interfaces/interface/name': 'br230'}, 'dell-if/if/interfaces/interface/untagged-ports': ['e101-007-0']}
response
list / elements=string
when a CPS transaction is successfully performed.
Output from the CPS transaction. Output of CPS Get operation if CPS set/create/delete not done.

Sample:
[{'data': {'base-if-vlan/if/interfaces/interface/id': 230, 'cps/object-group/return-code': 0, 'dell-base-if-cmn/if/interfaces/interface/if-index': 46, 'if/interfaces/interface/name': 'br230', 'if/interfaces/interface/type': 'ianaift:l2vlan'}, 'key': 'target/dell-base-if-cmn/if/interfaces/interface'}]


Authors

  • Senthil Kumar Ganesan (@skg-net)