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');