From 7b8abfb6693f1b1683a72e3e128049df30a2c49a Mon Sep 17 00:00:00 2001
From: Pierre Riteau <pierre@stackhpc.com>
Date: Thu, 1 Jun 2023 16:19:50 +0200
Subject: [PATCH] Install ncclient even in check mode

When running `kayobe physical network configure --check` against Juniper
switches, Kayobe may fail with the following error:

    Failed to import the required Python library (ncclient)

This is because the ncclient installation task is skipped by check mode.

Change-Id: I643f54a67edfe22a3fd5c86f157bd1246d617399
---
 ansible/roles/junos-switch/tasks/main.yml                    | 1 +
 .../notes/ncclient-install-check-mode-0cfc7e846f3a978a.yaml  | 5 +++++
 2 files changed, 6 insertions(+)
 create mode 100644 releasenotes/notes/ncclient-install-check-mode-0cfc7e846f3a978a.yaml

diff --git a/ansible/roles/junos-switch/tasks/main.yml b/ansible/roles/junos-switch/tasks/main.yml
index 7c3176d4..c06a377a 100644
--- a/ansible/roles/junos-switch/tasks/main.yml
+++ b/ansible/roles/junos-switch/tasks/main.yml
@@ -11,6 +11,7 @@
     name: "ncclient{{ ncclient_version }}"
     virtualenv: "{{ lookup('env', 'VIRTUAL_ENV') | default(omit, true) }}"
   become: "{{ lookup('env', 'VIRTUAL_ENV') == None }}"
+  check_mode: false
   run_once: true
 
 - name: Ensure Juniper switches are configured
diff --git a/releasenotes/notes/ncclient-install-check-mode-0cfc7e846f3a978a.yaml b/releasenotes/notes/ncclient-install-check-mode-0cfc7e846f3a978a.yaml
new file mode 100644
index 00000000..702d28fd
--- /dev/null
+++ b/releasenotes/notes/ncclient-install-check-mode-0cfc7e846f3a978a.yaml
@@ -0,0 +1,5 @@
+---
+fixes:
+  - |
+    Installs ``ncclient`` dependency for Juniper switch configuration when
+    using Ansible check mode.
-- 
GitLab