diff --git a/geant/gap_ansible/roles/iptrunk_checks/tasks/check_optical_levels.yaml b/geant/gap_ansible/roles/iptrunk_checks/tasks/check_optical_levels.yaml index 2c1deecad63c693740a2bce89ef7c7f63aa4c8f2..b4b83f5c7bb081faab189f77afdcd2f8df702c9b 100644 --- a/geant/gap_ansible/roles/iptrunk_checks/tasks/check_optical_levels.yaml +++ b/geant/gap_ansible/roles/iptrunk_checks/tasks/check_optical_levels.yaml @@ -1,19 +1,12 @@ --- -############################################################################################################### -# The playbook does the following: -# -# -# - Runs the command 'show interfaces diagnostics optics {{ interface }} | no-more' and gets the json output -# - From json output it retrieves the apporpriate metrics for optical levels -# - Saves the metrics in relevant variable names -############################################################################################################### - - name: Get Junos attributes for optical levels of interface "{{ item }}" when: local_side.iptrunk_side_node.vendor == "juniper" block: - name: Run Juniper Optical info junipernetworks.junos.junos_command: - commands: "show interfaces diagnostics optics {{ item.interface_name }} | no-more" + commands: + # - show interfaces diagnostics optics {{ item.interface_name }} | no-more + - show interfaces terse {{ item.interface_name }} # display: json register: optical_status @@ -21,6 +14,13 @@ ansible.builtin.debug: msg: "{{ optical_status }}" + - name: Write output to the file + ansible.builtin.blockinfile: + path: "{{ opt_checks_file }}" + marker: "# {mark} --- {{ check | uppper }} check on {{ inventory_hostname }} for {{ item.interface_name }} ---" + append_newline: true + block: "{{ optical_status }}" + - name: Get Nokia optical levels on port "{{ item.interface_name }}" when: local_side.iptrunk_side_node.vendor == "nokia" block: @@ -35,7 +35,7 @@ content: | <global-operations xmlns="urn:nokia.com:sros:ns:yang:sr:oper-global"> <md-cli-raw-command> - <md-cli-input-line>show port {{ connector }} optical</md-cli-input-line> + <md-cli-input-line>show port {{ connector }} optical | match "Lane ID" pre-lines 1 post-lines 5</md-cli-input-line> </md-cli-raw-command> </global-operations> display: json diff --git a/geant/gap_ansible/roles/iptrunk_checks/tasks/main.yml b/geant/gap_ansible/roles/iptrunk_checks/tasks/main.yml index cbd64af784887bdad24857f496eac423e367e648..94f1ebebdd8ce327bcf2e7d7fe69f32a58afec5d 100644 --- a/geant/gap_ansible/roles/iptrunk_checks/tasks/main.yml +++ b/geant/gap_ansible/roles/iptrunk_checks/tasks/main.yml @@ -3,7 +3,7 @@ - name: Print the usage ansible.builtin.debug: msg: - - "Allowed checks: 'ping', 'isis'" + - "Allowed checks: 'ping', 'isis', 'lacp', 'optical_pre', 'optical_post'" when: (check is not defined) or (check not in checks) - name: Fail if arguments are not correct @@ -46,7 +46,33 @@ ansible.builtin.include_tasks: check_trunk_interface.yaml when: check == "ping" +- name: Set the optical checks results directory name + when: check == "optical_pre" or check == "optical_post" + ansible.builtin.set_fact: + opt_checks_dir: "/var/tmp/ansible_trunk_checks_{{ trunks[0].id }}" + +- name: Set the optical checks results file name + when: check == "optical_pre" or check == "optical_post" + ansible.builtin.set_fact: + opt_checks_file: "{{ opt_checks_dir }}/checks_{{ process_id }}.txt" + +- name: Create a folder for the optical check results + when: check == "optical_pre" or check == "optical_post" + ansible.builtin.file: + path: "{{ opt_checks_dir }}" + state: directory + mode: '0755' + delegate_to: localhost + +- name: Create file for the optical check results + when: check == "optical_pre" or check == "optical_post" + ansible.builtin.file: + path: "{{ opt_checks_file }}" + state: touch + mode: '0644' + delegate_to: localhost + - name: Check optical levels + when: check == "optical_pre" or check == "optical_post" ansible.builtin.include_tasks: check_optical_levels.yaml - when: check == "optical" loop: "{{ local_side.iptrunk_side_ae_members }}" diff --git a/geant/gap_ansible/roles/iptrunk_checks/vars/main.yml b/geant/gap_ansible/roles/iptrunk_checks/vars/main.yml index 703b85162c02de0e094a27c07f1098888f603ea5..c19b116ce29fbf598298c3cc9690fe0e3d84427f 100644 --- a/geant/gap_ansible/roles/iptrunk_checks/vars/main.yml +++ b/geant/gap_ansible/roles/iptrunk_checks/vars/main.yml @@ -6,7 +6,8 @@ checks: - isis - ping - lacp - - optical + - optical_pre + - optical_post ping_count: 3 ping_size: 9000