diff --git a/README.md b/README.md index dcb3292..b5a3bf3 100644 --- a/README.md +++ b/README.md @@ -40,9 +40,11 @@ To install a specific version, a version range identifier must be specified. For ## Version compatibility -Ansible version 2.10 or later. +* Ansible version 2.10 or later. +* Python 2.7 or higher and Python 3.5 or higher > **NOTE**: For Ansible versions lower than 2.10, use the legacy [dellos9 modules](https://ansible-dellos-docs.readthedocs.io/en/latest/modules.html#os9-modules) and [dellos roles](https://ansible-dellos-docs.readthedocs.io/en/latest/roles.html). + ## Sample playbook diff --git a/changelogs/CHANGELOG.rst b/changelogs/CHANGELOG.rst index 79e6c59..5c58ec1 100644 --- a/changelogs/CHANGELOG.rst +++ b/changelogs/CHANGELOG.rst @@ -4,6 +4,14 @@ Ansible Network Collection for Dell EMC OS9 Release Notes .. contents:: Topics +v1.0.3 +====== + +Release Summary +--------------- + +Added bug fixes for bugs found during System Test. + v1.0.2 ====== diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml index 68b927e..2624326 100644 --- a/changelogs/changelog.yaml +++ b/changelogs/changelog.yaml @@ -91,3 +91,9 @@ releases: fragments: - 1.0.2.yaml release_date: '2020-08-18' + 1.0.3: + chnages: + release_summary: Added bug fixes for bugs found during System Test. + fragments: + - 1.0.3.yaml + release_date: '2020-10-09' \ No newline at end of file diff --git a/galaxy.yml b/galaxy.yml index 452967e..1ff42e9 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -9,7 +9,7 @@ name: os9 namespace: dellemc readme: README.md tags: [dell, dellemc, os9, emc, networking] -version: 1.0.2 +version: 1.0.3 repository: 'https://github.com/ansible-collections/dellemc.os9' documentation: 'https://github.com/ansible-collections/dellemc.os9/tree/master/docs' homepage: 'https://github.com/ansible-collections/dellemc.os9' diff --git a/plugins/cliconf/os9.py b/plugins/cliconf/os9.py index 9e5ca19..95334bf 100644 --- a/plugins/cliconf/os9.py +++ b/plugins/cliconf/os9.py @@ -1,7 +1,7 @@ # # (c) 2020 Red Hat Inc. # -# (c) 2020 Dell EMC. +# (c) 2020 Dell Inc. # # This file is part of Ansible # diff --git a/roles/os9_interface/templates/os9_interface.j2 b/roles/os9_interface/templates/os9_interface.j2 index 7cc1ede..2a98c85 100644 --- a/roles/os9_interface/templates/os9_interface.j2 +++ b/roles/os9_interface/templates/os9_interface.j2 @@ -187,7 +187,7 @@ interface {{ key }} {% endif %} {% endif %} {% if intf_vars.ip_and_mask_secondary is defined and intf_vars.ip_and_mask_secondary %} - {% if secondary_ip_state is defined and secondary_ip_state == "absent" %} + {% if intf_vars.secondary_ip_state is defined and intf_vars.secondary_ip_state == "absent" %} no ip address {{ intf_vars.ip_and_mask_secondary }} secondary {% else %} ip address {{ intf_vars.ip_and_mask_secondary }} secondary diff --git a/roles/os9_lldp/README.md b/roles/os9_lldp/README.md index b5d8b5d..802adc6 100644 --- a/roles/os9_lldp/README.md +++ b/roles/os9_lldp/README.md @@ -73,7 +73,6 @@ Role variables | ``<interface name>.multiplier`` | integer | Configures LLDP multiplier at the interface level (2 to 10) | os9 | | ``<interface name>.dcbx`` | dictionary | Configures DCBx parameters at the interface level (see ``dcbx.*``) | os9 | | ``dcbx.version`` | string | Configures DCBx version at the interface level | os9 | -| ``dcbx.port_role`` | string | Configures DCBx port role at the interface level | os9 | | ``<interface name>.advertise`` | dictionary | Configures LLDP-MED TLV advertisement at the interface level (see ``advertise.*``) | os9 | | ``advertise.dcbx_tlv`` | string | Configures DCBx TLVs advertisement at the interface level | os9 | | ``advertise.dcbx_tlv_state`` | string: present,absent | Deletes interface level DCBx TLVs advertisement if set to absent | os9 | @@ -144,95 +143,94 @@ When `os9_cfg_generate` is set to true, the variable generates the configuration ansible_network_os: dellemc.os9.os9 build_dir: ../temp/os9 os9_lldp: - global_lldp_state: present - enable: false - mode: rx - multiplier: 3 - fcoe_priority_bits: 3 - iscsi_priority_bits: 3 - hello: 6 - dcbx: - version: auto - management_interface: - hello: 7 - multiplier: 3 - mode: tx - enable: true - advertise: - port_descriptor: false - management_tlv: management-address system-capabilities - management_tlv_state: absent - advertise: - dcbx_tlv: pfc - dcbx_tlv_state: absent - dcbx_appln_tlv: fcoe - dcbx_appln_tlv_state: - dot1_tlv: - port_tlv: - protocol_vlan_id: true - port_vlan_id: true - vlan_tlv: - vlan_range: 2-4 - dot3_tlv: - max_frame_size: false - port_descriptor: false - management_tlv: management-address system-capabilities - management_tlv_state: absent - med: - global_med: true - application: - - name: "guest-voice" - vlan_id: 2 - l2_priority: 3 - code_point_value: 4 - - name: voice - priority_tagged: true - l2_priority: 3 - code_point_value: 4 - location_identification: - - loc_info: ecs-elin - value: 12345678911 - state: present - local_interface: - fortyGigE 1/3: - lldp_state: present - enable: false - mode: rx - multiplier: 3 - hello: 8 - dcbx: - version: auto - port_role: auto-upstream - advertise: - dcbx_tlv: pfc - dcbx_tlv_state: present - dcbx_appln_tlv: fcoe - dcbx_appln_tlv_state: absent - dot1_tlv: - port_tlv: - protocol_vlan_id: true - port_vlan_id: true - vlan_tlv: - vlan_range: 2-4 - state: present - dot3_tlv: - max_frame_size: true - port_descriptor: true - management_tlv: management-address system-capabilities - management_tlv_state: absent - med: - application: - - name: guest-voice - vlan_id: 2 - l2_priority: 3 - code_point_value: 4 - - name: voice - priority_tagged: true - l2_priority: 3 - code_point_value: 4 - location_identification: - - loc_info: ecs-elin - value: 12345678911 + global_lldp_state: present + enable: false + mode: rx + multiplier: 3 + fcoe_priority_bits: 3 + iscsi_priority_bits: 3 + hello: 6 + dcbx: + version: auto + management_interface: + hello: 7 + multiplier: 3 + mode: tx + enable: true + advertise: + port_descriptor: false + management_tlv: management-address system-capabilities + management_tlv_state: absent + advertise: + dcbx_tlv: pfc + dcbx_tlv_state: absent + dcbx_appln_tlv: fcoe + dcbx_appln_tlv_state: + dot1_tlv: + port_tlv: + protocol_vlan_id: true + port_vlan_id: true + vlan_tlv: + vlan_range: 2-4 + dot3_tlv: + max_frame_size: false + port_descriptor: false + management_tlv: management-address system-capabilities + management_tlv_state: absent + med: + global_med: true + application: + - name: "guest-voice" + vlan_id: 2 + l2_priority: 3 + code_point_value: 4 + - name: voice + priority_tagged: true + l2_priority: 3 + code_point_value: 4 + location_identification: + - loc_info: ecs-elin + value: 12345678911 + state: present + local_interface: + fortyGigE 1/3: + lldp_state: present + enable: false + mode: rx + multiplier: 3 + hello: 8 + dcbx: + version: auto + advertise: + dcbx_tlv: pfc + dcbx_tlv_state: present + dcbx_appln_tlv: fcoe + dcbx_appln_tlv_state: absent + dot1_tlv: + port_tlv: + protocol_vlan_id: true + port_vlan_id: true + vlan_tlv: + vlan_range: 2-4 + state: present + dot3_tlv: + max_frame_size: true + port_descriptor: true + management_tlv: management-address system-capabilities + management_tlv_state: absent + med: + application: + - name: guest-voice + vlan_id: 2 + l2_priority: 3 + code_point_value: 4 + - name: voice + priority_tagged: true + l2_priority: 3 + code_point_value: 4 + location_identification: + - loc_info: ecs-elin + value: 12345678911 **Simple playbook to setup system — leaf.yaml** diff --git a/roles/os9_lldp/templates/os9_lldp.j2 b/roles/os9_lldp/templates/os9_lldp.j2 index 7f53560..375fba7 100644 --- a/roles/os9_lldp/templates/os9_lldp.j2 +++ b/roles/os9_lldp/templates/os9_lldp.j2 @@ -61,7 +61,6 @@ os9_lldp: hello: 8 dcbx: version: auto - port_role: auto-upstream advertise: dcbx_tlv: pfc dcbx_tlv_state: present @@ -386,14 +385,13 @@ interface {{ intf }} {% endif %} {% endif %} {% if intf_vars.advertise.management_tlv is defined and intf_vars.advertise.management_tlv %} - {% if intf_vars.advertise.management_tlv_state is defined and intf_vars.advertise.management_tlv_state == "ab -sent" %} + {% if intf_vars.advertise.management_tlv_state is defined and intf_vars.advertise.management_tlv_state == "absent" %} no advertise management-tlv {{ intf_vars.advertise.management_tlv }} {% else %} advertise management-tlv {{ intf_vars.advertise.management_tlv }} {% endif %} {% endif %} - {% if intf_vars.advertise.med is defined and intf_vars.advertise.med %} + {% if intf_vars.advertise.med is defined and intf_vars.advertise.med %} {% for med in intf_vars.advertise.med.keys() %} {% set med_vars = intf_vars.advertise.med[med] %} {% if med == "global_med" %} diff --git a/roles/os9_logging/README.md b/roles/os9_logging/README.md index f1f2589..ee10bbc 100644 --- a/roles/os9_logging/README.md +++ b/roles/os9_logging/README.md @@ -21,12 +21,12 @@ Role variables |------------|---------------------------|---------------------------------------------------------|-----------------------| | ``logging`` | list | Configures the logging server (see ``logging.*``) | os9 | | ``logging.ip`` | string (required) | Configures the IPv4 address for the logging server (A.B.C.D format) | os9 | -| ``logging.secure_port`` | integer | Specifies log messages over the TLS port | os9 | +| ``logging.secure_port`` | integer | Specifies log messages over the TLS port, CA certificates must be installed to specify the log messages over TLS port | os9 | | ``logging.tcp_port`` | integer | Specifies log messages over the TCP port if *secure_port* is not defined | os9 | | ``logging.udp_port`` | integer | Specifies log messages over the UDP port if both TCP and the secure port key are not defined | os9 | | ``logging.vrf`` | dict | Specifies a VRF instance to be used to reach the host | os9 | | ``logging.vrf.name`` | string | Specifies the VRF name | os9 | -| ``logging.vrf.secure_port`` | integer | Specifies log messages over the TLS port | os9 | +| ``logging.vrf.secure_port`` | integer | Specifies log messages over the TLS port, CA certificates must be installed to specify the log messages over TLS port | os9 | | ``logging.vrf.tcp_port`` | integer | Specifies log messages over the TCP port if *secure_port key* is not defined | os9 | | ``logging.vrf.udp_port`` | integer | Specifies log messages over the UDP port if both TCP and *secure_port_key* is not defined | os9 | | ``logging.vrf.state`` | string: absent,present\* | Deletes VRF instance of the logging server if set to absent | os9 | @@ -115,9 +115,9 @@ When `os9_cfg_generate` is set to true, the variable generates the configuration udp_port: 1025 state: present buffer: 5 - console_level: 7 - trap_level: 5 - syslog_version: 5 + console: 7 + trap: 5 + version: 5 history: 4 history_size: 3 monitor: 5 diff --git a/roles/os9_logging/templates/os9_logging.j2 b/roles/os9_logging/templates/os9_logging.j2 index d932b3c..0243756 100644 --- a/roles/os9_logging/templates/os9_logging.j2 +++ b/roles/os9_logging/templates/os9_logging.j2 @@ -23,9 +23,9 @@ os9_logging: udp_port: 1025 state: present buffer: 6 - console_level: 7 - trap_level: 5 - syslog_version: 5 + console: 7 + trap: 5 + version: 5 history: 4 history_size: 3 monitor: 5 diff --git a/roles/os9_logging/tests/main.os9.yaml b/roles/os9_logging/tests/main.os9.yaml index b002d6e..0ff9482 100644 --- a/roles/os9_logging/tests/main.os9.yaml +++ b/roles/os9_logging/tests/main.os9.yaml @@ -23,9 +23,9 @@ os9_logging: udp_port: 1025 state: present buffer: 6 - console_level: 7 - trap_level: 5 - syslog_version: 5 + console: 7 + trap: 5 + version: 5 history: 4 history_size: 3 monitor: 5 diff --git a/roles/os9_prefix_list/templates/os9_prefix_list.j2 b/roles/os9_prefix_list/templates/os9_prefix_list.j2 index 7f8da76..63c7086 100644 --- a/roles/os9_prefix_list/templates/os9_prefix_list.j2 +++ b/roles/os9_prefix_list/templates/os9_prefix_list.j2 @@ -76,4 +76,6 @@ ipv6 prefix-list {{ val.name }} {% endfor %} {% endif %} {% endif %} - {% endif %} \ No newline at end of file + {% endif %} + {%endfor%} +{%endif%} \ No newline at end of file diff --git a/roles/os9_snmp/README.md b/roles/os9_snmp/README.md index f938f9c..0e458b9 100644 --- a/roles/os9_snmp/README.md +++ b/roles/os9_snmp/README.md @@ -20,7 +20,7 @@ Role variables | Key | Type | Description | Support | |------------|---------------------------|---------------------------------------------------------|-----------------------| | ``snmp_contact`` | string | Configures SNMP contact information | os9 | -| ``snmp_server_vrf`` | boolean: true, false\* | Enables SNMP-server VRF globally | os9 | +| ``snmp_server_vrf`` | string | Specifies vrf instance for snmp requests, removes the vrf instance for snmp requests if kept blank | os9 | | ``snmp_location`` | string | Configures SNMP location information | os9 | | ``snmp_community`` | list | Configures SNMP community information (see ``snmp_community.*``) | os9 | | ``snmp_community.name`` | string (required) | Configures the SNMP community string | os9 | diff --git a/roles/os9_system/README.md b/roles/os9_system/README.md index aec2977..36e5e16 100644 --- a/roles/os9_system/README.md +++ b/roles/os9_system/README.md @@ -19,7 +19,7 @@ Role variables | Key | Type | Description | Support | |------------|---------------------------|---------------------------------------------------------|-----------------------| | ``hostname`` | string | Configures a hostname to the device (no negate command) | os9 | -| ``unique_hostname`` | boolean: true,false\* | Configures a unique hostname in the switch | os9 | +| ``unique_hostname`` | boolean: true,false\* | Configures a unique hostname in the switch, only applicable to the FN IOM and MXL platform modules | os9 | | ``enable_password`` | string | Configures the enable password | os9 | | ``management_rt`` | list | Configures the management route | os9 | | ``management_rt.ip`` | string (required) | Configures the IP destination prefix for the management route (A.B.C.D format for IPv4, A:B:C:D::E format for IPv6) | os9 | diff --git a/roles/os9_users/README.md b/roles/os9_users/README.md index e811a0c..2fadbe7 100644 --- a/roles/os9_users/README.md +++ b/roles/os9_users/README.md @@ -20,6 +20,7 @@ Role variables |------------|---------------------------|---------------------------------------------------------|-----------------------| | ``userrole`` | stirng (required) | Configures the role name which can be configured for users | os9 | | ``userrole_state`` | string: absent,present\* | Deletes the user role with specified name if set to absent | os9 | +| ``userrole_inherit`` | string: netadmin,netoperator,secadmin,sysadmin\* | Specifies the existing role name to inherit the permissions | os9 | | ``username`` | string (required) | Configures the username which must adhere to specific format guidelines (valid usernames begin with A-Z, a-z, or 0-9 and can also contain `@#$%^&*-_= +;<>,.~` characters) | os9 | | ``password`` | string | Configures the password set for the username; | os9 | | ``role`` | string | Configures the role assigned to the user | os9 | @@ -75,6 +76,7 @@ If `os9_cfg_generate` is set to true, the variable generates the role configurat os9_users: - userrole: role1 userrole_state: present + userrole_inherit: sysadmin - username: u1 password: test role: sysadmin diff --git a/roles/os9_users/templates/os9_users.j2 b/roles/os9_users/templates/os9_users.j2 index 45c04bd..64f8256 100644 --- a/roles/os9_users/templates/os9_users.j2 +++ b/roles/os9_users/templates/os9_users.j2 @@ -5,7 +5,7 @@ Configure users commands for os9 Devices os9_users: - userrole: role1 userrole_state: present - userrole_inherit: rolename + userrole_inherit: sysadmin - username: test password: test pass_key: 7 diff --git a/roles/os9_users/tests/main.os9.yaml b/roles/os9_users/tests/main.os9.yaml index fb0c0b8..e2882d2 100644 --- a/roles/os9_users/tests/main.os9.yaml +++ b/roles/os9_users/tests/main.os9.yaml @@ -5,6 +5,7 @@ os9_users: - userrole: role1 userrole_state: present + userrole_inherit: sysadmin - username: test password: test pass_key: 7 diff --git a/roles/os9_vlt/README.md b/roles/os9_vlt/README.md index a192b62..2154fbd 100644 --- a/roles/os9_vlt/README.md +++ b/roles/os9_vlt/README.md @@ -28,7 +28,6 @@ Role variables | ``multicast_peer_routing_timeout`` | integer | Configures the timeout for multicast peer routing (1 to 1200) | os9 | | ``priority`` | integer | Configures the primary priority to the corresponding channel ID | os9 | | ``unit_id`` | integer | Configures the system unit ID for VLT (either 0 or 1) | os9 | -| ``vlt_mac`` | string | Configures the VLT MAC address | os9 | | ``vlt_peers`` | dictionary | Contains objects to configure the VLT peer port-channel (see ``vlt_peers.*``) | os9 | | ``vlt_peers.<portchannelid>`` | dictionary | Configures the VLT peer port-channel (`Po <portchannelid> value`) | os9 | | ``vlt_peers.<portchannelid>.peer_lag`` | integer | Configures the port-channel ID of the VLT peer lag | os9 | diff --git a/roles/os9_xstp/README.md b/roles/os9_xstp/README.md index c702670..09223b8 100644 --- a/roles/os9_xstp/README.md +++ b/roles/os9_xstp/README.md @@ -41,7 +41,7 @@ Role variables | ``mstp.state`` | string: absent,present\* | Deletes the configured MSTP if set to absent | os9 | | ``intf`` | list | Configures multiple spanning-tree in an interface (see ``intf.*``) | os9 | | ``intf <interface name>``| dictionary | Configures the interface name (see ``intf.<interface name>.*``) | os9 | -| ``intf.<interface name>.stp_type`` | list: stp,mstp,MSTi,pvst,rstp | Configures the list of spanning-tree in an interface | os9 | +| ``intf.<interface name>.stp_type`` | list: stp,mstp,pvst,rstp | Configures the list of spanning-tree in an interface | os9 | | ``intf.<interface name>.edge_port`` | boolean: true,false | in os9 devices according to the stp_type EdgePort is configured; | os9 | > **NOTE**: Asterisk (_*_) denotes the default value if none is specified.