mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
util: Remove disabling of autologin for iscsi-targets
https://bugzilla.redhat.com/show_bug.cgi?id=1331552 Instead of disabling auto-login of all scsi targets (even those that do not "belong" to libvirt), use iscsiadm's "--op nonpersistent" during discovery of iSCSI targets (e.g. "iscsiadm --mode discovery --type sendtargets") in order to avoid the node database being altered which led to the need for the "large hammer" approach taken by commit id '3c12b654'. This commit removes the virISCSITargetAutologin adjustment (eg. the setting of node.startup to "manual"). The iscsiadm command has supported this mode of operation as of commit id 'ad873767' to open-iscsi.
This commit is contained in:
parent
8f54e0d632
commit
56057900dc
@ -390,24 +390,9 @@ virISCSIGetTargets(char **const groups,
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
virISCSITargetAutologin(const char *portal,
|
||||
const char *initiatoriqn,
|
||||
const char *target,
|
||||
bool enable)
|
||||
{
|
||||
const char *extraargv[] = { "--op", "update",
|
||||
"--name", "node.startup",
|
||||
"--value", enable ? "automatic" : "manual",
|
||||
NULL };
|
||||
|
||||
return virISCSIConnection(portal, initiatoriqn, target, extraargv);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
virISCSIScanTargets(const char *portal,
|
||||
const char *initiatoriqn,
|
||||
const char *initiatoriqn ATTRIBUTE_UNUSED,
|
||||
size_t *ntargetsret,
|
||||
char ***targetsret)
|
||||
{
|
||||
@ -432,6 +417,7 @@ virISCSIScanTargets(const char *portal,
|
||||
"--mode", "discovery",
|
||||
"--type", "sendtargets",
|
||||
"--portal", portal,
|
||||
"--op", "nonpersistent",
|
||||
NULL);
|
||||
|
||||
memset(&list, 0, sizeof(list));
|
||||
@ -444,18 +430,6 @@ virISCSIScanTargets(const char *portal,
|
||||
&list, NULL, NULL) < 0)
|
||||
goto cleanup;
|
||||
|
||||
for (i = 0; i < list.ntargets; i++) {
|
||||
/* We have to ignore failure, because we can't undo
|
||||
* the results of 'sendtargets', unless we go scrubbing
|
||||
* around in the dirt in /var/lib/iscsi.
|
||||
*/
|
||||
if (virISCSITargetAutologin(portal,
|
||||
initiatoriqn,
|
||||
list.targets[i], false) < 0)
|
||||
VIR_WARN("Unable to disable auto-login on iSCSI target %s: %s",
|
||||
portal, list.targets[i]);
|
||||
}
|
||||
|
||||
if (ntargetsret && targetsret) {
|
||||
*ntargetsret = list.ntargets;
|
||||
*targetsret = list.targets;
|
||||
|
@ -90,7 +90,9 @@ static void testIscsiadmCb(const char *const*args,
|
||||
args[4] && STREQ(args[4], "sendtargets") &&
|
||||
args[5] && STREQ(args[5], "--portal") &&
|
||||
args[6] && STREQ(args[6], "10.20.30.40:3260,1") &&
|
||||
args[7] == NULL) {
|
||||
args[7] && STREQ(args[7], "--op") &&
|
||||
args[8] && STREQ(args[8], "nonpersistent") &&
|
||||
args[9] == NULL) {
|
||||
ignore_value(VIR_STRDUP(*output, iscsiadmSendtargetsOutput));
|
||||
} else {
|
||||
*status = -1;
|
||||
|
Loading…
Reference in New Issue
Block a user