示例#1
0
        public CopyBase()
            : base()
        {
            Authentication = new Authentication();
            ServerAddress  = "[SshServerAddress]";
            Port           = "[SshServerPort]";

            ExistsAction          = STEM.Sys.IO.FileExistsAction.MakeUnique;
            DestinationActionRule = DestinationRule.AllOrNone;
            Retry             = 1;
            RetryDelaySeconds = 2;

            ExpandSource    = false;
            SourcePath      = "[TargetPath]";
            FileFilter      = "[TargetName]";
            DirectoryFilter = "!TEMP";
            RecurseSource   = false;
            RecreateTree    = false;

            ExpandDestination   = false;
            DestinationPath     = "[DestinationPath]\\[SubDir]";
            DestinationFilename = "*.*";

            ExecutionMode   = ExecuteOn.ForwardExecution;
            ZeroFilesAction = FailureAction.SkipRemaining;
        }
示例#2
0
        public async Task CloseAsync(
            IEnumerable <Metadata> metadataEnumerator,
            FailureAction failureAction)
        {
            // Note: Since we only support one action, we could have chosen not to pass in a failure action.
            // I have it there to make it explicit and easily readable.
            Utility.Assert(
                failureAction == FailureAction.AbortStateProvider,
                "{0}: ApiDispatcher::CloseAsync: Action only supports AbortStateProvider for CloseAsync. FailureAction: {1}",
                this.traceType,
                failureAction);

            List <Task> taskList = new List <Task>();

            foreach (Metadata metadata in metadataEnumerator)
            {
                // Since the failureAction must be AbortStateProvider, exceptions cannot happen here.
                taskList.Add(CloseAsync(metadata, failureAction));
            }

            // The Task for waiting all CloseAsync finish is exception free, since for every CloseAsync
            // failure, the state provider will call Abort which will never throw exception.
            // We expect the c# scheduler to ensure the optimal number of awaitables execute asynchronously.
            await Task.WhenAll(taskList).ConfigureAwait(false);
        }
        public GetDeliveryChannelConfigsResult DeepCloneWithFailureAction(FailureAction failureAction)
        {
            var result = new GetDeliveryChannelConfigsResult(
                this.Configs?.DeepClone(),
                this.Failures?.DeepClone(),
                failureAction);

            return(result);
        }
        public GetAudienceResult DeepCloneWithFailureAction(FailureAction failureAction)
        {
            var result = new GetAudienceResult(
                this.Audience?.DeepClone(),
                this.Failures?.DeepClone(),
                failureAction);

            return(result);
        }
示例#5
0
        public TopicToFile()
        {
            Authentication = new Authentication();

            DestinationFile  = "[DestinationPath]\\[TargetName]";
            FileExistsAction = STEM.Sys.IO.FileExistsAction.MakeUnique;

            Retry             = 1;
            RetryDelaySeconds = 2;
            ZeroItemsAction   = FailureAction.SkipRemaining;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="GetAudienceResult"/> class.
        /// </summary>
        /// <param name="audience">The resolved audience.</param>
        /// <param name="failures">The failures that occurred when executing the operation.</param>
        /// <param name="failureAction">The action to take when <paramref name="failures"/> contains one or more elements.</param>
        public GetAudienceResult(
            IAudience audience,
            IReadOnlyCollection <IFailure> failures,
            FailureAction failureAction)
        {
            new { failures }.AsArg().Must().NotContainAnyNullElementsWhenNotNull();
            new { failureAction }.AsArg().Must().NotBeEqualTo(FailureAction.Unknown);

            this.Audience      = audience;
            this.Failures      = failures;
            this.FailureAction = failureAction;
        }
示例#7
0
        public TopicToContainer()
        {
            Authentication = new Authentication();

            ContentType = DataType.String;

            ContainerDataKey = "[TargetNameWithoutExt]";
            TargetContainer  = ContainerType.InstructionSetContainer;

            Retry             = 1;
            RetryDelaySeconds = 2;
            ZeroItemsAction   = FailureAction.SkipRemaining;
        }
示例#8
0
        public QueueToFile()
        {
            ServerAddress = "[QueueServerAddress]";
            Port          = "[QueueServerPort]";

            QueueName = "[QueueName]";

            DestinationFile  = "[DestinationPath]\\[TargetName]";
            FileExistsAction = STEM.Sys.IO.FileExistsAction.MakeUnique;

            Retry             = 1;
            RetryDelaySeconds = 2;
            ZeroItemsAction   = FailureAction.SkipRemaining;
        }
        public QueueToContainer()
        {
            ServerAddress = "[QueueServerAddress]";
            Port          = "[QueueServerPort]";

            QueueName = "[QueueName]";

            ContentType = DataType.String;

            ContainerDataKey = "[TargetNameWithoutExt]";
            TargetContainer  = ContainerType.InstructionSetContainer;

            Retry             = 1;
            RetryDelaySeconds = 2;
            ZeroItemsAction   = FailureAction.SkipRemaining;
        }
示例#10
0
        /// <summary>
        /// Initializes a new instance of the <see cref="GetDeliveryChannelConfigsResult"/> class.
        /// </summary>
        /// <param name="configs">The delivery channel configs.</param>
        /// <param name="failures">The failures that occurred when executing the operation.</param>
        /// <param name="failureAction">The action to take when <paramref name="failures"/> contains one or more elements.</param>
        public GetDeliveryChannelConfigsResult(
            IReadOnlyCollection <DeliveryChannelConfig> configs,
            IReadOnlyCollection <IFailure> failures,
            FailureAction failureAction)
        {
            new { configs }.AsArg().Must().NotContainAnyNullElementsWhenNotNull();
            var deliveryChannels = configs?.Select(_ => _.Channel).ToList();

            new { deliveryChannels }.AsArg().Must().ContainOnlyDistinctElementsWhenNotNull();
            new { failures }.AsArg().Must().NotContainAnyNullElementsWhenNotNull();
            new { failureAction }.AsArg().Must().NotBeEqualTo(FailureAction.Unknown);

            this.Configs       = configs;
            this.Failures      = failures;
            this.FailureAction = failureAction;
        }
示例#11
0
        /// <summary>
        /// Closes a given state provider
        /// </summary>
        public async Task CloseAsync(
            Metadata metadata,
            FailureAction failureAction)
        {
            Utility.Assert(
                metadata != null,
                "{0}: ApiDispatcher::CloseAsync: metadata passed to the function should not be null.",
                this.traceType);

            try
            {
                await metadata.StateProvider.CloseAsync().ConfigureAwait(false);
            }
            catch (Exception)
            {
#if !DotNetCoreClr
                // These are new events defined in System.Fabric, existing CoreCLR apps would break
                // if these events are refernced as it wont be found. As CoreCLR apps carry System.Fabric
                // along with application
                // This is just a mitigation for now. Actual fix being tracked via bug# 11614507

                FabricEvents.Events.ISP2_ApiError(
                    this.traceType,
                    metadata.StateProviderId,
                    "CloseAsync");
#endif

                // In the native, this part is out of catch block, but if we do this in managed code, the
                // stack trace will be lost, so keep it in the catch block.
                if (failureAction == FailureAction.AbortStateProvider)
                {
                    Abort(metadata);
                }
                else
                {
                    throw;
                }
            }
        }
示例#12
0
 //main method allows for form actions before and after conversation
 public void Execute(object context)
 {
     PreExecuteAction?.Invoke(context);
     if (InitiatorConv)
     {
         InitatorConversation(ref context);
     }
     else
     {
         ResponderConversation(ref context);
     }
     if (Error == null)
     {
         PostExecuteAction?.Invoke(context);
     }
     else
     {
         FailureAction?.Invoke(context);
     }
     Done = true;
     ConversationDictionary.Instance.CloseQueue(MyQueue.QueueID);
 }
示例#13
0
        public CopyBase()
            : base()
        {
            ExistsAction      = STEM.Sys.IO.FileExistsAction.MakeUnique;
            Retry             = 1;
            RetryDelaySeconds = 2;

            DestinationActionRule = DestinationRule.AllOrNone;

            CB_ExpandSource    = false;
            CB_SourcePath      = "[TargetPath]";
            CB_FileFilter      = "[TargetName]";
            CB_DirectoryFilter = "!TEMP";
            CB_RecurseSource   = false;
            RecreateTree       = false;

            ExpandDestination   = false;
            UseTempHop          = true;
            DestinationPath     = "[DestinationPath]\\[SubDir]";
            DestinationFilename = "*.*";

            ExecutionMode   = ExecuteOn.ForwardExecution;
            ZeroFilesAction = FailureAction.SkipRemaining;
        }
示例#14
0
        /// <summary>
        /// Serialize to a JSON object
        /// </summary>
        public new void SerializeJson(Utf8JsonWriter writer, JsonSerializerOptions options, bool includeStartObject = true)
        {
            if (includeStartObject)
            {
                writer.WriteStartObject();
            }
            if (!string.IsNullOrEmpty(ResourceType))
            {
                writer.WriteString("resourceType", (string)ResourceType !);
            }


            ((fhirCsR4.Models.DomainResource) this).SerializeJson(writer, options, false);

            if ((Target != null) && (Target.Count != 0))
            {
                writer.WritePropertyName("target");
                writer.WriteStartArray();

                foreach (Reference valTarget in Target)
                {
                    valTarget.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((TargetLocation != null) && (TargetLocation.Count != 0))
            {
                writer.WritePropertyName("targetLocation");
                writer.WriteStartArray();

                foreach (string valTargetLocation in TargetLocation)
                {
                    writer.WriteStringValue(valTargetLocation);
                }

                writer.WriteEndArray();
            }

            if ((_TargetLocation != null) && (_TargetLocation.Count != 0))
            {
                writer.WritePropertyName("_targetLocation");
                writer.WriteStartArray();

                foreach (Element val_TargetLocation in _TargetLocation)
                {
                    val_TargetLocation.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (Need != null)
            {
                writer.WritePropertyName("need");
                Need.SerializeJson(writer, options);
            }

            if (!string.IsNullOrEmpty(Status))
            {
                writer.WriteString("status", (string)Status !);
            }

            if (_Status != null)
            {
                writer.WritePropertyName("_status");
                _Status.SerializeJson(writer, options);
            }

            if (!string.IsNullOrEmpty(StatusDate))
            {
                writer.WriteString("statusDate", (string)StatusDate !);
            }

            if (_StatusDate != null)
            {
                writer.WritePropertyName("_statusDate");
                _StatusDate.SerializeJson(writer, options);
            }

            if (ValidationType != null)
            {
                writer.WritePropertyName("validationType");
                ValidationType.SerializeJson(writer, options);
            }

            if ((ValidationProcess != null) && (ValidationProcess.Count != 0))
            {
                writer.WritePropertyName("validationProcess");
                writer.WriteStartArray();

                foreach (CodeableConcept valValidationProcess in ValidationProcess)
                {
                    valValidationProcess.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (Frequency != null)
            {
                writer.WritePropertyName("frequency");
                Frequency.SerializeJson(writer, options);
            }

            if (!string.IsNullOrEmpty(LastPerformed))
            {
                writer.WriteString("lastPerformed", (string)LastPerformed !);
            }

            if (_LastPerformed != null)
            {
                writer.WritePropertyName("_lastPerformed");
                _LastPerformed.SerializeJson(writer, options);
            }

            if (!string.IsNullOrEmpty(NextScheduled))
            {
                writer.WriteString("nextScheduled", (string)NextScheduled !);
            }

            if (_NextScheduled != null)
            {
                writer.WritePropertyName("_nextScheduled");
                _NextScheduled.SerializeJson(writer, options);
            }

            if (FailureAction != null)
            {
                writer.WritePropertyName("failureAction");
                FailureAction.SerializeJson(writer, options);
            }

            if ((PrimarySource != null) && (PrimarySource.Count != 0))
            {
                writer.WritePropertyName("primarySource");
                writer.WriteStartArray();

                foreach (VerificationResultPrimarySource valPrimarySource in PrimarySource)
                {
                    valPrimarySource.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (Attestation != null)
            {
                writer.WritePropertyName("attestation");
                Attestation.SerializeJson(writer, options);
            }

            if ((Validator != null) && (Validator.Count != 0))
            {
                writer.WritePropertyName("validator");
                writer.WriteStartArray();

                foreach (VerificationResultValidator valValidator in Validator)
                {
                    valValidator.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (includeStartObject)
            {
                writer.WriteEndObject();
            }
        }
示例#15
0
        /// <summary>
        /// Used to replace tokens in a string from the searchSpace of interest
        ///
        /// e.g.
        ///
        /// Session["[CompanyX DBAddress]"] = "192.168.100.100"
        /// Session["[CompanyX DBUser]"] = "sa"
        ///
        /// string sqlConn = Server=[CompanyX DBAddress];Database=myDataBase;User Id=[CompanyX DBUser];
        /// sqlConn = ReplaceTokens(sqlConn, FailureAction.ThrowException, SearchSpace.Session)
        ///
        /// </summary>
        /// <param name="tokenizedString"></param>
        /// <param name="failureAction"></param>
        /// <param name="searchSpace"></param>
        /// <returns>String with tokens replaced</returns>
        protected string ReplaceTokens(string tokenizedString, FailureAction failureAction, SearchSpace searchSpace = SearchSpace.InstructionSetContainer | SearchSpace.Session | SearchSpace.Cache)
        {
            if (String.IsNullOrEmpty(tokenizedString))
            {
                throw new ArgumentNullException(nameof(tokenizedString));
            }

            string        xform  = tokenizedString;
            List <string> tokens = new List <string>();

            foreach (Match m in _Regex.Matches(tokenizedString))
            {
                tokens.Add(m.Value);
            }

            tokens = tokens.Distinct().ToList();

            foreach (string t in tokens.ToList())
            {
                if ((searchSpace & SearchSpace.InstructionSetContainer) != 0)
                {
                    if (InstructionSetContainer.ContainsKey(t))
                    {
                        xform = xform.Replace(t, (string)InstructionSetContainer[t]);
                        tokens.Remove(t);
                        continue;
                    }

                    string x = t.Replace("[", "");
                    x = x.Replace("]", "");

                    if (InstructionSetContainer.ContainsKey(x))
                    {
                        xform = xform.Replace(t, (string)InstructionSetContainer[x]);
                        tokens.Remove(t);
                        continue;
                    }
                }

                if ((searchSpace & SearchSpace.Session) != 0)
                {
                    if (STEM.Sys.Global.Session.ContainsKey(t))
                    {
                        xform = xform.Replace(t, (string)STEM.Sys.Global.Session[t]);
                        tokens.Remove(t);
                        continue;
                    }

                    string x = t.Replace("[", "");
                    x = x.Replace("]", "");

                    if (STEM.Sys.Global.Session.ContainsKey(x))
                    {
                        xform = xform.Replace(t, (string)STEM.Sys.Global.Session[x]);
                        tokens.Remove(t);
                        continue;
                    }
                }

                if ((searchSpace & SearchSpace.Cache) != 0)
                {
                    if (STEM.Sys.Global.Cache.ContainsKey(t))
                    {
                        xform = xform.Replace(t, (string)STEM.Sys.Global.Cache[t]);
                        tokens.Remove(t);
                        continue;
                    }

                    string x = t.Replace("[", "");
                    x = x.Replace("]", "");

                    if (STEM.Sys.Global.Cache.ContainsKey(x))
                    {
                        xform = xform.Replace(t, (string)STEM.Sys.Global.Cache[x]);
                        tokens.Remove(t);
                        continue;
                    }
                }
            }

            if (tokens.Count > 0)
            {
                switch (failureAction)
                {
                case FailureAction.ReturnInput:
                    return(tokenizedString);

                case FailureAction.ReturnNull:
                    return(null);

                case FailureAction.ThrowException:
                    Exception e = new Exception("Tokens not found: " + String.Join(",", tokens));
                    STEM.Sys.EventLog.WriteEntry("InstructionSet.ReplaceTokens", e.ToString(), STEM.Sys.EventLog.EventLogEntryType.Error);
                    throw e;
                }
            }

            return(xform);
        }
        private ApplicationUpgradePolicy SetUpgradePolicy(ApplicationUpgradePolicy currentPolicy)
        {
            if (currentPolicy == null)
            {
                currentPolicy = new ApplicationUpgradePolicy();
            }

            if (ForceRestart.IsPresent)
            {
                currentPolicy.ForceRestart = true;
            }

            if (this.IsParameterBound(c => c.UpgradeReplicaSetCheckTimeoutSec))
            {
                currentPolicy.UpgradeReplicaSetCheckTimeout = TimeSpan.FromSeconds(UpgradeReplicaSetCheckTimeoutSec).ToString("");
            }

            //RollingUpgradeMonitoringPolicy
            if (currentPolicy.RollingUpgradeMonitoringPolicy == null)
            {
                //initialize with defaults
                currentPolicy.RollingUpgradeMonitoringPolicy = new ArmRollingUpgradeMonitoringPolicy(
                    failureAction: "Manual",
                    healthCheckStableDuration: TimeSpan.FromSeconds(120).ToString("c"),
                    healthCheckRetryTimeout: TimeSpan.FromSeconds(600).ToString("c"),
                    healthCheckWaitDuration: TimeSpan.FromSeconds(0).ToString("c"),
                    upgradeTimeout: TimeSpan.MaxValue.ToString("c"),
                    upgradeDomainTimeout: TimeSpan.MaxValue.ToString("c"));
            }

            if (this.IsParameterBound(c => c.FailureAction))
            {
                currentPolicy.RollingUpgradeMonitoringPolicy.FailureAction = FailureAction.ToString();
            }

            if (this.IsParameterBound(c => c.HealthCheckRetryTimeoutSec))
            {
                currentPolicy.RollingUpgradeMonitoringPolicy.HealthCheckRetryTimeout = TimeSpan.FromSeconds(HealthCheckRetryTimeoutSec).ToString("c");
            }

            if (this.IsParameterBound(c => c.HealthCheckWaitDurationSec))
            {
                currentPolicy.RollingUpgradeMonitoringPolicy.HealthCheckWaitDuration = TimeSpan.FromSeconds(HealthCheckWaitDurationSec).ToString("c");
            }

            if (this.IsParameterBound(c => c.HealthCheckStableDurationSec))
            {
                currentPolicy.RollingUpgradeMonitoringPolicy.HealthCheckStableDuration = TimeSpan.FromSeconds(HealthCheckStableDurationSec).ToString("c");
            }

            if (this.IsParameterBound(c => c.UpgradeDomainTimeoutSec))
            {
                currentPolicy.RollingUpgradeMonitoringPolicy.UpgradeDomainTimeout = TimeSpan.FromSeconds(UpgradeDomainTimeoutSec).ToString("c");
            }

            if (this.IsParameterBound(c => c.UpgradeTimeoutSec))
            {
                currentPolicy.RollingUpgradeMonitoringPolicy.UpgradeTimeout = TimeSpan.FromSeconds(UpgradeTimeoutSec).ToString("c");
            }

            //ApplicationHealthPolicy
            if (currentPolicy.ApplicationHealthPolicy == null)
            {
                currentPolicy.ApplicationHealthPolicy = new ArmApplicationHealthPolicy();
            }

            if (ConsiderWarningAsError.IsPresent)
            {
                currentPolicy.ApplicationHealthPolicy.ConsiderWarningAsError = true;
            }

            if (currentPolicy.ApplicationHealthPolicy.DefaultServiceTypeHealthPolicy == null)
            {
                currentPolicy.ApplicationHealthPolicy.DefaultServiceTypeHealthPolicy = new ArmServiceTypeHealthPolicy(
                    maxPercentUnhealthyPartitionsPerService: DefaultServiceTypeMaxPercentUnhealthyPartitionsPerService,
                    maxPercentUnhealthyReplicasPerPartition: DefaultServiceTypeMaxPercentUnhealthyReplicasPerPartition,
                    maxPercentUnhealthyServices: DefaultServiceTypeUnhealthyServicesMaxPercent);
            }
            else
            {
                if (this.IsParameterBound(c => c.DefaultServiceTypeMaxPercentUnhealthyPartitionsPerService))
                {
                    currentPolicy.ApplicationHealthPolicy.DefaultServiceTypeHealthPolicy.MaxPercentUnhealthyPartitionsPerService = DefaultServiceTypeMaxPercentUnhealthyPartitionsPerService;
                }

                if (this.IsParameterBound(c => c.DefaultServiceTypeMaxPercentUnhealthyReplicasPerPartition))
                {
                    currentPolicy.ApplicationHealthPolicy.DefaultServiceTypeHealthPolicy.MaxPercentUnhealthyReplicasPerPartition = DefaultServiceTypeMaxPercentUnhealthyReplicasPerPartition;
                }

                if (this.IsParameterBound(c => c.DefaultServiceTypeUnhealthyServicesMaxPercent))
                {
                    currentPolicy.ApplicationHealthPolicy.DefaultServiceTypeHealthPolicy.MaxPercentUnhealthyServices = DefaultServiceTypeUnhealthyServicesMaxPercent;
                }

                if (this.IsParameterBound(c => c.UnhealthyDeployedApplicationsMaxPercent))
                {
                    currentPolicy.ApplicationHealthPolicy.MaxPercentUnhealthyDeployedApplications = UnhealthyDeployedApplicationsMaxPercent;
                }
            }

            if (ServiceTypeHealthPolicyMap != null)
            {
                foreach (DictionaryEntry entry in this.ServiceTypeHealthPolicyMap)
                {
                    currentPolicy.ApplicationHealthPolicy.ServiceTypeHealthPolicyMap.Add(entry.Key as string, this.ParseServiceTypeHealthPolicy(entry.Value as string));
                }
            }

            return(currentPolicy);
        }