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); }
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)); }