From c69d248484acc22674fa9ca7798cce3a38c4e0c6 Mon Sep 17 00:00:00 2001 From: Mark Buechler Date: Tue, 26 Jul 2011 17:03:15 +0000 Subject: [PATCH] - Forgot initiators within target groups. ALUA should be complete now. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@3766 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scstadmin/scstadmin.sysfs/scstadmin | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/scstadmin/scstadmin.sysfs/scstadmin b/scstadmin/scstadmin.sysfs/scstadmin index a72be1c4f..187c521c7 100755 --- a/scstadmin/scstadmin.sysfs/scstadmin +++ b/scstadmin/scstadmin.sysfs/scstadmin @@ -2242,6 +2242,19 @@ sub applyConfigDeviceGroups { } else { print "\t-> Target Group '$dgroup/$tgroup' is not in configuration. Use -force to remove.\n"; } + } else { + my $inits = $$dgroups{$dgroup}->{'tgroups'}->{$tgroup}->{'inits'}; + + foreach my $init (@{$inits}) { + if (!defined($$config{'DEVICE_GROUP'}->{$dgroup}->{'TARGET_GROUP'}->{$tgroup}->{'INITIATOR'}->{$init})) { + if ($deletions) { + removeTargetGroupInitiator($dgroup, $tgroup, $init); + $changes++; + } else { + print "\t-> Initiator '$dgroup/$tgroup/$init' is not in configuration. Use -force to remove.\n"; + } + } + } } } } @@ -2272,6 +2285,26 @@ sub applyConfigDeviceGroups { $changes++; } + my $inits = $$tgroups{$tgroup}->{'INITIATOR'}; + + foreach my $init (keys %{$inits}) { + if (!groupHasInitiator($CURRENT{'dgroups'}->{$dgroup}->{'tgroups'}->{$tgroup}->{'inits'}, $init)) { + addTargetGroupInitiator($dgroup, $tgroup, $init); + $changes++; + } + + my %_attributes; + foreach my $item (keys %{$$inits{$init}}) { + $_attributes{$item} = $$inits{$init}->{$item}; + } + + my $attributes = configToAttr(\%_attributes); + + if (scalar keys %{$attributes}) { + $changes += setTargetGroupInitiatorAttributes($dgroup, $tgroup, $init, $attributes); + } + } + my %_attributes; foreach my $item (keys %{$$tgroups{$tgroup}}) { next if ($item eq 'INITIATOR');