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())); } }
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)); }
//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; }
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); }
public AzureVMConfigInfo(string vmName, InstanceSize vmSize, string imageName) { this.vmName = vmName; this.vmSize = vmSize; this.imageName = imageName; }
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)); }
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)); }
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)); } }
public SetAzureVMSizeConfig(InstanceSize instanceSize) { this.instanceSize = instanceSize; }
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; }
public OSImageContext UpdateAzureVMImage(string imageName, InstanceSize recommendedSize) { return(RunPSCmdletAndReturnFirst <OSImageContext>(new UpdateAzureVMImageCmdletInfo(imageName, null, recommendedSize))); }
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); }
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 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(); */ }