public InstanceInformation(string id, InstanceStatus status, string packageName, InstanceConfiguration configuration) { Id = id; Status = status; PackageName = packageName; Configuration = configuration; }
public virtual InstanceStatus GetStatus(InstanceStatus currentStatus) { var results = DoHealthChecks(_contributors); var status = AggregateStatus(results); return(MapToInstanceStatus(status)); }
/// <summary> /// To see what properties should save transform /// </summary> /// <param name="SavePosition">To save the position</param> /// <param name="SaveRotation">To save rotation</param> /// <param name="SaveScale">To save the scale</param> public SaveAttribute(bool SavePosition, bool SaveRotation, bool SaveScale) { this.SavePosition = SavePosition; this.SaveRotation = SaveRotation; this.SaveScale = SaveScale; InstanceNewOnLoad = InstanceStatus.Instance; }
public static async Task AwaitInstanceStatus(this EC2Helper ec2, string instanceId, InstanceSummaryStatus summaryStatus, int timeout_ms, int intensity = 1500, bool thowOnTermination = true, CancellationToken cancellationToken = default(CancellationToken)) { var sw = Stopwatch.StartNew(); InstanceStatus status = null; do { if (status != null) { await Task.Delay(intensity); } status = await ec2.DescribeInstanceStatusAsync(instanceId, cancellationToken); if (status.Status.Status == summaryStatus.ToSummaryStatus()) { return; } if (thowOnTermination && (status.InstanceState?.Name == InstanceStateName.Stopping || status.InstanceState?.Name == InstanceStateName.Terminated)) { throw new Exception($"Failed Status Await, Instane is terminated or terminating: '{status.InstanceState.Name}'"); } }while (sw.ElapsedMilliseconds < timeout_ms); throw new TimeoutException($"Instance {instanceId} could not reach status summary '{summaryStatus}', last status summary: '{status.Status.Status}'"); }
internal HealthStatus AddRemoteInstanceStatus(InstanceStatus lastRemoteInstanceStatus, HealthCheckResult result) { var remoteStatus = MakeHealthStatus(_discoveryClient.LastRemoteInstanceStatus); result.Details.Add("remoteInstStatus", remoteStatus.ToString()); return(remoteStatus); }
/// <summary> /// Converts to a simpler instance object that includes some application metadata /// </summary> public static MessageBoxInstance ConvertToMessageBoxInstance(Instance instance) { InstanceStatus status = instance.Status ?? new InstanceStatus(); DateTime? visibleAfter = instance.VisibleAfter; string instanceGuid = instance.Id.Contains("/") ? instance.Id.Split("/")[1] : instance.Id; DateTime createdDateTime = visibleAfter != null && visibleAfter > instance.Created ? (DateTime)visibleAfter : instance.Created.Value; MessageBoxInstance messageBoxInstance = new MessageBoxInstance { CreatedDateTime = createdDateTime, DueDateTime = instance.DueBefore, Id = instanceGuid, InstanceOwnerId = instance.InstanceOwner.PartyId, LastChangedBy = FindLastChangedBy(instance), Org = instance.Org, AppName = instance.AppId.Split('/')[1], ProcessCurrentTask = GetSBLStatusForCurrentTask(instance), AllowNewCopy = false, DeletedDateTime = status.SoftDeleted, ArchivedDateTime = status.Archived, DeleteStatus = status.SoftDeleted.HasValue ? DeleteStatusType.SoftDeleted : DeleteStatusType.Default, ReadStatus = status.ReadStatus }; return(messageBoxInstance); }
internal protected void RefreshInstanceInfo() { InstanceInfo info = ApplicationInfoManager.Instance.InstanceInfo; if (info == null) { return; } ApplicationInfoManager.Instance.RefreshLeaseInfo(); InstanceStatus status = InstanceStatus.UNKNOWN; if (HealthCheckHandler != null) { try { status = HealthCheckHandler.GetStatus(info.Status); } catch (Exception e) { _logger?.LogError("RefreshInstanceInfo HealthCheck handler exception: {0}, App: {1}, Instance: {2} marked DOWN", e, info.AppName, info.InstanceId); status = InstanceStatus.DOWN; } } if (status != InstanceStatus.UNKNOWN) { info.Status = status; } }
private void SetStatus(InstanceStatus status) { _status = status; foreach (var listener in _instanceManager._instanceEventListeners) { listener.OnInstanceStatus(_id, _status); } }
public override InstanceStatus GetStatus(InstanceStatus currentStatus) { using var scope = _scopeFactory.CreateScope(); _contributors = scope.ServiceProvider.GetServices <IHealthContributor>().ToList(); var result = base.GetStatus(currentStatus); _contributors = null; return(result); }
private static void WaitForDeploymentStatus( DeploymentStatus deploymentStatus, InstanceStatus instanceStatus, string subscriptionId, string serviceName, DeploymentSlot deploymentSlot, X509Certificate2 managementCertificate, bool mostIsGoodEnough) { // assume we haven't matched the desired status bool statusMatches = false; do { // sleep for a bit... Thread.Sleep(TimeSpan.FromSeconds(5)); WriteStatus("."); // get the current status FullDeploymentStatus current = Utilities.GetDeploymentSlotStatus( subscriptionId, serviceName, deploymentSlot, managementCertificate); // if the main status matches if (current.MainStatus == deploymentStatus) { // good so far... statusMatches = true; int countMatch = 0; // see if all instance status's also match foreach (InstanceDetails instance in current.Instances) { if (instance.Status != instanceStatus) { // we have a bad apple statusMatches = false; } else { countMatch++; } } if (mostIsGoodEnough && ((double)countMatch / current.Instances.Count) >= 0.8) { statusMatches = true; } } }while (!statusMatches); WriteStatusLine(string.Format(" {0}", deploymentStatus)); }
public Task UpdateStatusAsync(string address, InstanceStatus status) { var notificationSub = dbSet.SingleOrDefault(n => n.Address == address); if (notificationSub != null) { notificationSub.InstanceStatus = status; dbSet.Update(notificationSub); } return(dbContext.SaveChangesAsync()); }
public Instance(InstanceManager instanceManager, string id, Package package, ILogger logger, IBindingInterface bindingInterface, ISettings settings) { _instanceManager = instanceManager; _id = id; _package = package; _logger = logger; _bindingInterface = bindingInterface; _status = InstanceStatus.Idle; Configuration = InstanceConfiguration.CreateDefault(settings); }
private void WaitForStatus(ConnectImpl conn, InstanceStatus staus) { int i = Timeout; while (conn.InstanceStatus != staus && i > 0) { Thread.Sleep(100); i -= 100; } Assert.That(conn.InstanceStatus, Is.EqualTo(staus)); }
public InstanceStatus GetStatus() { InstanceStatus status = new InstanceStatus() { ServerInstanceID = Program.InstanceConfig.ServerInstanceID, HttpEndpoint = string.Empty, SecureHttpEndpoint = string.Empty }; return(status); }
public void BroadcastInstanceStatus(string instanceId, InstanceStatus status) { var packet = new Packet(Header.InstanceStatus, Packet.NoRequestId); packet.Write(instanceId); packet.Write((int)status); int length; var buffer = packet.GetInternalBuffer(out length); Broadcast(buffer, 0, length); }
private void SaveHelper(string outputFolder, BizTalkOperations biztalkOps, InstanceStatus statusToFind) { int i = 0; foreach (Instance instance in biztalkOps.GetServiceInstances()) { if (instance is OrchestrationInstance) { OrchestrationInstance orchInstance = instance as OrchestrationInstance; if (orchInstance.InstanceStatus == statusToFind) { i = i + 1; if (orchInstance.CreationTime >= DateTime.Parse(textStartDate.Text) && orchInstance.CreationTime <= DateTime.Parse(textEndDate.Text)) { Trace(string.Format( "Found orch ({0}) in date range. Creation date:{1}", i, orchInstance.CreationTime)); bool msgFound = false; foreach (IBaseMessage msg in orchInstance.Messages) { IBaseMessagePart part = msg.BodyPart; if (part == null) { Trace("Found null message attached to service instance."); } else { using (StreamWriter sw = new StreamWriter(Path.Combine(outputFolder, msg.MessageID.ToString()))) { Trace("Saving message attached to service instance with msgid:" + msg.MessageID.ToString()); using (StreamReader partReader = new StreamReader(part.Data)) { sw.Write(partReader.ReadToEnd()); } sw.Close(); msgFound = true; } } } if (!msgFound) { Trace(string.Format("No messages found for instance: " + instance.ID.ToString())); } CompletionStatus status = biztalkOps.TerminateInstance(instance.ID); Trace(string.Format("Terminating instance: {0} yielded {1}", instance.ID.ToString(), status)); } } } } }
/// <summary> /// override startup method /// </summary> /// <param name="e"></param> protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); _regLicence = new RegisterLicence(); InstanceStatus instanceStatus = new InstanceStatus(); //instanceStatus.IsSingleInstance(_regLicence, new MainWindow(), Constants.InternalLogoPath, "WallX", "Version 1.0"); //instanceStatus.IsSingleInstance(new MainWindow(), Constants.InternalLogoPath, "WallX", "Version 1.0"); _regLicence.IsLicenceValid(new MainWindow(), Constants.InternalLogoPath, "WallX", "Version 1.0"); //new MainWindow().Show(); }
internal InstanceInfo() { _overRiddenStatus = InstanceStatus.UNKNOWN; _isSecurePortEnabled = false; _isCoordinatingDiscoveryServer = false; _isUnsecurePortEnabled = true; _countryId = 1; _port = 7001; _securePort = 7002; _sid = "na"; _metaData = new Dictionary <string, string>(); _isDirty = false; _lastUpdatedTimestamp = _lastDirtyTimestamp = DateTime.UtcNow.Ticks; _status = InstanceStatus.UP; }
public InstanceInfo() { OverriddenStatus = InstanceStatus.UNKNOWN; IsSecurePortEnabled = false; IsCoordinatingDiscoveryServer = false; IsUnsecurePortEnabled = true; CountryId = 1; Port = 7001; SecurePort = 7002; LastUpdatedTimestamp = LastDirtyTimestamp = DateTime.UtcNow.Ticks; _sid = "na"; _metaData = new Dictionary <string, string>(); _isDirty = false; _status = InstanceStatus.UP; }
private void SaveMessages( string mgmtDbServer, string mgmtDbName, string outputFolder) { AppSettingsReader appSet = new System.Configuration.AppSettingsReader(); InstanceStatus statusToFind = (InstanceStatus)Enum.Parse(typeof(InstanceStatus), (string)appSet.GetValue("State", typeof(string))); BizTalkOperations biztalkOps = new BizTalkOperations(mgmtDbServer, mgmtDbName); int retryCount = 0; bool retryLoop = true; while (retryLoop) { try { SaveHelper(outputFolder, biztalkOps, statusToFind); retryLoop = false; } catch (System.Exception ex) { // For large numbers of messages, the connection occasionally breaks off... if (ex.Message.IndexOf("Failed to connect") > -1) { bool connectSuccess = false; while (!connectSuccess) { try { retryCount++; Trace(string.Format("Connection failure {0} - trying again.", retryCount)); this.Refresh(); System.Threading.Thread.Sleep(500); biztalkOps = new BizTalkOperations(mgmtDbServer, mgmtDbName); connectSuccess = true; } catch { } } } } } Trace("Done."); }
private void WriteInstanceStatus(InstanceStatus status) { using (var fs = new FileStream(_uniqueFilePath, FileMode.Create)) { using (var writer = new BinaryWriter(fs)) { writer.Write(status.ProcessId); writer.Write(status.CommandLineArgs.Count); foreach (var arg in status.CommandLineArgs) { writer.Write(arg); } } } }
/// <summary> /// Converts to a simpler instance object that includes some application metadata /// </summary> public static MessageBoxInstance ConvertToMessageBoxInstance(Instance instance) { InstanceStatus status = instance.Status ?? new InstanceStatus(); DateTime? visibleAfter = instance.VisibleAfter; string instanceGuid = instance.Id.Contains('/') ? instance.Id.Split('/')[1] : instance.Id; DateTime createdDateTime = visibleAfter != null && visibleAfter > instance.Created ? (DateTime)visibleAfter : instance.Created.Value; MessageBoxInstance messageBoxInstance = new MessageBoxInstance { CreatedDateTime = createdDateTime, DueDateTime = instance.DueBefore, Id = instanceGuid, InstanceOwnerId = instance.InstanceOwner.PartyId, LastChangedBy = FindLastChanged(instance).LastChangedBy, Org = instance.Org, AppName = instance.AppId.Split('/')[1], ProcessCurrentTask = GetSBLStatusForCurrentTask(instance), AllowNewCopy = false, DeletedDateTime = status.SoftDeleted, ArchivedDateTime = status.Archived, DeleteStatus = status.SoftDeleted.HasValue ? DeleteStatusType.SoftDeleted : DeleteStatusType.Default, ReadStatus = status.ReadStatus, DataValues = instance.DataValues }; if (instance.PresentationTexts is not null) { messageBoxInstance.PresentationText = string.Join(", ", instance.PresentationTexts.Select(pt => pt.Value).ToArray()); } if (instance.Status?.Substatus != null) { messageBoxInstance.Substatus = new Substatus { Label = instance.Status.Substatus.Label, Description = instance.Status.Substatus.Description }; } return(messageBoxInstance); }
internal HealthStatus MakeHealthStatus(InstanceStatus lastRemoteInstanceStatus) { if (lastRemoteInstanceStatus == InstanceStatus.DOWN) { return(HealthStatus.DOWN); } if (lastRemoteInstanceStatus == InstanceStatus.OUT_OF_SERVICE) { return(HealthStatus.OUT_OF_SERVICE); } if (lastRemoteInstanceStatus == InstanceStatus.UP) { return(HealthStatus.UP); } return(HealthStatus.UNKNOWN); }
/// <summary> /// Converts to a simpler instance object that includes some application metadata /// </summary> /// <param name="instances">List of instances to convert.</param> /// <param name="appTitles">Dictionary for application titles by language.</param> /// <param name="language">Desired language.</param> public static List <MessageBoxInstance> ConvertToMessageBoxInstanceList(List <Instance> instances, Dictionary <string, Dictionary <string, string> > appTitles, string language) { List <MessageBoxInstance> messageBoxInstances = new List <MessageBoxInstance>(); if (instances == null || instances.Count == 0) { return(messageBoxInstances); } foreach (Instance instance in instances) { InstanceStatus status = instance.Status ?? new InstanceStatus(); DateTime? visibleAfter = instance.VisibleAfter; string title = appTitles[instance.AppId].ContainsKey(language) ? appTitles[instance.AppId][language] : appTitles[instance.AppId]["nb"]; string instanceId = instance.Id.Contains("/") ? instance.Id.Split("/")[1] : instance.Id; DateTime createdDateTime = visibleAfter != null && visibleAfter > instance.Created ? (DateTime)visibleAfter : instance.Created.Value; messageBoxInstances.Add(new MessageBoxInstance { CreatedDateTime = createdDateTime, DueDateTime = instance.DueBefore, Id = instanceId, InstanceOwnerId = instance.InstanceOwner.PartyId, LastChangedBy = FindLastChangedBy(instance), Org = instance.Org, AppName = instance.AppId.Split('/')[1], Title = title, ProcessCurrentTask = GetSBLStatusForCurrentTask(instance), AuthorizedForWrite = true, AllowDelete = true, AllowNewCopy = false, DeletedDateTime = status.SoftDeleted, ArchivedDateTime = status.Archived, DeleteStatus = status.SoftDeleted.HasValue ? DeleteStatusType.SoftDeleted : DeleteStatusType.Default, }); } return(messageBoxInstances); }
public async Task <InstanceStatus> GetState() { var request = new DescribeInstanceStatusRequest(); request.InstanceIds = new List <string>() { BotConfig.GetCachedConfig().Aws.EC2InstanceId }; request.IncludeAllInstances = true; // show instances that aren't running as well var response = await client.DescribeInstanceStatusAsync(request); InstanceStatus status = null; response.InstanceStatuses.ForEach(i => // unpack the response into an instance status { Console.WriteLine("checking state of instance " + i.InstanceId); status = i; }); return(status); }
public double GetLoadFactor() { int maxSlot = 0; int usedSlot = 0; lock (this) { List <string> diedInstances = new List <string>(); foreach (KeyValuePair <string, InstanceStatus> entry in instances) { InstanceStatus status = entry.Value; maxSlot += status.MaxRunningTask; usedSlot += status.CurrentRunningTask; } } if (maxSlot == 0) { return(1.0d); } return((double)usedSlot / (double)maxSlot); }
public static bool QueryStatus(InstanceStatus status) { var thisProcess = Process.GetCurrentProcess(); return Utility.DoTimeout( () => { try { return Process.GetProcessesByName(thisProcess.ProcessName) .Where(process => process.Id != thisProcess.Id) .Select(process => new Client(process)) .Any(client => client.Status == status); } catch (Exception) { return false; } }, 500); }
public static bool QueryStatus(InstanceStatus status) { var thisProcess = Process.GetCurrentProcess(); return(Utility.DoTimeout( () => { try { return Process.GetProcessesByName(thisProcess.ProcessName) .Where(process => process.Id != thisProcess.Id) .Select(process => new Client(process)) .Any(client => client.Status == status); } catch (Exception) { return false; } }, 500)); }
public static async Task AwaitInstanceStateCode(this EC2Helper ec2, string instanceId, InstanceStateCode instanceStateCode, int timeout_ms, int intensity = 1500, CancellationToken cancellationToken = default(CancellationToken)) { var sw = Stopwatch.StartNew(); InstanceStatus status = null; do { if (status != null) { await Task.Delay(intensity); } status = await ec2.DescribeInstanceStatusAsync(instanceId, cancellationToken); if (status.InstanceState.Code == (int)instanceStateCode) { return; } }while (sw.ElapsedMilliseconds < timeout_ms); throw new TimeoutException($"Instance {instanceId} could not reach state code {instanceStateCode.ToString()}, last state: {status?.InstanceState?.Code.ToEnumStringOrDefault<InstanceStateCode>($"<convertion failure of value {status?.InstanceState?.Code}>")}"); }
public void OnInstanceStatus(string instanceId, InstanceStatus status) { ExecuteOnMainThread(() => { var data = new { instanceId = instanceId, status = (int)status }; foreach (var client in Clients) { try { client.SendPacket("is", data); } catch (SocketException) { } } }); }
/// <summary> /// Converts to a simpler instance object that includes some application metadata /// </summary> public static MessageBoxInstance ConvertToMessageBoxInstance(Instance instance) { InstanceStatus status = instance.Status ?? new InstanceStatus(); DateTime? visibleAfter = instance.VisibleAfter; string instanceGuid = instance.Id.Contains("/") ? instance.Id.Split("/")[1] : instance.Id; DateTime createdDateTime = visibleAfter != null && visibleAfter > instance.Created ? (DateTime)visibleAfter : instance.Created.Value; string lastChangedBy = FindLastChangedBy(instance); // last changed by is set to null if instance has only been modified by an organisation // to ensure correct rendering in messagebox. if (instance.Created.Value == instance.LastChanged.Value && IsValidOrganizationNumber(lastChangedBy)) { lastChangedBy = "0"; } MessageBoxInstance messageBoxInstance = new MessageBoxInstance { CreatedDateTime = createdDateTime, DueDateTime = instance.DueBefore, Id = instanceGuid, InstanceOwnerId = instance.InstanceOwner.PartyId, LastChangedBy = lastChangedBy, Org = instance.Org, AppName = instance.AppId.Split('/')[1], ProcessCurrentTask = GetSBLStatusForCurrentTask(instance), AllowNewCopy = false, DeletedDateTime = status.SoftDeleted, ArchivedDateTime = status.Archived, DeleteStatus = status.SoftDeleted.HasValue ? DeleteStatusType.SoftDeleted : DeleteStatusType.Default, }; return(messageBoxInstance); }
private static void WaitForDeploymentStatus( DeploymentStatus deploymentStatus, InstanceStatus instanceStatus, string subscriptionId, string serviceName, DeploymentSlot deploymentSlot, X509Certificate2 managementCertificate, bool mostIsGoodEnough) { // assume we haven't matched the desired status bool statusMatches = false; do { // sleep for a bit... Thread.Sleep(TimeSpan.FromSeconds(5)); WriteStatus("."); // get the current status FullDeploymentStatus current = Utilities.GetDeploymentSlotStatus( subscriptionId, serviceName, deploymentSlot, managementCertificate); // if the main status matches if (current.MainStatus == deploymentStatus) { // good so far... statusMatches = true; int countMatch = 0; // see if all instance status's also match foreach (InstanceDetails instance in current.Instances) { if (instance.Status != instanceStatus) { // we have a bad apple statusMatches = false; } else { countMatch++; } } if (mostIsGoodEnough && ((double)countMatch / current.Instances.Count) >= 0.8) { statusMatches = true; } } } while (!statusMatches); WriteStatusLine(string.Format(" {0}", deploymentStatus)); }
private void WriteInstanceStatus(InstanceStatus status) { using (var fs = new FileStream(_uniqueFilePath, FileMode.Create)) { using (var writer = new BinaryWriter(fs)) { writer.Write(status.ProcessId); writer.Write(status.CommandLineArgs.Count); foreach (var arg in status.CommandLineArgs) { writer.Write(arg); } } } }
private void WaitForStatus(ConnectImpl conn, InstanceStatus staus) { int i = Timeout; while (conn.InstanceStatus != staus && i > 0) { Thread.Sleep(100); i -= 100; } Assert.That(conn.InstanceStatus, Is.EqualTo(staus)); }