/// <summary> /// Initializes a new instance of the <see cref="FusionDirectorSyncInstance"/> class. /// </summary> /// <param name="fusionDirector"> /// The e sight. /// </param> public FusionDirectorSyncInstance(FusionDirector fusionDirector) { this.IsRunning = true; this.FusionDirector = fusionDirector; logger = new FusionDirectorLogger(fusionDirector.HostIP); this.enclosureService = new EnclosureService(fusionDirector); this.fusionDirectorService = new FusionDirectorService(fusionDirector); this.nodePoolService = new NodePoolService(fusionDirector); this.eventService = new EventService(fusionDirector); this.metricsService = new MetricsService(fusionDirector); this.pluginConfig = ConfigHelper.GetPluginConfig(); this.AlarmDatas = new Queue <AlarmData>(); this.AlarmQueue = new Queue <AlarmData>(); this.StartAlarmEventProcessor(); // this.RunInsertEventTask(); this.UpdateServerTasks = new List <UpdateTask <Server> >(); this.UpdateEnclosureTasks = new List <UpdateTask <Enclosure> >(); this.RunPerformanceCollectTask(); this.RunKeepEventTask(); var scheduler = new LimitedConcurrencyLevelTaskScheduler(pluginConfig.ThreadCount); taskFactory = new TaskFactory(cts.Token, TaskCreationOptions.HideScheduler, TaskContinuationOptions.HideScheduler, scheduler); }
/// <summary> /// Runs when update fusion director. /// </summary> /// <param name="fusionDirector">The fusion director.</param> private void RunUpdateFusionDirector(FusionDirector fusionDirector) { HWLogger.GetFdNotifyLogger(fusionDirector.HostIP).Info($"Recieve: update FusionDirector"); var instance = this.FindInstance(fusionDirector); instance.Sync(); }
public void UpdateFusionDirector(FusionDirector fusionDirector) { this.FusionDirector = fusionDirector; this.enclosureService = new EnclosureService(fusionDirector); this.fusionDirectorService = new FusionDirectorService(fusionDirector); this.nodePoolService = new NodePoolService(fusionDirector); this.eventService = new EventService(fusionDirector); this.metricsService = new MetricsService(fusionDirector); }
/// <summary> /// Initializes a new instance of the <see cref="BaseService" /> class. /// </summary> /// <param name="fusionDirector">The fusion director.</param> public BaseService(FusionDirector fusionDirector) { this.FusionDirector = fusionDirector; this.ApiLogger = new FusionDirectorLogger(fusionDirector.HostIP).Api; this.httpClient = new HttpClient { Timeout = TimeSpan.FromSeconds(120) }; this.httpClient.DefaultRequestHeaders.Add("Connection", "close"); this.httpClient.DefaultRequestHeaders.Add("Authorization", this.BaseAuthStr); }
/// <summary> /// Initializes a new instance of the <see cref="BaseService" /> class. /// </summary> /// <param name="fusionDirector">The fusion director.</param> public BaseService(FusionDirector fusionDirector) { //this.LocalCerts = CertDal.Instance.GetCerts(); this.FusionDirector = fusionDirector; this.ApiLogger = new FusionDirectorLogger(fusionDirector.HostIP).Api; this.httpClient = new HttpClient { Timeout = TimeSpan.FromSeconds(120) }; this.httpClient.DefaultRequestHeaders.Add("Authorization", this.BaseAuthStr); }
public void UpdateFusionDirector(FusionDirector fusionDirector) { // TODO(qianbiao.ng) can we dispose clients directly here? what if it's used by other threads? // this.DisposeFusionDirectorClients(); this.FusionDirector = fusionDirector; this.enclosureService = new EnclosureService(fusionDirector); this.fusionDirectorService = new FusionDirectorService(fusionDirector); this.nodePoolService = new NodePoolService(fusionDirector); this.eventService = new EventService(fusionDirector); this.metricsService = new MetricsService(fusionDirector); }
/// <summary> /// Finds the instance. /// </summary> /// <param name="fusionDirector">The fusion director.</param> /// <returns>FusionDirectorSyncInstance.</returns> private FusionDirectorSyncInstance FindInstance(FusionDirector fusionDirector) { var syncInstance = this.SyncInstances.FirstOrDefault(y => y.FusionDirectorIp == fusionDirector.HostIP); if (syncInstance == null) { syncInstance = new FusionDirectorSyncInstance(fusionDirector); this.SyncInstances.Add(syncInstance); } else { syncInstance.UpdateFusionDirector(fusionDirector); } return(syncInstance); }
/// <summary> /// Gets the model from mp object. /// </summary> /// <param name="managementObject">The management object.</param> /// <returns>FdAppliance.</returns> private FusionDirector GetModelFromMpObject(EnterpriseManagementObject managementObject) { var props = FdApplianceConnector.Instance.FdApplianceClass.PropertyCollection; var model = new FusionDirector(); model.HostIP = managementObject[props["HostIP"]].Value.ToString(); model.AliasName = managementObject[props["AliasName"]].Value.ToString(); model.LoginAccount = managementObject[props["LoginAccount"]].Value.ToString(); model.LoginPd = RijndaelManagedCrypto.Instance.DecryptFromCs(managementObject[props["LoginPd"]].Value.ToString()); model.Port = managementObject[props["Port"]].Value.ToString(); model.EventUserName = managementObject[props["EventUserName"]].Value.ToString(); model.EventPd = RijndaelManagedCrypto.Instance.DecryptFromCs(managementObject[props["EventPd"]].Value.ToString()); model.SubscribeId = managementObject[props["SubscribeId"]].Value.ToString(); model.SubscribeStatus = managementObject[props["SubscribeStatus"]].Value.ToString(); model.LatestSubscribeInfo = managementObject[props["LatestSubscribeInfo"]].Value.ToString(); model.LastModifyTime = Convert.ToDateTime(managementObject[props["LastModifyTime"]].Value.ToString()); model.CreateTime = Convert.ToDateTime(managementObject[props["CreateTime"]].Value.ToString()); return(model); }
/// <summary> /// Runs the recive new alarm. /// </summary> /// <param name="json">The json.</param> private void RunReciveNewAlarm(FusionDirector fusionDirector, string json) { var tcpMessage = JsonConvert.DeserializeObject <TcpMessage <AlarmData> >(json); HWLogger.GetFdNotifyLogger(fusionDirector.HostIP).Info($"Recieve new alarm:{JsonConvert.SerializeObject(tcpMessage)}"); var syncInstance = this.SyncInstances.FirstOrDefault(y => y.FusionDirectorIp == fusionDirector.HostIP); if (syncInstance != null) { var data = tcpMessage.Data; if (data != null) { syncInstance.DealNewAlarm(data); } else { HWLogger.GetFdNotifyLogger(fusionDirector.HostIP).Error($"Recieve new alarm:message analysis faild"); } } else { HWLogger.GetFdNotifyLogger(fusionDirector.HostIP).Info($"Recieve new alarm:can not find the syncInstance"); } }
/// <summary> /// Initializes a new instance of the <see cref="EnclosureService" /> class. /// </summary> /// <param name="fusionDirector">The fusion director.</param> public EnclosureService(FusionDirector fusionDirector) : base(fusionDirector) { }
/// <summary> /// Initializes a new instance of the <see cref="FusionDirectorService"/> class. /// </summary> /// <param name="fusionDirector">The fusion director.</param> public FusionDirectorService(FusionDirector fusionDirector) : base(fusionDirector) { }
/// <summary> /// Initializes a new instance of the <see cref="NodePoolService"/> class. /// </summary> /// <param name="fusionDirector">The fusion director.</param> public NodePoolService(FusionDirector fusionDirector) : base(fusionDirector) { }
/// <summary> /// Initializes a new instance of the <see cref="NodePoolService"/> class. /// </summary> /// <param name="fusionDirector">The fusion director.</param> public EventService(FusionDirector fusionDirector) : base(fusionDirector) { }
/// <summary> /// Initializes a new instance of the <see cref="EnclosureService" /> class. /// </summary> /// <param name="fusionDirector">The fusion director.</param> public MetricsService(FusionDirector fusionDirector) : base(fusionDirector) { }