From c175b078e551294f7a9d098bb5460066e89cf4a4 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Mon, 9 Jul 2018 15:30:44 +0100 Subject: [PATCH] Fix handling of switch_type variable in Ansible 2.5 In Ansible, playbook group variables take precedence over inventory group variables. Typically in a kayobe-config we might specify the switch_type variable for a group containing switches using inventory group_vars. This seemed to work in Ansible 2.3, but since Ansible 2.4 the default value of None in kayobe's playbook group_vars takes precedence. This behaviour is as documented, not sure why it worked previously. This change removes the default value of None set in the playbook group_vars. Change-Id: I042ad8d115cdc0dd57a116e1be9d397ef4d216ae Story: 2002903 Task: 22870 --- ansible/group_vars/switches/type | 7 ------- ansible/physical-network.yml | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 7 deletions(-) delete mode 100644 ansible/group_vars/switches/type diff --git a/ansible/group_vars/switches/type b/ansible/group_vars/switches/type deleted file mode 100644 index 5f0ea8d1d..000000000 --- a/ansible/group_vars/switches/type +++ /dev/null @@ -1,7 +0,0 @@ ---- -############################################################################### -# Switch type configuration. - -# This configures the type of switch, which is used to determine how the switch -# will be configured. -switch_type: diff --git a/ansible/physical-network.yml b/ansible/physical-network.yml index 9166ada8e..f75061016 100644 --- a/ansible/physical-network.yml +++ b/ansible/physical-network.yml @@ -19,6 +19,12 @@ # Set this variable to True in order to display the candidate switch # configuration and exit without applying it. physical_network_display: False + # List of supported values for the 'switch_type' variable. + supported_switch_types: + - dell + - dell-powerconnect + - junos + - mellanox tasks: - name: Fail if both interface name and description limits are specified fail: @@ -29,6 +35,14 @@ - physical_network_interface_limit != '' - physical_network_interface_description_limit != '' + - name: Fail if the switch type is not defined + fail: + msg: > + The switch type is not defined or is unrecognised. Configure the type + of each host in the 'switches' group via the 'switch_type' variable. + when: switch_type is not defined or + switch_type not in supported_switch_types + - name: Group hosts by their switch type group_by: key: "switches_of_type_{{ switch_type }}"