Exemple #1
0
        private void SaveChangeSetLink(ChangeSetInfo info, Asset savedAsset)
        {
            var name             = string.Format(info.Link.Name, info.Revision);
            var url              = string.Format(info.Link.Url, info.Revision);
            var linkUrlAttribute = savedAsset.GetAttribute(ChangeSetType.GetAttributeDefinition("Links.URL"));

            if (linkUrlAttribute != null)
            {
                foreach (string value in linkUrlAttribute.Values)
                {
                    if (value.Equals(url, StringComparison.InvariantCultureIgnoreCase))
                    {
                        return;
                    }
                }
            }

            var newlink = V1Connection.Data.New(LinkType, savedAsset.Oid.Momentless);

            newlink.SetAttributeValue(LinkNameDef, name);
            newlink.SetAttributeValue(LinkUrlDef, url);
            newlink.SetAttributeValue(LinkOnMenuDef, info.Link.OnMenu);

            V1Connection.Data.Save(newlink, changecomment);
        }
        public static async Task <string> CreateChangeset(
            string stackName, string templatePath, List <Parameter> parameters, ChangeSetType type, Credentials credentials)
        {
            Console.WriteLine($"\nCreating change set for {stackName}...");

            return((await GetClient(credentials).CreateChangeSetAsync(
                        new CreateChangeSetRequest
            {
                Capabilities = new List <string> {
                    Capability.CAPABILITY_NAMED_IAM
                },
                ChangeSetName = $"nuke-deploy-{DateTimeOffset.Now.ToUnixTimeSeconds()}",
                ChangeSetType = type,
                StackName = stackName,
                TemplateBody = File.ReadAllText(templatePath),
                Parameters = parameters
            })).Id);
        }
Exemple #3
0
        private QueryResult FindExistingChangeset(int revision)
        {
            var q = new Query(ChangeSetType);

            q.Selection.Add(ChangeSetType.GetAttributeDefinition("Reference"));
            q.Selection.Add(ChangeSetType.GetAttributeDefinition("Links.URL"));

            var referenceTerm = new FilterTerm(ChangeSetType.GetAttributeDefinition("Reference"));

            referenceTerm.Equal(revision);

            IFilterTerm term = referenceTerm;

            q.Filter = term;
            q.Paging = new Paging(0, 1);

            return(V1Connection.Data.Retrieve(q));
        }