Пример #1
0
    void ProcessScaleSets(Scaleset scaleset)
    {
        _log.Verbose($"checking scaleset for updates: {scaleset.ScalesetId}");

        _scaleSetOps.UpdateConfigs(scaleset);

        //if (_scaleSetOps.Cleanup)
    }
Пример #2
0
    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));
    }
Пример #3
0
    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());
    }
Пример #4
0
 public bool Scaleset(Scaleset ss)
 {
     return(Test(ss));
 }