From 2f2f25be8424003e8200a87cb594772fd6b8f3ed Mon Sep 17 00:00:00 2001 From: Stepan Blyshchak <38952541+stepanblyschak@users.noreply.github.com> Date: Tue, 29 Oct 2019 11:38:53 +0200 Subject: [PATCH] [mlnx][fanout] simplify mlnx pfc storm on fanout functionality (#1182) Signed-off-by: Stepan Blyschak --- ansible/plugins/connection/switch.py | 4 ++++ .../fanout/tasks/mlnx/check_pfcwd_fanout.yml | 4 ++-- .../fanout/tasks/mlnx/deploy_pfcwd_fanout.yml | 2 +- .../fanout/templates/mlnx_deploy_pfcwd_fanout.j2 | 5 ++--- .../test/files/mlnx/docker-tests-pfcgen/start.sh | 2 +- .../files/mlnx/docker-tests-saveargs/Dockerfile | 3 --- .../files/mlnx/docker-tests-saveargs/Makefile | 7 ------- .../files/mlnx/docker-tests-saveargs/save_args.sh | 3 --- ansible/roles/test/templates/pfc_storm_mlnx.j2 | 15 +++++++-------- .../roles/test/templates/pfc_storm_stop_mlnx.j2 | 11 +++++++---- 10 files changed, 24 insertions(+), 32 deletions(-) delete mode 100644 ansible/roles/test/files/mlnx/docker-tests-saveargs/Dockerfile delete mode 100644 ansible/roles/test/files/mlnx/docker-tests-saveargs/Makefile delete mode 100755 ansible/roles/test/files/mlnx/docker-tests-saveargs/save_args.sh diff --git a/ansible/plugins/connection/switch.py b/ansible/plugins/connection/switch.py index 812638d1eab..61a9653a972 100644 --- a/ansible/plugins/connection/switch.py +++ b/ansible/plugins/connection/switch.py @@ -203,6 +203,10 @@ def exec_command(self, *args, **kwargs): elif self.sku == 'eos': prompts = ['\$ '] + if self.sku in ('mlnx_os',): + # extend with default \u@\h:\w# for docker container prompts + prompts.extend(['%s@.*:.*#' % 'root']) + prompts.append(pexpect.EOF) stdout = "" diff --git a/ansible/roles/fanout/tasks/mlnx/check_pfcwd_fanout.yml b/ansible/roles/fanout/tasks/mlnx/check_pfcwd_fanout.yml index f0d5c9d1bda..84277685414 100644 --- a/ansible/roles/fanout/tasks/mlnx/check_pfcwd_fanout.yml +++ b/ansible/roles/fanout/tasks/mlnx/check_pfcwd_fanout.yml @@ -12,8 +12,8 @@ login: "{{ switch_login['MLNX-OS'] }}" - set_fact: - dockers_running: "{{output.stdout|search(\"args *storm_args\")|bool}}" - dockers_installed: "{{output.stdout|search(\"pfc_storm\") and output.stdout|search(\"storm_args\")|bool}}" + dockers_installed: "{{output.stdout|search(\"pfc_storm\")}}" + dockers_running: "{{output.stdout|search(\"storm\")|bool}}" - fail: msg="PFCWD dockers not installed" when: not dockers_installed diff --git a/ansible/roles/fanout/tasks/mlnx/deploy_pfcwd_fanout.yml b/ansible/roles/fanout/tasks/mlnx/deploy_pfcwd_fanout.yml index ef1d47ff825..caedf235adf 100644 --- a/ansible/roles/fanout/tasks/mlnx/deploy_pfcwd_fanout.yml +++ b/ansible/roles/fanout/tasks/mlnx/deploy_pfcwd_fanout.yml @@ -12,7 +12,7 @@ fanout_addr: "{{device_info['mgmtip']}}" ansible_ssh_user: "{{fanout_root_user}}" ansible_ssh_pass: "{{fanout_root_pass}}" - pfcwd_dockers: "['roles/test/files/mlnx/docker-tests-pfcgen/pfc_storm.tgz', 'roles/test/files/mlnx/docker-tests-saveargs/storm_args.tgz']" + pfcwd_dockers: "['roles/test/files/mlnx/docker-tests-pfcgen/pfc_storm.tgz']" fanout_img_path: "/var/opt/tms/images/" - name: Build containers to save storm arguments and to run storm diff --git a/ansible/roles/fanout/templates/mlnx_deploy_pfcwd_fanout.j2 b/ansible/roles/fanout/templates/mlnx_deploy_pfcwd_fanout.j2 index be7e0675f1e..379822a74a3 100644 --- a/ansible/roles/fanout/templates/mlnx_deploy_pfcwd_fanout.j2 +++ b/ansible/roles/fanout/templates/mlnx_deploy_pfcwd_fanout.j2 @@ -4,6 +4,5 @@ docker no shutdown ping -c 5 8.8.8.8 docker label storm docker load pfc_storm.tgz -docker load storm_args.tgz -docker start storm_args latest args init label storm privileged network sdk -docker start storm_args latest args now label storm privileged network sdk +docker start pfc_storm latest args init label storm privileged network sdk +docker start pfc_storm latest args now label storm privileged network sdk diff --git a/ansible/roles/test/files/mlnx/docker-tests-pfcgen/start.sh b/ansible/roles/test/files/mlnx/docker-tests-pfcgen/start.sh index 250a670d687..66aab6a250e 100755 --- a/ansible/roles/test/files/mlnx/docker-tests-pfcgen/start.sh +++ b/ansible/roles/test/files/mlnx/docker-tests-pfcgen/start.sh @@ -1,3 +1,3 @@ #!/bin/bash -/root/pfc_gen.py `cat /storm/args` +sleep inf diff --git a/ansible/roles/test/files/mlnx/docker-tests-saveargs/Dockerfile b/ansible/roles/test/files/mlnx/docker-tests-saveargs/Dockerfile deleted file mode 100644 index 9a84e876df8..00000000000 --- a/ansible/roles/test/files/mlnx/docker-tests-saveargs/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM debian:jessie - -COPY ./save_args.sh /root/ diff --git a/ansible/roles/test/files/mlnx/docker-tests-saveargs/Makefile b/ansible/roles/test/files/mlnx/docker-tests-saveargs/Makefile deleted file mode 100644 index d6b834e804a..00000000000 --- a/ansible/roles/test/files/mlnx/docker-tests-saveargs/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -all: save - -build: Dockerfile - docker build -t storm_args . - -save: build - docker save storm_args:latest | gzip >storm_args.tgz diff --git a/ansible/roles/test/files/mlnx/docker-tests-saveargs/save_args.sh b/ansible/roles/test/files/mlnx/docker-tests-saveargs/save_args.sh deleted file mode 100755 index dab1533c029..00000000000 --- a/ansible/roles/test/files/mlnx/docker-tests-saveargs/save_args.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -echo $@ >/storm/args diff --git a/ansible/roles/test/templates/pfc_storm_mlnx.j2 b/ansible/roles/test/templates/pfc_storm_mlnx.j2 index 758f27f8bdd..b7054a02c5c 100644 --- a/ansible/roles/test/templates/pfc_storm_mlnx.j2 +++ b/ansible/roles/test/templates/pfc_storm_mlnx.j2 @@ -1,17 +1,16 @@ -{% set container_name = "storm" ~ "_" ~ (1).__lshift__(pfc_queue_index) ~ "_" ~ pfc_frames_number ~ "_" ~ pfc_fanout_interface | replace("ernet 1/", "") | replace("/", "_") ~ "_" ~ ansible_eth0_ipv4_addr | replace(".", "_") %} +{% set container_name = "storm" %} enable configure terminal -docker no start {{ container_name }} + +docker exec {{ container_name }} /bin/bash +cd /root/ {% if (pfc_asym is defined) and (pfc_asym == True) %} -docker exec args "/root/save_args.sh -p {{pfc_queue_index}} -t 65535 -n {{pfc_frames_number}} -i {{pfc_fanout_interface | replace("ernet 1/", "") | replace("/", "_")}}" +{% if pfc_storm_defer_time is defined %} sleep {{pfc_storm_defer_time}} &&{% endif %} python {{pfc_gen_file}} -p {{pfc_queue_index}} -t 65535 -n {{pfc_frames_number}} -i {{pfc_fanout_interface | replace("ernet 1/", "") | replace("/", "_")}} & {% else %} -docker exec args "/root/save_args.sh -p {{(1).__lshift__(pfc_queue_index)}} -t 65535 -n {{pfc_frames_number}} -i {{pfc_fanout_interface | replace("ernet 1/", "") | replace("/", "_")}} -r {{ansible_eth0_ipv4_addr}}" +{% if pfc_storm_defer_time is defined %} sleep {{pfc_storm_defer_time}} &&{% endif %} python {{pfc_gen_file}} -p {{(1).__lshift__(pfc_queue_index)}} -t 65535 -n {{pfc_frames_number}} -i {{pfc_fanout_interface | replace("ernet 1/", "") | replace("/", "_")}} -r {{ansible_eth0_ipv4_addr}} & {% endif %} - -ping -c 3 127.0.0.1 -docker start pfc_storm latest {{ container_name }} now label storm privileged sdk network -ping -c 7 127.0.0.1 +exit exit exit diff --git a/ansible/roles/test/templates/pfc_storm_stop_mlnx.j2 b/ansible/roles/test/templates/pfc_storm_stop_mlnx.j2 index 8ba33b4ce0e..5d6235f1a8c 100644 --- a/ansible/roles/test/templates/pfc_storm_stop_mlnx.j2 +++ b/ansible/roles/test/templates/pfc_storm_stop_mlnx.j2 @@ -1,10 +1,13 @@ -{% set container_name = "storm" ~ "_" ~ (1).__lshift__(pfc_queue_index) ~ "_" ~ pfc_frames_number ~ "_" ~ pfc_fanout_interface | replace("ernet 1/", "") | replace("/", "_") ~ "_" ~ ansible_eth0_ipv4_addr | replace(".", "_") %} - +{% set container_name = "storm" %} enable configure terminal -docker no start {{ container_name }} -ping -c 7 127.0.0.1 +docker exec {{ container_name }} /bin/bash +cd /root/ + +{% if pfc_storm_stop_defer_time is defined %} sleep {{pfc_storm_stop_defer_time}} &&{% endif %} pkill -f "python {{pfc_gen_file}} -p {{(1).__lshift__(pfc_queue_index)}} -t 65535 -n {{pfc_frames_number}} -i {{pfc_fanout_interface | replace("ernet 1/", "") | replace("/", "_")}} -r {{ansible_eth0_ipv4_addr}}" {% if pfc_storm_stop_defer_time is defined %}&{% endif %} + +exit exit exit