void ProcessScaleSets(Scaleset scaleset) { _log.Verbose($"checking scaleset for updates: {scaleset.ScalesetId}"); _scaleSetOps.UpdateConfigs(scaleset); //if (_scaleSetOps.Cleanup) }
public async Async.Task <Uri?> BuildScaleSetScript(Pool pool, Scaleset scaleSet) { List <string> commands = new(); var extension = pool.Os == Os.Windows ? "ps1" : "sh"; var fileName = $"{scaleSet.ScalesetId}/scaleset-setup.{extension}"; var sep = pool.Os == Os.Windows ? "\r\n" : "\n"; if (pool.Os == Os.Windows && scaleSet.Auth is not null) { var sshKey = scaleSet.Auth.PublicKey.Trim(); var sshPath = "$env:ProgramData/ssh/administrators_authorized_keys"; commands.Add($"Set-Content -Path {sshPath} -Value \"{sshKey}\""); } await _context.Containers.SaveBlob(new Container("vm-scripts"), fileName, string.Join(sep, commands) + sep, StorageType.Config); return(await _context.Containers.GetFileUrl(new Container("vm-scripts"), fileName, StorageType.Config)); }
public async Async.Task <IList <VirtualMachineScaleSetExtensionData> > FuzzExtensions(Pool pool, Scaleset scaleset) { var poolConfig = await BuildPoolConfig(pool) ?? throw new Exception("pool config url is null"); var scaleSetScript = await BuildScaleSetScript(pool, scaleset) ?? throw new Exception("scaleSet script url is null"); var urls = new List <Uri>() { poolConfig, scaleSetScript }; var fuzzExtension = await AgentConfig(scaleset.Region, pool.Os, AgentMode.Fuzz, urls); var extensions = await GenericExtensions(scaleset.Region, pool.Os); extensions.Add(fuzzExtension); return(extensions.Select(extension => extension.GetAsVirtualMachineScaleSetExtension()).ToList()); }
public bool Scaleset(Scaleset ss) { return(Test(ss)); }