public async Task<OperationStatus> SaveRunbookContentAsync(RunbookModelProxy runbook, string runbookContent, RunbookType runbookType) { var longRunningOp = default(LongRunningOperationResultResponse); var runbookUpdate = new RunbookDraftUpdateParameters(); runbookUpdate.Stream = runbookContent; runbookUpdate.Name = runbook.RunbookName; longRunningOp = await _client.RunbookDraft.UpdateAsync(_connectionData.AzureRMGroupName, _connectionData.AzureAutomationAccount, runbookUpdate); if (runbookType == RunbookType.Published) { await CheckIn(runbook); } if (longRunningOp.Status == Microsoft.Azure.OperationStatus.Failed) return OperationStatus.Failed; else if (longRunningOp.Status == Microsoft.Azure.OperationStatus.InProgress) return OperationStatus.InProgress; else if (longRunningOp.Status == Microsoft.Azure.OperationStatus.Succeeded) return OperationStatus.Succeeded; return OperationStatus.Failed; }
public string GetBackendUrl(RunbookType runbookType, RunbookModelProxy runbook) { // Azure RM, apart from Classic, only requires the runbook name when fetching the content. // That's why we only return runbook name here. return runbookType + "|" + runbook.RunbookName; }
public string GetBackendUrl(RunbookType runbookType, RunbookModelProxy runbook) { switch (runbookType) { case RunbookType.Draft: return AzureBaseUrl + String.Format(AzureResourceUrl, _connectionData.AzureSubscriptionId, _connectionData.AzureAutomationAccount, "runbooks/" + runbook.RunbookName + "/draft/content"); case RunbookType.Published: return AzureBaseUrl + String.Format(AzureResourceUrl, _connectionData.AzureSubscriptionId, _connectionData.AzureAutomationAccount, "runbooks/" + runbook.RunbookName + "/content"); } return string.Empty; }
public async Task<OperationStatus> SaveRunbookContentAsync(RunbookModelProxy runbook, string runbookContent, RunbookType runbookType) { var result = await SendRequestAsync("runbooks/" + runbook.RunbookName.ToUrlSafeString() + "/draft/content", HttpMethod.Put, runbookContent, "text/powershell").ConfigureAwait(false); if (runbookType == RunbookType.Published) { await CheckIn(runbook); } return OperationStatus.Succeeded; }
public async Task<OperationStatus> SaveRunbookContentAsync(RunbookModelProxy runbook, string runbookContent, RunbookType runbookType) { var context = GetConnection(); var ms = new MemoryStream(); var bytes = Encoding.UTF8.GetBytes(runbookContent); ms.Write(bytes, 0, bytes.Length); ms.Seek(0, SeekOrigin.Begin); var baseStream = (Stream)ms; var entity = (from rv in context.RunbookVersions where (Guid?)rv.RunbookVersionID == (runbook.Model as SMA.Runbook).DraftRunbookVersionID select rv).FirstOrDefault<RunbookVersion>(); try { context.AttachTo("Runbooks", runbook.Model as SMA.Runbook); } catch (InvalidOperationException) { } context.SetSaveStream(entity, baseStream, true, "application/octet-stream", string.Empty); context.SaveChanges(); if (runbookType == RunbookType.Published) { await CheckIn(runbook); } return OperationStatus.Succeeded; }
public string GetBackendUrl(RunbookType runbookType, RunbookModelProxy runbook) { Logger.DebugFormat("GetBackendUrl(runbookType = {0}, runbook = {1})", runbookType, runbook.RunbookName); switch (runbookType) { case RunbookType.Draft: return _connectionData.SmaConnectionUrl + "/Runbooks(guid'" + runbook.RunbookID + "')/DraftRunbookVersion/$value"; case RunbookType.Published: return _connectionData.SmaConnectionUrl + "/Runbooks(guid'" + runbook.RunbookID + "')/PublishedRunbookVersion/$value"; } return string.Empty; }