public Schedule CreateSchedule(string automationAccountName, DailySchedule schedule) { this.ValidateScheduleName(automationAccountName, schedule.Name); var scheduleModel = new AutomationManagement.Models.Schedule { Name = schedule.Name, StartTime = schedule.StartTime.ToUniversalTime(), ExpiryTime = schedule.ExpiryTime.ToUniversalTime(), Description = schedule.Description, DayInterval = schedule.DayInterval, ScheduleType = AutomationManagement.Models.ScheduleType .DailySchedule }; var scheduleCreateParameters = new AutomationManagement.Models.ScheduleCreateParameters { Schedule = scheduleModel }; var scheduleCreateResponse = this.automationManagementClient.Schedules.Create( automationAccountName, scheduleCreateParameters); return(this.GetSchedule(automationAccountName, new Guid(scheduleCreateResponse.Schedule.Id))); }
private Schedule UpdateScheduleHelper(string automationAccountName, AutomationManagement.Models.Schedule schedule, bool?isEnabled, string description) { // StartTime and ExpiryTime need to specified as Utc schedule.StartTime = DateTime.SpecifyKind(schedule.StartTime, DateTimeKind.Utc); schedule.ExpiryTime = DateTime.SpecifyKind(schedule.ExpiryTime, DateTimeKind.Utc); if (isEnabled.HasValue) { schedule.IsEnabled = isEnabled.Value; } if (description != null) { schedule.Description = description; } var scheduleUpdateParameters = new AutomationManagement.Models.ScheduleUpdateParameters { Schedule = schedule }; this.automationManagementClient.Schedules.Update( automationAccountName, scheduleUpdateParameters); var scheduleId = new Guid(schedule.Id); return(this.GetSchedule(automationAccountName, scheduleId)); }
private Schedule CreateScheduleFromScheduleModel(AutomationManagement.Models.Schedule schedule) { Requires.Argument("schedule", schedule).NotNull(); if (schedule.ScheduleType == AutomationManagement.Models.ScheduleType.DailySchedule) { return(new DailySchedule(schedule)); } else { return(new OneTimeSchedule(schedule)); } }
private AutomationManagement.Models.Schedule GetScheduleModel(string automationAccountName, Guid scheduleId) { AutomationManagement.Models.Schedule scheduleModel = this.automationManagementClient.Schedules.Get( automationAccountName, scheduleId.ToString()) .Schedule; if (scheduleModel == null) { throw new ResourceNotFoundException(typeof(Schedule), string.Format(CultureInfo.CurrentCulture, Resources.ScheduleNotFoundById, scheduleId)); } return(scheduleModel); }
public IEnumerable <Runbook> ListRunbookByScheduleName(string automationAccountName, string scheduleName) { AutomationManagement.Models.Schedule scheduleModel = this.GetScheduleModel(automationAccountName, scheduleName); IList <AutomationManagement.Models.Runbook> runbookModels = AutomationManagementClient.ContinuationTokenHandler( skipToken => { var listRunbookResponse = this.automationManagementClient.Runbooks.ListByScheduleNameWithSchedules( automationAccountName, new AutomationManagement.Models.RunbookListByScheduleNameParameters { ScheduleName = scheduleModel.Name, SkipToken = skipToken }); return(new ResponseWithSkipToken <AutomationManagement.Models.Runbook>( listRunbookResponse, listRunbookResponse.Runbooks)); }); IEnumerable <Runbook> runbooks = runbookModels.Select(runbookModel => new Runbook(runbookModel)); return(runbooks.Where(runbook => runbook.ScheduleNames.Any())); }
public Schedule CreateSchedule(string automationAccountName, DailySchedule schedule) { this.ValidateScheduleName(automationAccountName, schedule.Name); var scheduleModel = new AutomationManagement.Models.Schedule { Name = schedule.Name, StartTime = schedule.StartTime.ToUniversalTime(), ExpiryTime = schedule.ExpiryTime.ToUniversalTime(), Description = schedule.Description, DayInterval = schedule.DayInterval, ScheduleType = AutomationManagement.Models.ScheduleType .DailySchedule }; var scheduleCreateParameters = new AutomationManagement.Models.ScheduleCreateParameters { Schedule = scheduleModel }; var scheduleCreateResponse = this.automationManagementClient.Schedules.Create( automationAccountName, scheduleCreateParameters); return this.GetSchedule(automationAccountName, new Guid(scheduleCreateResponse.Schedule.Id)); }
public Schedule UpdateSchedule(string automationAccountName, string scheduleName, bool?isEnabled, string description) { AutomationManagement.Models.Schedule scheduleModel = this.GetScheduleModel(automationAccountName, scheduleName); return(this.UpdateScheduleHelper(automationAccountName, scheduleModel, isEnabled, description)); }
public Schedule GetSchedule(string automationAccountName, string scheduleName) { AutomationManagement.Models.Schedule scheduleModel = this.GetScheduleModel(automationAccountName, scheduleName); return(this.CreateScheduleFromScheduleModel(scheduleModel)); }
public static void CreateAutomationRunbook() { try { Microsoft.Azure.SubscriptionCloudCredentials creds; creds = CertificateAuthenticationHelper.GetCredentials(ConfigurationManager.AppSettings["SubscriptionID"], ConfigurationManager.AppSettings["Certificate"]); AutomationManagementClient automationClient = new AutomationManagementClient(creds); //Create Runbook FileStream fs = new FileStream(AzureAutomationSchema.ScriptFileLocation, FileMode.Open, FileAccess.Read); // Get Runbook Response var runbookversion = automationClient.RunbookVersions.Create(AzureAutomationSchema.automationAccount, fs); Trace.TraceInformation("Status of RunbookVersion Create request:" + runbookversion.StatusCode.ToString() + ".RunbookVersionId " + runbookversion.RunbookVersion.Id + " Created."); var runbook = automationClient.Runbooks.ListByName(AzureAutomationSchema.automationAccount, AzureAutomationSchema.runbookname); // Get Runbook Publish Response Microsoft.Azure.Management.Automation.Models.RunbookPublishResponse pubresponse = automationClient.Runbooks.Publish(AzureAutomationSchema.automationAccount, new Microsoft.Azure.Management.Automation.Models.RunbookPublishParameters(runbook.Runbooks[0].Id, "Joe")); Trace.TraceInformation("Status of RunbookPublish request:" + pubresponse.StatusCode.ToString() + ". PublishedRunbookVersionId " + pubresponse.PublishedRunbookVersionId + " Created."); Microsoft.Azure.Management.Automation.Models.Schedule RuleEngineSchedule = new Microsoft.Azure.Management.Automation.Models.Schedule(); //Define Automation Schedule Microsoft.Azure.Management.Automation.Models.ScheduleCreateParameters scheduleParam = new Microsoft.Azure.Management.Automation.Models.ScheduleCreateParameters(); scheduleParam.Schedule = RuleEngineSchedule; scheduleParam.Schedule.Description = AzureAutomationSchema.ScheduleDescription; scheduleParam.Schedule.StartTime = AzureAutomationSchema.ScheduleStartTime; scheduleParam.Schedule.IsEnabled = AzureAutomationSchema.ScheduleIsEnabled; scheduleParam.Schedule.DayInterval = AzureAutomationSchema.ScheduleDayInterval; scheduleParam.Schedule.Name = AzureAutomationSchema.ScheduleName; if (AzureAutomationSchema.ScheduleScheduleType == "DailySchedule") { scheduleParam.Schedule.ScheduleType = Microsoft.Azure.Management.Automation.Models.ScheduleType.DailySchedule; } if (AzureAutomationSchema.ScheduleScheduleType == "HourlySchedule") { scheduleParam.Schedule.ScheduleType = Microsoft.Azure.Management.Automation.Models.ScheduleType.HourlySchedule; } scheduleParam.Schedule.ExpiryTime = AzureAutomationSchema.ScheduleExpiryTime; // Get RunbookSchedule response var response = automationClient.Schedules.Create(AzureAutomationSchema.automationAccount, scheduleParam); Trace.TraceInformation("Status of Schedule request:" + response.StatusCode.ToString() + ". " + response.Schedule.Name + " Created."); Microsoft.Azure.Management.Automation.Models.RunbookCreateScheduleLinkParameters RuleEngineScheduleLink = new Microsoft.Azure.Management.Automation.Models.RunbookCreateScheduleLinkParameters(); RuleEngineScheduleLink.RunbookId = runbook.Runbooks[0].Id; RuleEngineScheduleLink.ScheduleId = response.Schedule.Id; //Adding Parameters to Automation Schedule foreach (var param in ConfigurationManager.AppSettings.AllKeys.Where(key => key.StartsWith("Param"))) { RuleEngineScheduleLink.Parameters.Add(AddParametersToScheduleLink(param.Replace("Param", ""), ConfigurationManager.AppSettings[param])); } // Get RunbookSchedule link response Microsoft.Azure.Management.Automation.Models.RunbookCreateScheduleLinkResponse RuleEngineScheduleLinkResponse = automationClient.Runbooks.CreateScheduleLink(AzureAutomationSchema.automationAccount, RuleEngineScheduleLink); Trace.TraceInformation("Status of ScheduleLink request:" + RuleEngineScheduleLinkResponse.StatusCode.ToString() + ". JobContextID " + RuleEngineScheduleLinkResponse.JobContextId + " Created."); } catch (Exception ex) { Trace.TraceError(ex.Message); throw ex; } }