]> git.proxmox.com Git - pve-storage.git/commitdiff
iscis: add iscsi_session helper
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 3 Mar 2020 09:49:11 +0000 (10:49 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 3 Mar 2020 10:33:34 +0000 (11:33 +0100)
allows to write some code sligthly nicer

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
PVE/Storage/ISCSIPlugin.pm

index 2f917f4b871947e868bab6bb214fa8c091984e7a..546349ee4e21d84885bdc16427eae395b9b0e60c 100644 (file)
@@ -350,12 +350,17 @@ sub list_images {
     return $res;
 }
 
+sub iscsi_session {
+    my ($cache, $target) = @_;
+    $cache->{iscsi_sessions} = iscsi_session_list() if !$cache->{iscsi_sessions};
+    return $cache->{iscsi_sessions}->{$target};
+}
+
 sub status {
     my ($class, $storeid, $scfg, $cache) = @_;
 
-    $cache->{iscsi_sessions} = iscsi_session_list() if !$cache->{iscsi_sessions};
-
-    my $active = defined($cache->{iscsi_sessions}->{$scfg->{target}}) + 0;
+    my $session = iscsi_session($cache, $scfg->{target});
+    my $active = defined($session) ? 1 : 0;
 
     return (0, 0, 0, $active);
 }
@@ -365,15 +370,14 @@ sub activate_storage {
 
     return if !check_iscsi_support(1);
 
-    $cache->{iscsi_sessions} = iscsi_session_list() if !$cache->{iscsi_sessions};
+    my $session = iscsi_session($cache, $scfg->{target});
 
-    my $iscsi_sess = $cache->{iscsi_sessions}->{$scfg->{target}};
-    if (!defined ($iscsi_sess)) {
+    if (!defined ($session)) {
        eval { iscsi_login($scfg->{target}, $scfg->{portal}); };
        warn $@ if $@;
     } else {
        # make sure we get all devices
-       iscsi_session_rescan($iscsi_sess);
+       iscsi_session_rescan($session);
     }
 }
 
@@ -382,11 +386,7 @@ sub deactivate_storage {
 
     return if !check_iscsi_support(1);
 
-    $cache->{iscsi_sessions} = iscsi_session_list() if !$cache->{iscsi_sessions};
-
-    my $iscsi_sess = $cache->{iscsi_sessions}->{$scfg->{target}};
-
-    if (defined ($iscsi_sess)) {
+    if (defined(iscsi_session($cache, $scfg->{target}))) {
        iscsi_logout($scfg->{target}, $scfg->{portal});
     }
 }