Esempio n. 1
0
        public void Execute(Guid profileId)
        {
            IAwsClient awsClient;

            if (!TryInitializeClient(profileId, out awsClient))
            {
                return;
            }

            List <InstanceResource> awsInstances = awsClient.InstanceService.GetAllInstances().ToList();

            Dictionary <string, List <SecurityGroupResource> > securityGroupsFor = awsClient.SecurityGroupService.GetSecurityGroupMap(awsInstances);

            foreach (InstanceResource awsInstance in awsInstances)
            {
                List <SecurityGroupEntity> securityGroups = securityGroupsFor[awsInstance.InstanceId]
                                                            .Select(x => new SecurityGroupEntity {
                    Name = x.GroupName, ResourceId = x.GroupId
                }).ToList();

                string instanceId = awsInstance.InstanceId;

                InstanceEntity dbInstance = _instanceRepository.FindAll()
                                            .FirstOrDefault(x => StackItIdTagsMatch(x, awsInstance) || x.ResourceId == instanceId);
                InstanceEntity instanceToPersist = dbInstance ?? new InstanceEntity();

                SaveMechanic saveMechanic = dbInstance == null ? SaveMechanic.Add : SaveMechanic.Update;

                UpdateInstance.Map(awsInstance, instanceToPersist, saveMechanic);
                instanceToPersist.OwnerProfileId = profileId;
                instanceToPersist.SecurityGroups = securityGroups;
                UpdateInstance.Persist(_instanceRepository, instanceToPersist, saveMechanic);
            }
        }
 public void Setup()
 {
     AwsProfileRepositoryMock = new Mock<IRepository<AwsProfile>>();
     AwsClientFactoryMock = new Mock<IAwsClientFactory>();
     InstanceRepositoryMock = new Mock<IRepository<Instance>>();
     InstanceServiceMock = new Mock<IInstanceService>();
     Command = new UpdateInstance(AwsProfileRepositoryMock.Object, AwsClientFactoryMock.Object, InstanceRepositoryMock.Object);
 }