示例#1
0
        public Module UpdateModule(string automationAccountName, IDictionary <string, string> tags, string name,
                                   Uri contentLink)
        {
            var existingModule = this.GetModule(automationAccountName, name);

            var moduleUpdateParameters = new AutomationManagement.Models.ModuleUpdateParameters();

            moduleUpdateParameters.Name = name;
            if (tags != null)
            {
                moduleUpdateParameters.Tags = tags;
            }
            moduleUpdateParameters.Location   = existingModule.Location;
            moduleUpdateParameters.Properties = new AutomationManagement.Models.ModuleUpdateProperties()
            {
                ContentLink = new AutomationManagement.Models.ContentLink()
            };

            if (contentLink != null)
            {
                moduleUpdateParameters.Properties.ContentLink.Uri = contentLink;
            }

            var updatedModule = this.automationManagementClient.Modules.Update(automationAccountName,
                                                                               moduleUpdateParameters);

            if (updatedModule == null || updatedModule.StatusCode != HttpStatusCode.OK)
            {
                new AzureAutomationOperationException(string.Format(Resources.AutomationOperationFailed, "Update",
                                                                    "Module", name, automationAccountName));
            }

            return(new Module(automationAccountName, updatedModule.Module));
        }
        public Module UpdateModule(string automationAccountName, IDictionary tags, string name, Uri contentLinkUri, string contentLinkVersion)
        {
            var moduleModel = this.automationManagementClient.Modules.Get(automationAccountName, name).Module;
            if(tags != null && contentLinkUri != null)
            {
                var moduleCreateParameters = new AutomationManagement.Models.ModuleCreateParameters();
                
                moduleCreateParameters.Name = name;
                moduleCreateParameters.Tags = tags.Cast<DictionaryEntry>().ToDictionary(kvp => kvp.Key.ToString(), kvp => kvp.Value.ToString());

                moduleCreateParameters.Properties = new ModuleCreateProperties();
                moduleCreateParameters.Properties.ContentLink = new AutomationManagement.Models.ContentLink();
                moduleCreateParameters.Properties.ContentLink.Uri = contentLinkUri;
                moduleCreateParameters.Properties.ContentLink.Version =
                    (String.IsNullOrWhiteSpace(contentLinkVersion))
                        ? Guid.NewGuid().ToString()
                        : contentLinkVersion;

                this.automationManagementClient.Modules.Create(automationAccountName,
                    moduleCreateParameters);

            }
            else if (contentLinkUri != null)
            {
                var moduleUpdateParameters = new AutomationManagement.Models.ModuleUpdateParameters();

                moduleUpdateParameters.Name = name;
                moduleUpdateParameters.Properties = new ModuleUpdateProperties();
                moduleUpdateParameters.Properties.ContentLink = new AutomationManagement.Models.ContentLink();
                moduleUpdateParameters.Properties.ContentLink.Uri = contentLinkUri;
                moduleUpdateParameters.Properties.ContentLink.Version =
                    (String.IsNullOrWhiteSpace(contentLinkVersion))
                        ? Guid.NewGuid().ToString()
                        : contentLinkVersion;

                moduleUpdateParameters.Tags = moduleModel.Tags;

                this.automationManagementClient.Modules.Update(automationAccountName, moduleUpdateParameters);
            }
            else if(tags != null)
            {
                var moduleUpdateParameters = new AutomationManagement.Models.ModuleUpdateParameters();
                
                moduleUpdateParameters.Name = name;
                moduleUpdateParameters.Tags = tags.Cast<DictionaryEntry>().ToDictionary(kvp => kvp.Key.ToString(), kvp => kvp.Value.ToString());
                moduleUpdateParameters.Properties = new ModuleUpdateProperties();

                this.automationManagementClient.Modules.Update(automationAccountName, moduleUpdateParameters);
            }

            var updatedModule = this.automationManagementClient.Modules.Get(automationAccountName, name).Module;
            return new Module(automationAccountName, updatedModule);
        }