@@ -324,6 +324,8 @@ public AWSSessionManagerHostViewModel(IDialogCoordinator instance)
324
324
SettingsManager . Current . PropertyChanged += Current_PropertyChanged ;
325
325
SettingsManager . Current . AWSSessionManager_AWSProfiles . CollectionChanged += AWSSessionManager_AWSProfiles_CollectionChanged ;
326
326
327
+ SyncAllInstanceIDsFromAWS ( ) ;
328
+
327
329
_isLoading = false ;
328
330
}
329
331
@@ -446,7 +448,7 @@ private void EditGroupAction(object group)
446
448
ProfileDialogManager . ShowEditGroupDialog ( this , _dialogCoordinator , ProfileManager . GetGroup ( group . ToString ( ) ) ) ;
447
449
}
448
450
449
- private bool SyncInstanceIDsFromAWS_CanExecute ( object obj ) => ! IsSyncing && SettingsManager . Current . AWSSessionManager_EnableSyncInstanceIDsFromAWS ;
451
+ private bool SyncInstanceIDsFromAWS_CanExecute ( object obj ) => ! IsSyncing && IsSyncEnabled ;
450
452
451
453
public ICommand SyncAllInstanceIDsFromAWSCommand => new RelayCommand ( p => SyncAllInstanceIDsFromAWSAction ( ) , SyncInstanceIDsFromAWS_CanExecute ) ;
452
454
@@ -523,14 +525,27 @@ private void CheckSettings()
523
525
IsPowerShellConfigured = ! string . IsNullOrEmpty ( SettingsManager . Current . AWSSessionManager_ApplicationFilePath ) && File . Exists ( SettingsManager . Current . AWSSessionManager_ApplicationFilePath ) ;
524
526
}
525
527
528
+ private bool IsConfigured => IsAWSCLIInstalled && IsAWSSessionManagerPluginInstalled && IsPowerShellConfigured ;
529
+
526
530
private async Task SyncAllInstanceIDsFromAWS ( )
527
- {
528
- _log . Info ( "Sync all EC2 Instance(s) from AWS..." ) ;
531
+ {
532
+ if ( ! IsSyncEnabled )
533
+ {
534
+ _log . Info ( "Sync all EC2 instances from AWS is disabled in the settings." ) ;
535
+ return ;
536
+ }
537
+
538
+ _log . Info ( "Sync all EC2 instance(s) from AWS..." ) ;
529
539
530
- // Check if prerequisites are met
531
- if ( ! IsAWSCLIInstalled || ! IsAWSSessionManagerPluginInstalled )
540
+ if ( ! IsConfigured )
532
541
{
533
- _log . Warn ( $ "Prerequisites not met! AWS CLI installed { IsAWSCLIInstalled } . AWS Session Manager plugin installed { IsAWSSessionManagerPluginInstalled } ") ;
542
+ _log . Warn ( $ "Preconditions not met! AWS CLI installed { IsAWSCLIInstalled } . AWS Session Manager plugin installed { IsAWSSessionManagerPluginInstalled } . PowerShell configured { IsPowerShellConfigured } .") ;
543
+ return ;
544
+ }
545
+
546
+ if ( IsSyncing )
547
+ {
548
+ _log . Info ( "Skip... Sync is already running!" ) ;
534
549
return ;
535
550
}
536
551
@@ -545,7 +560,7 @@ private async Task SyncAllInstanceIDsFromAWS()
545
560
}
546
561
else
547
562
{
548
- _log . Warn ( "MainWindow is null!" ) ;
563
+ _log . Warn ( "Cannot find MainWindow because it is null!" ) ;
549
564
return ;
550
565
}
551
566
@@ -555,7 +570,7 @@ private async Task SyncAllInstanceIDsFromAWS()
555
570
{
556
571
if ( ! profile . IsEnabled )
557
572
{
558
- _log . Info ( $ "Sync EC2 Instance(s) for AWS profile \" [{ profile . Profile } \\ { profile . Region } ]\" is disabled! Skip... ") ;
573
+ _log . Info ( $ "Skip AWS profile \" [{ profile . Profile } \\ { profile . Region } ]\" because it is disabled!") ;
559
574
continue ;
560
575
}
561
576
@@ -669,7 +684,7 @@ private async Task SyncInstanceIDsFromAWS(string profile, string region)
669
684
if ( ProfileManager . GroupExists ( groupName ) )
670
685
ProfileManager . RemoveGroup ( ProfileManager . GetGroup ( groupName ) ) ;
671
686
672
- _log . Info ( "No EC2 Instance(s) found!" ) ;
687
+ _log . Info ( "No EC2 Instance(s) found!" ) ;
673
688
}
674
689
else
675
690
{
@@ -873,7 +888,9 @@ public void OnViewVisible(bool fromSettings)
873
888
874
889
RefreshProfiles ( ) ;
875
890
876
- if ( ! fromSettings && SettingsManager . Current . AWSSessionManager_EnableSyncInstanceIDsFromAWS )
891
+ // Do not synchronize If the view becomes visible again
892
+ // after the settings have been opened
893
+ if ( ! fromSettings )
877
894
SyncAllInstanceIDsFromAWS ( ) ;
878
895
}
879
896
@@ -884,8 +901,7 @@ public void OnViewHide()
884
901
885
902
public void OnProfileLoaded ( )
886
903
{
887
- if ( SettingsManager . Current . AWSSessionManager_EnableSyncInstanceIDsFromAWS )
888
- SyncAllInstanceIDsFromAWS ( ) ;
904
+ SyncAllInstanceIDsFromAWS ( ) ;
889
905
}
890
906
891
907
public void RefreshProfiles ( )
@@ -915,19 +931,16 @@ private void Current_PropertyChanged(object sender, PropertyChangedEventArgs e)
915
931
{
916
932
if ( e . PropertyName == nameof ( SettingsInfo . AWSSessionManager_EnableSyncInstanceIDsFromAWS ) )
917
933
{
918
- if ( SettingsManager . Current . AWSSessionManager_EnableSyncInstanceIDsFromAWS )
934
+ IsSyncEnabled = SettingsManager . Current . AWSSessionManager_EnableSyncInstanceIDsFromAWS ;
935
+
936
+ if ( IsSyncEnabled )
919
937
SyncAllInstanceIDsFromAWS ( ) ;
920
938
else
921
939
RemoveDynamicGroups ( ) ;
922
-
923
- IsSyncEnabled = SettingsManager . Current . AWSSessionManager_EnableSyncInstanceIDsFromAWS ;
924
940
}
925
941
926
942
if ( e . PropertyName == nameof ( SettingsInfo . AWSSessionManager_SyncOnlyRunningInstancesFromAWS ) )
927
- {
928
- if ( SettingsManager . Current . AWSSessionManager_EnableSyncInstanceIDsFromAWS )
929
- SyncAllInstanceIDsFromAWS ( ) ;
930
- }
943
+ SyncAllInstanceIDsFromAWS ( ) ;
931
944
932
945
if ( e . PropertyName == nameof ( SettingsInfo . AWSSessionManager_ApplicationFilePath ) )
933
946
CheckSettings ( ) ;
0 commit comments