public static StartPlanEnvelope FromYaml(string yaml, bool isEncoded = false) { if (isEncoded) { yaml = CryptoHelpers.Decode(yaml); } return(YamlHelpers.Deserialize <StartPlanEnvelope>(yaml, ignoreUnmatchedProperties: false)); }
public static StartPlanEnvelope FromXml(string xml, bool isEncoded = false) { if (isEncoded) { xml = CryptoHelpers.Decode(xml); } return(XmlHelpers.Deserialize <StartPlanEnvelope>(xml)); }
public void StartPlanAsync(long planInstanceId, bool dryRun, [FromBody] string planString) { Uri uri = this.Url.Request.RequestUri; planString = CryptoHelpers.Decode(planString); Plan plan = Plan.FromYaml(new StringReader(planString)); string context = GetContext(nameof(StartPlanAsync), nameof(plan), plan.Name, nameof(dryRun), dryRun, nameof(planInstanceId), planInstanceId, "QueryString", uri.Query); Impersonator runAsUser = null; if (SynapseServer.UseImpersonation(User?.Identity)) { if (Request?.Headers?.Authorization?.Scheme?.ToLower() == "basic") { runAsUser = new Impersonator(Request.Headers.Authorization); } else { runAsUser = new Impersonator((WindowsIdentity)User.Identity); } runAsUser.Start(SynapseServer.Logger); } try { SynapseServer.Logger.Debug(context); plan.InstanceId = planInstanceId; ValidatePlanSignature(plan); Dictionary <string, string> dynamicParameters = uri.ParseQueryString(); if (dynamicParameters.ContainsKey(nameof(dryRun))) { dynamicParameters.Remove(nameof(dryRun)); } PlanRuntimePod p = new PlanRuntimePod(plan, dryRun, dynamicParameters, plan.InstanceId, this.Url.Request.Headers.Referrer, this.Request?.Headers?.Authorization); _scheduler.StartPlan(p); } catch (Exception ex) { SynapseServer.Logger.Error( Utilities.UnwindException(context, ex, asSingleLine: true)); throw; } finally { runAsUser?.Stop(SynapseServer.Logger); } }
public void SetStatus(string planUniqueName, long planInstanceId, [FromBody] string planString) { InitPlanServer(); string context = GetContext(nameof(SetStatus), nameof(planUniqueName), planUniqueName, nameof(planInstanceId), planInstanceId, nameof(planString), planString); planString = CryptoHelpers.Decode(planString); Plan plan = Plan.FromYaml(new StringReader(planString)); try { SynapseServer.Logger.Debug(context); _server.UpdatePlanStatus(plan); } catch (Exception ex) { SynapseServer.Logger.Error( Utilities.UnwindException(context, ex, asSingleLine: true)); throw; } }
void p_ErrorDataReceived(object sender, DataReceivedEventArgs e) { if (e.Data != null) { string data = CryptoHelpers.Decode(e.Data); try { HandlerProgressCancelEventArgs args = HandlerProgressCancelEventArgs.DeserializeSimple(data, true); OnProgress(args); } catch { try { LogMessageEventArgs args = LogMessageEventArgs.DeserializeSimple(data, true); OnLogMessage(args); } catch { throw new Exception("Could not deserialize output into known args type"); } } } }