Blob Blame History Raw
From c81a60b88a477a2fb8a35e53b6e4da3a6029dfd0 Mon Sep 17 00:00:00 2001
Message-Id: <c81a60b88a477a2fb8a35e53b6e4da3a6029dfd0@dist-git>
From: John Ferlan <jferlan@redhat.com>
Date: Mon, 1 Aug 2016 13:31:53 -0400
Subject: [PATCH] iscsi: Establish connection to target via static target login

https://bugzilla.redhat.com/show_bug.cgi?id=1356436

Commit id '56057900' altered the discovery of iSCSI node targets by
using the "--op nonpersistent". This caused issues for clean environments
or if by chance a "-m node -o delete" was executed.

Since each iSCSI Storage Pool has the required iSCSI target path, use
that and the virISCSINodeNew API in order to generate the iSCSI node record.

(cherry picked from commit 5d8c31c6b202aa5ce4329042225bb40fec16baf9)
Signed-off-by: John Ferlan <jferlan@redhat.com>
---
 src/storage/storage_backend_iscsi.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/storage/storage_backend_iscsi.c b/src/storage/storage_backend_iscsi.c
index bb33da2..84ad6f3 100644
--- a/src/storage/storage_backend_iscsi.c
+++ b/src/storage/storage_backend_iscsi.c
@@ -353,11 +353,10 @@ virStorageBackendISCSIStartPool(virConnectPtr conn,
     if ((session = virStorageBackendISCSISession(pool, true)) == NULL) {
         if ((portal = virStorageBackendISCSIPortal(&pool->def->source)) == NULL)
             goto cleanup;
-        /*
-         * iscsiadm doesn't let you login to a target, unless you've
-         * first issued a 'sendtargets' command to the portal :-(
-         */
-        if (virISCSIScanTargets(portal, NULL, NULL) < 0)
+
+        /* Create a static node record for the IQN target. Must be done
+         * in order for login to the target */
+        if (virISCSINodeNew(portal, pool->def->source.devices[0].path) < 0)
             goto cleanup;
 
         if (virStorageBackendISCSISetAuth(portal, conn, &pool->def->source) < 0)
-- 
2.9.2