public UpdateAzureVMImageCmdletInfo(
     string imageName,
     string label,
     InstanceSize? recommendedSize,
     string description,
     string eula,
     string imageFamily,
     Uri privacyUri,
     DateTime publishedDate)
     : this(imageName, label, recommendedSize)
 {
     if (!string.IsNullOrEmpty(description))
     {
         cmdletParams.Add(new CmdletParam("Description", description));
     }
     if (!string.IsNullOrEmpty(eula))
     {
         cmdletParams.Add(new CmdletParam("Eula", eula));
     }
     if (!string.IsNullOrEmpty(imageFamily))
     {
         cmdletParams.Add(new CmdletParam("ImageFamily", imageFamily));
     }
     if (privacyUri != null)
     {
         cmdletParams.Add(new CmdletParam("PrivacyUri", privacyUri.ToString()));
     }
     if (publishedDate != null)
     {
         cmdletParams.Add(new CmdletParam("PublishedDate", publishedDate.ToString()));
     }
 }
 public NewAzureQuickVMCmdletInfo(OS os, string name, string serviceName, string imageName, string userName, string password, string locationName, InstanceSize? instanceSize)
     : this(os, name, serviceName, imageName, userName, password, locationName)
 {
     if (instanceSize.HasValue)
     {
         cmdletParams.Add(new CmdletParam("InstanceSize", instanceSize.ToString()));
     }               
 }
Ejemplo n.º 3
0
        public PersistentVM CreateIaaSVMObjectWithDisk(string vmName, InstanceSize size, string imageName, bool isWindows, string username, string password)
        {
            PersistentVM           vm = Utilities.CreateIaaSVMObject(vmName, InstanceSize.Small, imageName, isWindows, username, password);
            AddAzureDataDiskConfig azureDataDiskConfigInfo1 = new AddAzureDataDiskConfig(DiskCreateOption.CreateNew, diskSize1, diskLabel1, lunSlot1, cahcing.ToString());

            azureDataDiskConfigInfo1.Vm = vm;
            return(vmPowershellCmdlets.AddAzureDataDisk(azureDataDiskConfigInfo1));
        }
 public AddAzureVMImageCmdletInfo(string imageName, string mediaLocation, OS os, string label, InstanceSize? recommendedSize)
     : this(imageName, mediaLocation, os, label)
 {
     if (recommendedSize.HasValue)
     {
         cmdletParams.Add(new CmdletParam("RecommendedVMSize", recommendedSize));
     }
 }
 public UpdateAzureVMImageCmdletInfo(string imageName, string label, InstanceSize? recommendedSize)
     : this(imageName, label)
 {
     if (recommendedSize.HasValue)
     {
         cmdletParams.Add(new CmdletParam("RecommendedVMSize", recommendedSize));
     }
 }
        public NewAzureQuickVMCmdletInfo(OS os, string name, string serviceName, string imageName, string userName, string password, string locationName, InstanceSize? instanceSize, string disableWinRMHttps)
            : this(os, name, serviceName, imageName, userName, password, locationName, instanceSize)
        {
            if (!string.IsNullOrEmpty(disableWinRMHttps))
            {

                cmdletParams.Add(new CmdletParam("DisableWinRMHttps",disableWinRMHttps));
            }

        }
        public Instance GenerateInstance(
            InstanceSize instanceSize,
            int repetition)
        {
            var jobs = new List <Job>();

            foreach (var jobIndex in Enumerable.Range(0, instanceSize.JobsCount))
            {
                var processingTime = this.random.Next(1, this.specializedPrescription.MaxProcessingTime + 1);

                jobs.Add(new Job(
                             jobIndex,
                             jobIndex,
                             0,
                             processingTime));
            }

            var energyCosts = Enumerable
                              .Range(0, instanceSize.IntervalsCount)
                              .Select(_ => this.random.Next(1, this.specializedPrescription.MaxEnergyCost + 1))
                              .ToArray();
            var intervals = Enumerable
                            .Range(0, instanceSize.IntervalsCount)
                            .Select(intervalIdx =>
                                    new Interval(intervalIdx, LengthInterval * intervalIdx, LengthInterval * (intervalIdx + 1), energyCosts[intervalIdx]))
                            .ToArray();

            var metadata = new {
                instanceSize.IntervalsCount,
                instanceSize.JobsCount,
                repetition
            };

            return(new Instance(
                       machinesCount: 1,
                       jobs: jobs.ToArray(),
                       intervals: intervals,
                       lengthInterval: LengthInterval,
                       offOnTime: this.stateDiagram.OffOnTime,
                       onOffTime: this.stateDiagram.OnOffTime,
                       offOnPowerConsumption: this.stateDiagram.OffOnPowerConsumption,
                       onOffPowerConsumption: this.stateDiagram.OnOffPowerConsumption,
                       offIdleTime: this.stateDiagram.OffIdleTime,
                       idleOffTime: this.stateDiagram.IdleOffTime,
                       offIdlePowerConsumption: this.stateDiagram.OffIdlePowerConsumption,
                       idleOffPowerConsumption: this.stateDiagram.IdleOffPowerConsumption,
                       onPowerConsumption: this.stateDiagram.OnPowerConsumption,
                       idlePowerConsumption: this.stateDiagram.IdlePowerConsumption,
                       offPowerConsumption: this.stateDiagram.OffPowerConsumption,
                       metadata: metadata));
        }
        public static PersistentVM CreateIaaSVMObject(string vmName, InstanceSize size, string imageName, bool isWindows = true, string username = null, string password = null, bool disableGuestAgent = false)
        {
            //Create an IaaS VM
            var azureVMConfigInfo = new AzureVMConfigInfo(vmName, size.ToString(), imageName);
            AzureProvisioningConfigInfo azureProvisioningConfig = null;

            if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(username))
            {
                azureProvisioningConfig = new AzureProvisioningConfigInfo(isWindows ? OS.Windows:OS.Linux, username, password, disableGuestAgent);
            }
            var persistentVMConfigInfo = new PersistentVMConfigInfo(azureVMConfigInfo, azureProvisioningConfig, null, null);

            return(vmPowershellCmdlets.GetPersistentVM(persistentVMConfigInfo));
        }
Ejemplo n.º 9
0
        //these constructors used for specifying roles for CreateVirtualMachineDeployment and AddVirtualMachineRole
        public PersistentVMRole(string name, ProvisioningConfigurationSet provisioningConfigurationSet, OSVirtualHardDisk osDisk,
                                NetworkConfigurationSet networkConfigurationSet = null, string availabilitySetName = null,
                                DataVirtualHardDiskCollection dataDisks = null, InstanceSize roleSize = InstanceSize.Small)
        {
            //TODO: Validate Params!
            this.Name = name;
            this.RoleType = "PersitentVMRole";
            this.ConfigurationSets = new List<ConfigurationSet>();
            this.ConfigurationSets.Add(provisioningConfigurationSet);
            if (networkConfigurationSet != null)
            {
                this.ConfigurationSets.Add(networkConfigurationSet);
            }

            this.OSVirtualHardDisk = osDisk;
            this.AvailabilitySetName = availabilitySetName;
            this.DataVirtualHardDisks = dataDisks;
            this.RoleSize = roleSize;
        }
Ejemplo n.º 10
0
        private bool FindIfDeployedInstanceSizesExceedWhiteListConfiguration(ISubscription subscription, string hostedServiceName, WhiteListService whiteListService, string deploymentSlot)
        {
            if (whiteListService.Roles.Count == 0)
            {
                // No explicit roles configured, so just allow whatever is there.
                return(false);
            }

            foreach (WhiteListRole whiteListRole in whiteListService.Roles)
            {
                if (whiteListRole.MaxInstanceSize.HasValue)
                {
                    string       actualInstanceSizeValue = this.deployment.GetInstanceSize(subscription.SubscriptionId, subscription.CertificateThumbprint, hostedServiceName, deploymentSlot, whiteListRole.Name);
                    InstanceSize actualInstanceSize      = (InstanceSize)Enum.Parse(typeof(InstanceSize), actualInstanceSizeValue);
                    if (actualInstanceSize > whiteListRole.MaxInstanceSize.Value)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Ejemplo n.º 11
0
 public AzureVMConfigInfo(string vmName, InstanceSize vmSize, string imageName)
 {
     this.vmName    = vmName;
     this.vmSize    = vmSize;
     this.imageName = imageName;
 }
Ejemplo n.º 12
0
 public IDatabaseInstance AddDatabase(PostgresEngineVersion databaseEngineVersion, string identification, string databaseName, string userName, string password, StorageType storageType, InstanceClass instanceClass, InstanceSize instanceSize, IVpc vpc, string securityGroupId, string securityGroupName, string parameterGroupId = null, IRole[] roles = null, double?allocatedStorageGb = 5, RemovalPolicy removalPolicy = RemovalPolicy.DESTROY, bool deleteAutomatedBackups = false, int backupRetentionDays = 1, bool deletionProtection = false, SubnetType subnetType = SubnetType.PUBLIC, bool allowGroupAllOutbound = true, string defaultSubnetDomainSeparator = ",")
 {
     return(AwsCdkDatabaseHandler.CreateDatabase(databaseEngineVersion, identification, databaseName, userName, password, storageType,
                                                 instanceClass, instanceSize, vpc, securityGroupId, securityGroupName, parameterGroupId, roles, allocatedStorageGb, removalPolicy, deleteAutomatedBackups,
                                                 backupRetentionDays, deletionProtection, subnetType, defaultSubnetDomainSeparator));
 }
Ejemplo n.º 13
0
 public IDatabaseCluster AddDatabase(AuroraPostgresEngineVersion databaseEngineVersion, string identification, string clusterIdentifier, string instanceIdentifierBase, string databaseName, double?port, double?instances, string userName, string secretName, IVpc vpc, InstanceClass instanceClass, InstanceSize instanceSize, string securityId, string securityGroupId, string parameterGroupId = null, IRole[] roles = null, bool storageEncrypted = true, SubnetType subnetType = SubnetType.PRIVATE, string subnets = "", RemovalPolicy removalPolicy = RemovalPolicy.DESTROY, int backupRetentionDays = 1, bool deletionProtection = false, string defaultSubnetDomainSeparator = ",")
 {
     return(AwsCdkDatabaseHandler.CreateDatabaseCluster(databaseEngineVersion, identification, clusterIdentifier,
                                                        instanceIdentifierBase, databaseName, port, instances, userName, secretName, vpc, instanceClass,
                                                        instanceSize, securityId, securityGroupId, parameterGroupId, roles, storageEncrypted, subnetType, defaultSubnetDomainSeparator, subnets, removalPolicy, backupRetentionDays));
 }
Ejemplo n.º 14
0
 public PersistentVM CreateIaaSVMObjectWithDisk(string vmName, InstanceSize size, string imageName, bool isWindows, string username, string password)
 {
     PersistentVM vm = Utilities.CreateIaaSVMObject(vmName, InstanceSize.Small, imageName, isWindows, username, password);
     AddAzureDataDiskConfig azureDataDiskConfigInfo1 = new AddAzureDataDiskConfig(DiskCreateOption.CreateNew, diskSize1, diskLabel1, lunSlot1,cahcing.ToString());
     azureDataDiskConfigInfo1.Vm = vm;
     return vmPowershellCmdlets.AddAzureDataDisk(azureDataDiskConfigInfo1);
 }
        public NewAzureQuickVMCmdletInfo(

            OS os,
            string userName,
            string affinityGroup, 
            string availabilitySetName, 
            CertificateSettingList certificates, 
            DnsServer[] dnsSettings, 
            string hostCaching,
            string imageName,
            InstanceSize? instanceSize,            
            string location,
            string mediaLocation,
            string name,
            string password,
            string serviceName,
            LinuxProvisioningConfigurationSet.SSHKeyPairList sshKeyPairs,
            LinuxProvisioningConfigurationSet.SSHPublicKeyList sshPublicKeys,
            string[] subnetNames,
            string vnetName )
            : this(os, name, serviceName, imageName, userName, password, location, instanceSize)
        {
            
            if (!string.IsNullOrEmpty(affinityGroup))
            {
                cmdletParams.Add(new CmdletParam("AffinityGroup", affinityGroup));
            }
            if (!string.IsNullOrEmpty(availabilitySetName))
            {
                cmdletParams.Add(new CmdletParam("AvailabilitySetName", availabilitySetName));
            }
            if (certificates != null)
            {
                cmdletParams.Add(new CmdletParam("Certificates", certificates));
            }
            if (dnsSettings != null)
            {
                cmdletParams.Add(new CmdletParam("DnsSettings", dnsSettings));
            }
            if (!string.IsNullOrEmpty(hostCaching))
            {
                cmdletParams.Add(new CmdletParam("HostCaching", hostCaching));
            }                                                                     
            if (!string.IsNullOrEmpty(mediaLocation))
            {
                cmdletParams.Add(new CmdletParam("MediaLocation", mediaLocation));
            }                                    
            if (sshKeyPairs != null)
            {
                cmdletParams.Add(new CmdletParam("SSHKeyPairs", sshKeyPairs));
            }
            if (sshPublicKeys != null)
            {
                cmdletParams.Add(new CmdletParam("SSHPublicKeys", sshPublicKeys));
            }
            if (subnetNames != null)
            {
                cmdletParams.Add(new CmdletParam("SubnetNames", subnetNames));
            }
            if (!string.IsNullOrEmpty(vnetName))
            {
                cmdletParams.Add(new CmdletParam("VNetName", vnetName));
            }                               
        }
Ejemplo n.º 16
0
 public SetAzureVMSizeConfig(InstanceSize instanceSize)
 {
     this.instanceSize = instanceSize;
 }
Ejemplo n.º 17
0
 public OSImageContext AddAzureVMImage(string imageName, string mediaLocation, OS os, InstanceSize recommendedSize)
 {
     return(RunPSCmdletAndReturnFirst <OSImageContext>(new AddAzureVMImageCmdletInfo(imageName, mediaLocation, os, null, recommendedSize)));
 }
        public NewAzureQuickVMCmdletInfo(OS os, string name, string serviceName, string imageName, InstanceSize? instanceSize, string userName, string password, string vNetName, string[] subnetNames, string affinityGroup)
            : this(os, name, serviceName, imageName, userName, password)
        {
            if (!string.IsNullOrEmpty(affinityGroup))
            {
                cmdletParams.Add(new CmdletParam("AffinityGroup", affinityGroup));
            }
            if (instanceSize.HasValue)
            {
                cmdletParams.Add(new CmdletParam("InstanceSize", instanceSize.ToString()));
            }
            if (!string.IsNullOrEmpty(vNetName))
            {
                cmdletParams.Add(new CmdletParam("VNetName", vNetName));
            }
            if (subnetNames != null)
            {
                cmdletParams.Add(new CmdletParam("SubnetNames", subnetNames));
            }                      

        }
 public IDatabaseInstance AddDatabase(MysqlEngineVersion databaseEngineVersion, string identification, string databaseName, double?port, string userName, ISecret passwordSecret, StorageType storageType, InstanceClass instanceClass, InstanceSize instanceSize, IVpc vpc, ISecurityGroup securityGroup, ISubnetGroup subnetGroup, IParameterGroup parameterGroup = null, double?allocatedStorageGb = 5, RemovalPolicy removalPolicy = RemovalPolicy.DESTROY, bool deleteAutomatedBackups = false, int backupRetentionDays = 1, bool deletionProtection = false, string[] logTypes = null, bool?storageEncrypted = null, bool?enableIamAuthentication = null, Duration enhancedMonitoringInterval = null, bool multiAZEnabled = true, bool autoMinorVersionUpgrade = false)     //NOSONAR number of params
 {
     return(HandlerResources.AwsCdkDatabaseHandler.CreateDatabase(databaseEngineVersion, identification, databaseName, port, userName, passwordSecret, storageType,
                                                                  instanceClass, instanceSize, vpc, securityGroup, subnetGroup, parameterGroup, allocatedStorageGb, removalPolicy, deleteAutomatedBackups,
                                                                  backupRetentionDays, deletionProtection, logTypes, storageEncrypted, enableIamAuthentication, enhancedMonitoringInterval, multiAZEnabled, autoMinorVersionUpgrade));
 }
        private string Deployment2AwsArgs(string tag           = "",
                                          string InstanceType  = "c4.4xlarge",
                                          string AwsRegion     = "us-east-1",                           /* AU ap-southeast-2. KR ap-northeast-2 */
                                          string Region        = "NA",                                  /* KR South Korea. AU Australia */
                                          int InstanceSize     = 1,
                                          int InstanceSizeMin  = 1,
                                          int InstanceSizeMax  = 6,
                                          string AutoscalerId  = "default",
                                          string ExtraCliArgs  = "",
                                          string HubServerName = "")
        {
            string AwsCredentialsFile = "AwsDedicatedServerCredentialsDecoded.txt";

            int LocalCpuBudget = CpuBudget;

            if (InstanceSize == 0)
            {
                InstanceSizeMin = 0;
                InstanceSizeMax = 0;
            }
            else if (InstanceSizeMin > InstanceSize)
            {
                InstanceSize = InstanceSizeMin;
            }

            string CredentialsFilePath = GetUtilitiesFilePath(AwsCredentialsFile);
            string AwsCredentials      = ReadFileContents(CredentialsFilePath);

            string[] AwsCredentialsList = AwsCredentials.Split(':');

            if (AwsCredentialsList.Length != 2)
            {
                throw new AutomationException("Unable to parse credentials from file {0} {1}",
                                              AwsCredentialsFile, AwsCredentials);
            }

            string AwsAccessKey = AwsCredentialsList[0];

            Byte[] AwsAccessSecretKeyBytes = System.Text.Encoding.UTF8.GetBytes(AwsCredentialsList[1]);

            Byte[] CliArgBytes;
            if (HubServerName != "")
            {
                CliArgBytes    = System.Text.Encoding.UTF8.GetBytes("UnrealTournament ut-entry?game=lobby?ServerName=\"" + HubServerName + "\" -nocore -epicapp=" + AppName.ToString() + " " + ExtraCliArgs);
                LocalCpuBudget = 32000;
            }
            else
            {
                CliArgBytes = System.Text.Encoding.UTF8.GetBytes("UnrealTournament ut-entry?game=empty?region=" + Region + " -epicapp=" + AppName.ToString() + " " + ExtraCliArgs);
            }
            Byte[] BuildStringBytes = System.Text.Encoding.UTF8.GetBytes(BuildString);

            string CloudArgs = "epic_game_name=" + GameNameShort + "&" +
                               "epic_game_binary=" + this.GameBinary + "&" +
                               "epic_game_binary_path=" + this.GameBinaryPath + "&" +
                               "epic_game_log_path=" + this.GameLogPath + "&" +
                               "epic_game_saved_path=" + this.GameSavedPath + "&" +
                               "epic_game_max_match_length=" + this.MaxMatchLength.ToString() + "&" +
                               "epic_game_ttl_interval=" + this.TtlInterval.ToString() + "&" +
                               "epic_install_sumo=" + this.InstallSumo + "&" +
                               "epic_game_tag=" + GetTag(AppName, Region, tag) + "&" +
                               "epic_game_version=" + Changelist.ToString() + "&" +
                               "epic_game_buildstr_base64=" + System.Convert.ToBase64String(BuildStringBytes) + "&" +
                               "epic_game_cpu_budget=" + LocalCpuBudget + "&" +
                               "epic_game_ram_budget=" + RamBudget + "&" +
                               "epic_game_environment=" + AppName.ToString() + "&" +
                               "epic_instance_size=" + InstanceSize.ToString() + "&" +
                               "epic_instance_min=" + InstanceSizeMin.ToString() + "&" +
                               "epic_instance_max=" + InstanceSizeMax.ToString() + "&" +
                               "epic_autoscaler_id=" + AutoscalerId + "&" +
                               "epic_aws_access_key=" + AwsAccessKey + "&" +
                               "epic_aws_base64_secret_key=" + System.Convert.ToBase64String(AwsAccessSecretKeyBytes) + "&" +
                               "epic_aws_instance_type=" + InstanceType + "&" +
                               "epic_aws_region=" + AwsRegion + "&" +
                               "epic_game_base64_cli_args=" + System.Convert.ToBase64String(CliArgBytes);

            return(CloudArgs);
        }
        public IDatabaseInstance CreateDatabase(DeputyBase databaseEngineVersion, string identification, string databaseName, double?port, string userName, string secretName, StorageType storageType, InstanceClass instanceClass, InstanceSize instanceSize, IVpc vpc, string securityId, string securityGroupId, string parameterGroupId = null, IRole[] roles = null, double?allocatedStorageGb = 5, RemovalPolicy removalPolicy = RemovalPolicy.DESTROY, bool deleteAutomatedBackups = false, int backupRetentionDays = 1, bool deletionProtection = false, SubnetType subnetType = SubnetType.PRIVATE_ISOLATED, string defaultSubnetDomainSeparator = ",", string subnets = "", bool multiAZEnabled = true, bool autoMinorVersionUpgrade = false, bool?storageEncrypted = true)
        {
            BasicDatabaseInfra(vpc, secretName, securityId, securityGroupId, subnetType, defaultSubnetDomainSeparator, subnets, out var securityGroup, out var secret, out var subnetSelection);
            var engine = GetInstanceEngine(databaseEngineVersion);

            return(new DatabaseInstance(Scope, identification, new DatabaseInstanceProps
            {
                Engine = engine,
                RemovalPolicy = removalPolicy,
                DeletionProtection = deletionProtection,
                Credentials = Credentials.FromPassword(userName, secret.SecretValue),
                StorageType = storageType,
                DatabaseName = databaseName,
                Port = port,
                VpcSubnets = subnetSelection,
                Vpc = vpc,
                SecurityGroups = new[]
                {
                    securityGroup
                },
                DeleteAutomatedBackups = deleteAutomatedBackups,
                BackupRetention = Duration.Days(backupRetentionDays),
                AllocatedStorage = allocatedStorageGb,
                InstanceType = InstanceType.Of(instanceClass, instanceSize),
                ParameterGroup = CreateClusterParameterGroup(parameterGroupId, engine, roles),
                MultiAz = multiAZEnabled,
                AutoMinorVersionUpgrade = autoMinorVersionUpgrade,
                StorageEncrypted = storageEncrypted
            }));
        }
        /// <summary>
        /// AwsCdkDatabaseHandler
        /// </summary>
        /// <param name="databaseEngineVersion"></param>
        /// <param name="identification"></param>
        /// <param name="clusterIdentifier"></param>
        /// <param name="instanceIdentifierBase"></param>
        /// <param name="databaseName"></param>
        /// <param name="port"></param>
        /// <param name="instances"></param>
        /// <param name="userName"></param>
        /// <param name="secretName"></param>
        /// <param name="vpc"></param>
        /// <param name="instanceClass"></param>
        /// <param name="instanceSize"></param>
        /// <param name="securityId"></param>
        /// <param name="securityGroupId"></param>
        /// <param name="parameterGroupId"></param>
        /// <param name="roles"></param>
        /// <param name="storageEncrypted"></param>
        /// <param name="subnetType"></param>
        /// <param name="defaultSubnetDomainSeparator"></param>
        /// <param name="subnets"></param>
        /// <param name="removalPolicy"></param>
        /// <param name="backupRetentionDays"></param>
        /// <param name="deletionProtection"></param>
        public IDatabaseCluster CreateDatabaseCluster(DeputyBase databaseEngineVersion, string identification, string clusterIdentifier, string instanceIdentifierBase, string databaseName, double?port, double?instances, string userName, string secretName, IVpc vpc, InstanceClass instanceClass, InstanceSize instanceSize, string securityId, string securityGroupId, string parameterGroupId = null, IRole[] roles = null, bool storageEncrypted = true, SubnetType subnetType = SubnetType.PRIVATE_ISOLATED, string defaultSubnetDomainSeparator = ",", string subnets = "", RemovalPolicy removalPolicy = RemovalPolicy.DESTROY, int backupRetentionDays = 1, bool deletionProtection = false)
        {
            BasicDatabaseInfra(vpc, secretName, securityId, securityGroupId, subnetType, defaultSubnetDomainSeparator, subnets, out var securityGroup, out var secret, out var subnetSelection);
            var engine = GetClusterEngine(databaseEngineVersion);

            return(new DatabaseCluster(Scope, identification, new DatabaseClusterProps
            {
                ClusterIdentifier = clusterIdentifier,
                InstanceIdentifierBase = instanceIdentifierBase,
                Engine = engine,
                RemovalPolicy = removalPolicy,
                DeletionProtection = deletionProtection,
                Port = port,
                InstanceProps = new Amazon.CDK.AWS.RDS.InstanceProps
                {
                    InstanceType = InstanceType.Of(instanceClass, instanceSize),
                    VpcSubnets = subnetSelection,
                    Vpc = vpc,
                    SecurityGroups = new[]
                    {
                        securityGroup
                    }
                },
                StorageEncrypted = storageEncrypted,
                Instances = instances,
                Credentials = Credentials.FromPassword(userName, secret.SecretValue),
                DefaultDatabaseName = databaseName,
                ParameterGroup = CreateClusterParameterGroup(parameterGroupId, engine, roles),
                Backup = new BackupProps
                {
                    Retention = Duration.Days(backupRetentionDays)
                }
            }));
        }
        public IDatabaseInstance CreateDatabase(DeputyBase databaseEngineVersion, string identification, string databaseName, double?port, string userName, ISecret passwordSecret, StorageType storageType, InstanceClass instanceClass, InstanceSize instanceSize, IVpc vpc, ISecurityGroup securityGroup, ISubnetGroup subnetGroup, IParameterGroup parameterGroup = null, double?allocatedStorageGb = 5, RemovalPolicy removalPolicy = RemovalPolicy.DESTROY, bool deleteAutomatedBackups = false, int backupRetentionDays = 1, bool deletionProtection = false, string[] logTypes = null, bool?storageEncrypted = null, bool?enableIamAuthentication = false, Duration enhancedMonitoringInterval = null, bool multiAZEnabled = true, bool autoMinorVersionUpgrade = false)
        {
            BasicDatabaseInfra(vpc);
            var engine = GetInstanceEngine(databaseEngineVersion);

            return(new DatabaseInstance(Scope, identification, new DatabaseInstanceProps
            {
                Engine = engine,
                RemovalPolicy = removalPolicy,
                DeletionProtection = deletionProtection,
                Credentials = Credentials.FromPassword(userName, passwordSecret.SecretValue),
                StorageType = storageType,
                DatabaseName = databaseName,
                Port = port,
                SubnetGroup = subnetGroup,
                Vpc = vpc,
                SecurityGroups = new[]
                {
                    securityGroup
                },
                DeleteAutomatedBackups = deleteAutomatedBackups,
                BackupRetention = Duration.Days(backupRetentionDays),
                AllocatedStorage = allocatedStorageGb,
                InstanceType = InstanceType.Of(instanceClass, instanceSize),
                ParameterGroup = parameterGroup,
                CloudwatchLogsExports = logTypes,
                StorageEncrypted = storageEncrypted,
                IamAuthentication = enableIamAuthentication,
                MonitoringInterval = enhancedMonitoringInterval,
                MultiAz = multiAZEnabled,
                AutoMinorVersionUpgrade = autoMinorVersionUpgrade
            }));
        }
 private PersistentVM CreateIaaSVMWithCustomScriptExtesnion(SetAzureVMCustomScriptExtensionCmdletParmaterSetType scriptParameterSet, string vmName, InstanceSize size, string imageName, bool isWindows, string username, string password)
 {
     Utilities.PrintHeader("Creating a new IaaS VM config with custom script extension.");
     PersistentVM vm = Utilities.CreateIaaSVMObject(vmName, InstanceSize.Small, imageName, isWindows, username, password);
     vm = SetCustomScripExtesnionToVM(scriptParameterSet, vm);
     Utilities.PrintFooter("Creating a new IaaS VM config with custom script extension");
     return vm;
 }
Ejemplo n.º 25
0
 public OSImageContext UpdateAzureVMImage(string imageName, InstanceSize recommendedSize)
 {
     return(RunPSCmdletAndReturnFirst <OSImageContext>(new UpdateAzureVMImageCmdletInfo(imageName, null, recommendedSize)));
 }
Ejemplo n.º 26
0
        private PersistentVM CreateIaaSVMWithCustomScriptExtesnion(SetAzureVMCustomScriptExtensionCmdletParmaterSetType scriptParameterSet, string vmName, InstanceSize size, string imageName, bool isWindows, string username, string password)
        {
            Utilities.PrintHeader("Creating a new IaaS VM config with custom script extension.");
            PersistentVM vm = Utilities.CreateIaaSVMObject(vmName, InstanceSize.Small, imageName, isWindows, username, password);

            vm = SetCustomScripExtesnionToVM(scriptParameterSet, vm);
            Utilities.PrintFooter("Creating a new IaaS VM config with custom script extension");
            return(vm);
        }
Ejemplo n.º 27
0
 public AzureVMConfigInfo(string vmName, InstanceSize vmSize, string imageName)
 {
     this.vmName = vmName;
     this.vmSize = vmSize;
     this.imageName = imageName;
 }
        private string Deployment2GceArgs(string tag                   = "",
                                          string MachineType           = "n1-standard-16",
                                          string Zone                  = "us-central1-a",
                                          string Region                = "NA",
                                          int InstanceSize             = 1,
                                          int InstanceSizeMin          = 1,
                                          int InstanceSizeMax          = 6,
                                          string AutoscalerId          = "default",
                                          string ExtraCliArgs          = "",
                                          string AppNameStringOverride = "",
                                          string HubServerName         = "")
        {
            int LocalCpuBudget = CpuBudget;

            UnrealTournamentBuild.UnrealTournamentAppName LocalAppName = AppName;
            if (!String.IsNullOrEmpty(AppNameStringOverride))
            {
                if (!Enum.IsDefined(typeof(UnrealTournamentBuild.UnrealTournamentAppName), AppNameStringOverride))
                {
                    throw new AutomationException("Trying to override AppName to non-existant type: " + AppNameStringOverride);
                }
                LocalAppName = (UnrealTournamentBuild.UnrealTournamentAppName)Enum.Parse(typeof(UnrealTournamentBuild.UnrealTournamentAppName), AppNameStringOverride);
                CommandUtils.Log("Overriding AppName from {0} to {1}", AppName, LocalAppName);
            }

            string NetworkId       = "default";
            string CredentialsFile = "GceUtDevCredentials.txt";

            /* This is very confusing. UnrealTournament's live lable is UnrealTournamentDev. */
            if (LocalAppName == UnrealTournamentBuild.UnrealTournamentAppName.UnrealTournamentDev)
            {
                NetworkId       = "unreal-tournament";
                CredentialsFile = "GceUtLiveCredentials.txt";
            }

            if (InstanceSize == 0)
            {
                InstanceSizeMin = 0;
                InstanceSizeMax = 0;
            }
            else if (InstanceSizeMin > InstanceSize)
            {
                InstanceSize = InstanceSizeMin;
            }

            string         CredentialsFilePath           = GetUtilitiesFilePath(CredentialsFile);
            string         CredentialsFileContentsBase64 = ReadFileContents(CredentialsFilePath);
            string         CredentialsFileContents       = ConvertFromBase64(CredentialsFileContentsBase64);
            GceCredentials gceCredentials = GceCredentialsFromJson(CredentialsFileContents);

            string HTTPCredentialsFilePath = GetUtilitiesFilePath("DeployerAuthBase64.txt");

            if (File.Exists(HTTPCredentialsFilePath))
            {
                string HTTPCredentialsFileContentsBase64 = ReadFileContents(HTTPCredentialsFilePath);
                HTTPAuthBase64 = HTTPCredentialsFileContentsBase64;
            }

            Byte[] CliArgBytes;
            if (HubServerName != "")
            {
                CliArgBytes    = System.Text.Encoding.UTF8.GetBytes("UnrealTournament ut-entry?game=lobby?ServerName=\"" + HubServerName + "\" -nocore -epicapp=" + LocalAppName.ToString() + " " + ExtraCliArgs);
                LocalCpuBudget = 32000;
            }
            else
            {
                CliArgBytes = System.Text.Encoding.UTF8.GetBytes("UnrealTournament ut-entry?game=empty?region=" + Region + " -epicapp=" + LocalAppName.ToString() + " " + ExtraCliArgs);
            }
            Byte[] BuildStringBytes = System.Text.Encoding.UTF8.GetBytes(BuildString);
            string CloudArgs        = "epic_game_name=" + GameNameShort + "&" +
                                      "epic_game_binary=" + this.GameBinary + "&" +
                                      "epic_game_binary_path=" + this.GameBinaryPath + "&" +
                                      "epic_game_log_path=" + this.GameLogPath + "&" +
                                      "epic_game_saved_path=" + this.GameSavedPath + "&" +
                                      "epic_game_max_match_length=" + this.MaxMatchLength.ToString() + "&" +
                                      "epic_game_ttl_interval=" + this.TtlInterval.ToString() + "&" +
                                      "epic_install_sumo=" + this.InstallSumo + "&" +
                                      "epic_game_tag=" + GetTag(LocalAppName, Region, tag) + "&" +
                                      "epic_game_version=" + Changelist.ToString() + "&" +
                                      "epic_game_region=" + Region + "&" +
                                      "epic_game_cpu_budget=" + LocalCpuBudget + "&" +
                                      "epic_game_ram_budget=" + RamBudget + "&" +
                                      "epic_game_buildstr_base64=" + System.Convert.ToBase64String(BuildStringBytes) + "&" +
                                      "epic_game_environment=" + LocalAppName.ToString() + "&" +
                                      "epic_instance_size=" + InstanceSize.ToString() + "&" +
                                      "epic_instance_min=" + InstanceSizeMin.ToString() + "&" +
                                      "epic_instance_max=" + InstanceSizeMax.ToString() + "&" +
                                      "epic_autoscaler_id=" + AutoscalerId + "&" +
                                      "epic_gce_project_id=" + gceCredentials.project_id + "&" +
                                      "epic_gce_base64_credentials=" + CredentialsFileContentsBase64 + "&" +
                                      "epic_gce_machine_type=" + MachineType + "&" +
                                      "epic_gce_network=" + NetworkId + "&" +
                                      "epic_gce_zone=" + Zone + "&" +
                                      "epic_game_base64_cli_args=" + System.Convert.ToBase64String(CliArgBytes);

            return(CloudArgs);
        }
 public SetAzureVMSizeConfig(InstanceSize instanceSize)
 {
     this.instanceSize = instanceSize;
 }
        public void LaunchInstance(string instanceName, InstanceSize size, string metadata)
        {
            var ec2Client = new AmazonEC2Client(_awsCredentials);

            string instanceType = "t1.micro";
            // WEB: string imageId = "ami-a9da0ec0";
            // Compute: string imageId = "ami-443fe32d";
            string imageId = "ami-09d96e60";

            switch (size)
            {
                case InstanceSize.Medium:
                    instanceType = "t1.small";
                    break;

                case InstanceSize.Small:
                default:
                    instanceType = "t1.micro";
                    break;
            }

            var request = new RunInstancesRequest()
                .WithInstanceType(instanceType)
                .WithPlacement(new Placement().WithAvailabilityZone("us-east-1d"))
                .WithImageId(imageId)
                .WithMinCount(1)
                .WithMaxCount(1)
                .WithSecurityGroup("default")
                .WithKeyName("IgorTest3");

            if (!string.IsNullOrEmpty(metadata))
                request = request.WithUserData(Convert.ToBase64String(Encoding.UTF8.GetBytes(metadata)));

            var runInstancesResponse = ec2Client.RunInstances(request);

            var instances = runInstancesResponse.RunInstancesResult.Reservation.RunningInstance;
            var index = 0;
            foreach (var instance in instances)
            {
                var name = instanceName;

                if (instances.Count > 0)
                    instanceName = instanceName + index;

                var createTagsRequest = new CreateTagsRequest();
                createTagsRequest
                    .WithResourceId(instance.InstanceId)
                    .WithTag(new Tag().WithKey("Name")
                    .WithValue(name));
                ec2Client.CreateTags(createTagsRequest);

                index++;
            }

            /*
            string rsaPrivateKey;
            using (var reader = new StreamReader(@"C:\Dev\BlueMetal\CloudAbstractions\SecurityStorage\IgorKeyPair.pem"))
            {
                rsaPrivateKey = reader.ReadToEnd();
            }
            var result = ec2Client.GetPasswordData(
                        new GetPasswordDataRequest().WithInstanceId(instanceId))
                .GetPasswordDataResult;

            Console.WriteLine(result.GetDecryptedPassword(rsaPrivateKey));
            */

            /*
                        AmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client(
                          appConfig["AWSAccessKey"],
                          appConfig["AWSSecretKey"],
                          new AmazonEC2Config().WithServiceURL("https://eu-west-1.ec2.amazonaws.com")
                          );

                        DescribeInstancesRequest ec2Request = new DescribeInstancesRequest();
            */
        }