From 58ce401205634e0fbeb5acd528d64b5a664e6520 Mon Sep 17 00:00:00 2001 From: Samvaran kashyap rallabandi Date: Thu, 5 Mar 2020 10:12:04 -0500 Subject: [PATCH] Add libvirt mock tests to github actions --- .github/install_dependencies.sh | 6 + .github/run_libvirt_mocktests.sh | 37 +++++ .github/workflows/multicontainertesting.yml | 5 + linchpin/MockUtils/command_aas.data | 1 + linchpin/MockUtils/command_gxmldov.data | 1 + linchpin/MockUtils/command_mkisofs.data | 1 + linchpin/MockUtils/command_remove_cd.data | 1 + linchpin/MockUtils/copy_CISTMNN.data | 1 + linchpin/MockUtils/fail_fwicf.data | 1 + linchpin/MockUtils/file_ELIPDE.data | 1 + linchpin/MockUtils/get_url_DIS.data | 1 + linchpin/MockUtils/shell_MAIP.data | 1 + linchpin/MockUtils/stat_DISMT.data | 1 + linchpin/MockUtils/stat_DLCIE.data | 1 + linchpin/MockUtils/stat_LDSKAE.data | 1 + linchpin/MockUtils/virt_MSVAR.data | 1 + linchpin/MockUtils/virt_MSVARWPE.data | 1 + linchpin/MockUtils/virt_SVM.data | 1 + linchpin/MockUtils/virt_define_node.data | 1 + .../virt_does_node_already_exist.data | 1 + linchpin/MockUtils/virt_dump_node_data.data | 1 + linchpin/MockUtils/virt_msvmisd.data | 1 + linchpin/MockUtils/virt_net_facts.data | 1 + linchpin/MockUtils/virt_start_vm_again.data | 1 + linchpin/MockUtils/virt_vm_status.data | 1 + linchpin/MockUtils/xml_dump.data | 1 + linchpin/provision/action_plugins/command.py | 41 ++++++ linchpin/provision/action_plugins/fail.py | 32 ++++ linchpin/provision/action_plugins/file.py | 33 +++++ linchpin/provision/action_plugins/get_url.py | 33 +++++ linchpin/provision/action_plugins/stat.py | 39 +++++ linchpin/provision/action_plugins/virt.py | 69 +++++++++ linchpin/provision/action_plugins/virt_net.py | 33 +++++ linchpin/provision/action_plugins/xml.py | 34 +++++ .../roles/libvirt/tasks/copy_image_src.yml | 4 - .../libvirt/tasks/copy_image_src_local.yml | 22 ++- .../provision/roles/libvirt/tasks/main.yml | 1 + .../libvirt/tasks/provision_libvirt_node.yml | 137 +++++++++++------- .../libvirt/tasks/teardown_libvirt_node.yml | 2 +- 39 files changed, 485 insertions(+), 66 deletions(-) create mode 100644 .github/run_libvirt_mocktests.sh create mode 100644 linchpin/MockUtils/command_aas.data create mode 100644 linchpin/MockUtils/command_gxmldov.data create mode 100644 linchpin/MockUtils/command_mkisofs.data create mode 100644 linchpin/MockUtils/command_remove_cd.data create mode 100644 linchpin/MockUtils/copy_CISTMNN.data create mode 100644 linchpin/MockUtils/fail_fwicf.data create mode 100644 linchpin/MockUtils/file_ELIPDE.data create mode 100644 linchpin/MockUtils/get_url_DIS.data create mode 100644 linchpin/MockUtils/shell_MAIP.data create mode 100644 linchpin/MockUtils/stat_DISMT.data create mode 100644 linchpin/MockUtils/stat_DLCIE.data create mode 100644 linchpin/MockUtils/stat_LDSKAE.data create mode 100644 linchpin/MockUtils/virt_MSVAR.data create mode 100644 linchpin/MockUtils/virt_MSVARWPE.data create mode 100644 linchpin/MockUtils/virt_SVM.data create mode 100644 linchpin/MockUtils/virt_define_node.data create mode 100644 linchpin/MockUtils/virt_does_node_already_exist.data create mode 100644 linchpin/MockUtils/virt_dump_node_data.data create mode 100644 linchpin/MockUtils/virt_msvmisd.data create mode 100644 linchpin/MockUtils/virt_net_facts.data create mode 100644 linchpin/MockUtils/virt_start_vm_again.data create mode 100644 linchpin/MockUtils/virt_vm_status.data create mode 100755 linchpin/MockUtils/xml_dump.data create mode 100644 linchpin/provision/action_plugins/command.py create mode 100644 linchpin/provision/action_plugins/fail.py create mode 100644 linchpin/provision/action_plugins/file.py create mode 100644 linchpin/provision/action_plugins/get_url.py create mode 100644 linchpin/provision/action_plugins/stat.py create mode 100644 linchpin/provision/action_plugins/virt.py create mode 100644 linchpin/provision/action_plugins/virt_net.py create mode 100644 linchpin/provision/action_plugins/xml.py diff --git a/.github/install_dependencies.sh b/.github/install_dependencies.sh index 35f01b964..748b232a8 100644 --- a/.github/install_dependencies.sh +++ b/.github/install_dependencies.sh @@ -16,12 +16,16 @@ then yum install -y python3 epel-release which git wget; yum install -y python3-pip python3-flake8 python3-devel gcc; yum install -y python3-pytest; + yum install libvirt-devel -y; + yum install libguestfs-tools python-libguestfs -y; mkdir -p /github/home/.ssh/; elif [ $VERSION_ID = "7" ] then echo "This is centos7"; export LC_ALL="en_US"; export LANG="en_US"; + yum install libvirt-devel -y; + yum install libguestfs-tools python-libguestfs -y; yum install -y python3 epel-release which git wget; yum install -y python-pip python3-pip python3-devel gcc; pip install flake8; @@ -31,6 +35,8 @@ else echo "This is fedora"; export LC_ALL=C.UTF-8; export LANG=C.UTF-8; + yum install libvirt-devel -y; + yum install libguestfs-tools python-libguestfs -y; dnf install -y --nogpgcheck python3 git python3-pip python3-flake8 python3-devel gcc which wget; dnf install -y --nogpgcheck python3-pytest; mkdir -p /github/home/.ssh/; diff --git a/.github/run_libvirt_mocktests.sh b/.github/run_libvirt_mocktests.sh new file mode 100644 index 000000000..559450758 --- /dev/null +++ b/.github/run_libvirt_mocktests.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +echo "Hello this is first attempt to run linchpin provisioning in github actions" + + +VERSION_ID=$(cat /etc/*release | grep ^VERSION_ID | tr -d 'VERSION_ID="') + +echo $VERSION_ID + +if [ $VERSION_ID = "7" ] +then + echo "This is centos7"; + export LC_ALL="en_US"; + export LANG="en_US"; +fi + + +linchpin --version; + +mkdir /tmp/workspace/; +mkdir /root/.ssh/; + +cd /tmp/workspace/; + +echo $PWD; + +locale -a; + +echo $LC_ALL; +export $LANG; + +echo "RUNNING LIBVIRT MOCK TESTS"; + +linchpin init libvirt; +cd libvirt; +wget -O linchpin.conf https://raw.githubusercontent.com/CentOS-PaaS-SIG/linchpin/develop/docs/source/examples/workspaces/linchpin-mock.conf; +linchpin -vvvv up libvirt-custom-xml; +linchpin -vvvv destroy libvirt-custom-xml; diff --git a/.github/workflows/multicontainertesting.yml b/.github/workflows/multicontainertesting.yml index 73f8072f6..e101570c1 100644 --- a/.github/workflows/multicontainertesting.yml +++ b/.github/workflows/multicontainertesting.yml @@ -25,6 +25,7 @@ jobs: pip3 install pytest-runner pip3 install .[tests] pip3 install .[azure] + pip3 install .[libvirt] pip3 install zipp>=0.5 yum install -y nodejs ruby - name: Run unit tests @@ -36,6 +37,10 @@ jobs: - name: Run code complexity tests run: | radon cc -s --min C ./linchpin + - name: Run libvirt mock tests + run: | + chmod +x ./.github/run_libvirt_mocktests.sh + ./.github/run_libvirt_mocktests.sh - name: Run AWS mock tests run: | chmod +x ./.github/run_aws_mocktests.sh diff --git a/linchpin/MockUtils/command_aas.data b/linchpin/MockUtils/command_aas.data new file mode 100644 index 000000000..92e5b6c9f --- /dev/null +++ b/linchpin/MockUtils/command_aas.data @@ -0,0 +1 @@ +{"cmd": ["qemu-img", "resize", "/var/lib/libvirt/images/linchpin//centos71_0.qcow2", "+1G"], "stdout": "Image resized.", "stderr": "", "rc": 0, "start": "2020-03-18 15:14:39.775410", "end": "2020-03-18 15:14:39.820615", "delta": "0:00:00.045205", "changed": true, "invocation": {"module_args": {"_raw_params": "qemu-img resize /var/lib/libvirt/images/linchpin//centos71_0.qcow2 +1G", "warn": true, "_uses_shell": false, "stdin_add_newline": true, "strip_empty_ends": true, "argv": null, "chdir": null, "executable": null, "creates": null, "removes": null, "stdin": null}}, "stdout_lines": ["Image resized."], "stderr_lines": [], "failed": false, "definition": ["centos71", "/var/lib/libvirt/images/linchpin/", "qcow2", "1G", 0, "_"], "ansible_loop_var": "definition"} diff --git a/linchpin/MockUtils/command_gxmldov.data b/linchpin/MockUtils/command_gxmldov.data new file mode 100644 index 000000000..2da2adbc4 --- /dev/null +++ b/linchpin/MockUtils/command_gxmldov.data @@ -0,0 +1 @@ +{"cmd": ["virsh", "-c", "qemu:///system", "dumpxml", "centos71_0"], "stdout": "\n centos71_0\n d1737a4f-a94c-4102-96e0-0ad4b801a2df\n 524288\n 524288\n 1\n \n hvm\n \n \n \n \n \n \n \n \n \n \n \n Westmere\n \n \n \n destroy\n restart\n destroy\n \n /usr/bin/qemu-system-x86_64\n \n \n \n \n \n \n
\n \n \n \n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n \n
\n \n \n \n \n
\n \n \n \n
\n \n \n \n \n
\n \n \n \n \n
\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n