Пример #1
0
        /// <summary>
        /// 返回IESSession
        /// </summary>
        /// <param name="hostIP">eSight IP</param>
        /// <param name="aliasName">别名</param>
        /// <param name="port">eSight 端口</param>
        /// <param name="userAccount">对应的账号</param>
        /// <param name="passowrd">对应的密码</param>
        /// <param name="timeoutSec">连接超时时间,默认:ConstMgr.HWESightHost.DEFAULT_TIMEOUT_SEC</param>
        /// <returns></returns>
        public IESSession SaveNewESSession(string hostIP, string aliasName, int port, string userAccount, string passowrd, int timeoutSec = ConstMgr.HWESightHost.DEFAULT_TIMEOUT_SEC)
        {
            //测试连接...
            using (ESSession eSSession = new ESSession())
            {
                eSSession.SetHttpMode(_isHttps);
                eSSession.InitESight(hostIP, port, userAccount, passowrd, timeoutSec);
                eSSession.Open();
            }

            IESSession iESSession = null;

            iESSession = FindESSession(hostIP); //查找已有的eSesssion,防止重复
            if (iESSession == null)             //没有找到已有的eSight.
            {
                iESSession = new ESSession();
                iESSession.SetHttpMode(_isHttps);                                      //设置默认协议为全局。
            }
            iESSession.InitESight(hostIP, port, userAccount, passowrd, timeoutSec);    //初始化eSight.
            iESSession.HWESightHost.AliasName = aliasName;                             //初始化eSight别名.
            iESSession.Open();                                                         //尝试打开连接,可能会抛出异常。

            iESSession.SaveToDB();                                                     //保存到数据库
            lock (eSightSessions)                                                      //锁定向量,防止并发
            {
                eSightSessions[iESSession.HWESightHost.HostIP.ToUpper()] = iESSession; //存储到缓存。
            }
            return(iESSession);
        }
Пример #2
0
        /// <summary>
        /// 查找eSight主机信息,并且打开.
        /// </summary>
        /// <param name="hostIP">主机IP</param>
        /// <returns>返回查找到的eSight,没有找到返回为null</returns>
        public IESSession FindAndOpenESSession(string hostIP)
        {
            try
            {
                IESSession iESSession = FindESSession(hostIP);
                //Find eSightHost...
                HWESightHost hwESightHost = HWESightHostDal.Instance.FindByIP(hostIP);

                if (iESSession != null)
                {
                    if (IsSameESightHost(hwESightHost, iESSession.HWESightHost))
                    {
                        iESSession.Open();
                    }
                    else
                    {
                        iESSession.InitESight(hwESightHost, ConstMgr.HWESightHost.DEFAULT_TIMEOUT_SEC);
                        iESSession.Open();
                    }
                }
                return(iESSession);
            }
            catch (Exception se)
            {
                LogUtil.HWLogger.API.Error(se);
                throw;
            }
        }
 private static void ValidateESSession(IESSession esSession)
 {
     if (esSession == null)
     {
         throw new ESSessionExpceion(ConstMgr.ErrorCode.NET_ESIGHT_NOFOUND, esSession, "没有发现ESSession!");
     }
 }
 private static void ConnectESSession(IESSession esSession)
 {
     if (string.IsNullOrEmpty(esSession.OpenID))
     {
         esSession.Open();
     }
 }
Пример #5
0
        public void SaveNewESSessionTest()
        {
            IESSession iSession = ESightEngine.Instance.SaveNewESSession(_hwESightHost.HostIP, _hwESightHost.HostPort, _hwESightHost.LoginAccount, _hwESightHost.LoginPwd);

            Assert.IsNotNull(iSession);
            iSession = ESightEngine.Instance.SaveESSession(_hwESightHost.HostIP, "Tom", _hwESightHost.HostPort);
            Assert.IsNotNull(iSession);
        }
        /// <summary>
        /// 根据eSight IP获取ESSession对象
        /// </summary>
        /// <param name="hostIP">eSight IP</param>
        /// <returns></returns>
        public static IESSession GetESSession(string hostIP)
        {
            IESSession esSession = ESightEngine.Instance.FindESSession(hostIP);

            ValidateESSession(esSession);
            ConnectESSession(esSession);
            return(esSession);
        }
Пример #7
0
        public void RemoveESSessionTest1()
        {
            IESSession iSession = ESightEngine.Instance.SaveNewESSession(_hwESightHost.HostIP, _hwESightHost.HostPort, _hwESightHost.LoginAccount, _hwESightHost.LoginPwd);

            Assert.IsNotNull(iSession);
            iSession = ESightEngine.Instance.FindESSession(_hwESightHost.HostIP);
            ESightEngine.Instance.RemoveESSession(new int[] { iSession.HWESightHost.ID });
        }
Пример #8
0
        public void RemoveESSessionTest()
        {
            IESSession iSession = ESightEngine.Instance.SaveNewESSession(_hwESightHost.HostIP, _hwESightHost.HostPort, _hwESightHost.LoginAccount, _hwESightHost.LoginPwd);

            Assert.IsNotNull(iSession);
            bool removed = ESightEngine.Instance.RemoveESSession(new string[] { _hwESightHost.HostIP });

            Assert.IsTrue(removed);
        }
Пример #9
0
        public void FindAndOpenESSessionTest()
        {
            IESSession iSession = ESightEngine.Instance.SaveNewESSession(_hwESightHost.HostIP, _hwESightHost.HostPort, _hwESightHost.LoginAccount, _hwESightHost.LoginPwd);

            Assert.IsNotNull(iSession);
            iSession = ESightEngine.Instance.FindAndOpenESSession(_hwESightHost.HostIP);
            Assert.IsNotNull(iSession);
            Assert.IsTrue(iSession.IsConnected());
        }
Пример #10
0
        /// <summary>
        /// 刷新密码。时机是每次启动时,这里会加在这个单例的初始化。
        /// 重置密钥,并且更新密码。
        /// 规则1:密钥须支持可更新,并明确更新周期,在一次性可编程的芯片中保存的密钥除外
        /// 说明:工作密钥及密钥加密密钥在使用过程中,都应保证其可以更新。对于根密钥暂不要求必须支持可更新。
        /// </summary>
        public void RefreshPwds()
        {
            LogUtil.HWLogger.DEFAULT.InfoFormat("Refresh password with encryption...");
            lock (_lockRefreshPwds)
            {
                lock (eSightSessions)
                {
                    using (var mutex = new System.Threading.Mutex(false, "huawei.sccmplugin.engine")) {
                        if (mutex.WaitOne(TimeSpan.FromSeconds(60), false))
                        {
                            string oldMainKey = "";
                            //2017-10-11 检查是否需要升级的密钥。
                            if (!EncryptUtil.IsCompatibleVersion())
                            {
                                oldMainKey = EncryptUtil.GetMainKey1060();
                                LogUtil.HWLogger.DEFAULT.InfoFormat("oldMainKey:{0}", oldMainKey);
                                if (string.IsNullOrEmpty(oldMainKey))
                                {
                                    return;
                                }
                                EncryptUtil.ClearAndUpgradeKey();
                            }
                            else
                            {
                                //旧的key
                                oldMainKey = EncryptUtil.GetMainKeyWithoutInit();
                                if (string.IsNullOrEmpty(oldMainKey))
                                {
                                    return;
                                }
                                //重新初始化主密钥。
                                EncryptUtil.InitMainKey();
                            }

                            string newMainKey = EncryptUtil.GetMainKeyFromPath();
                            // LogUtil.HWLogger.DEFAULT.InfoFormat("Change key,oldMainKey={1},newMainKey={1}",oldMainKey,newMainKey);
                            //遍历所有session.
                            IList <HWESightHost> hostlist = ESightEngine.Instance.ListESHost();
                            foreach (HWESightHost eSightHost in hostlist)
                            {
                                string pwd   = EncryptUtil.DecryptWithKey(oldMainKey, eSightHost.LoginPwd);
                                string enPwd = EncryptUtil.EncryptWithKey(newMainKey, pwd);

                                IESSession iESSession = FindESSession(eSightHost.HostIP);
                                iESSession.HWESightHost.LoginPwd = enPwd;

                                eSightSessions[eSightHost.HostIP.ToUpper()] = iESSession;
                                iESSession.SaveToDB();
                            }
                        }
                    }
                }
            }
            LogUtil.HWLogger.DEFAULT.InfoFormat("Refresh password with encryption successful!");
        }
 public static void ClassInitialize(TestContext context)
 {
     _hwESightHost              = new HWESightHost();
     _hwESightHost.HostIP       = "127.0.0.1";
     _hwESightHost.HostPort     = 32102;
     _hwESightHost.LoginAccount = "test";
     _hwESightHost.LoginPwd     = "test";
     _esSession = new ESSession();
     _esSession.SetHttpMode(true);
     _esSession.InitESight(_hwESightHost, ConstMgr.HWESightHost.DEFAULT_TIMEOUT_SEC);
 }
Пример #12
0
        /// <summary>
        /// 删除一个已有的eSight.
        /// </summary>
        /// <param name="hostIP">eSight IP</param>
        /// <returns>默认返回成功</returns>
        public bool RemoveESSession(string hostIP)
        {
            IESSession iESSession = FindESSession(hostIP);

            if (iESSession != null)//没有找到已有的eSight.
            {
                eSightSessions.Remove(hostIP.ToUpper());
                iESSession.DeleteESight();
            }
            return(true);
        }
        /// <summary>
        /// 加载模板列表, 用于模板列表UI、添加模板任务UI
        /// </summary>
        public static WebReturnLGResult <DeployTemplate> GetTemplateList(object eventData)
        {
            var ret = new WebReturnLGResult <DeployTemplate>()
            {
                Code = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR)
            };

            try
            {
                //1. 解析js传过来的参数
                var jsData            = JsonUtil.SerializeObject(eventData);
                var webOneESightParam = JsonUtil.DeserializeObject <WebOneESightParam <ParamPagingOfQueryTemplate> >(jsData);
                LogUtil.HWLogger.UI.InfoFormat("Querying template list, the param is [{0}]", jsData);
                int    pageNo       = -1;
                int    pageSize     = int.MaxValue;
                string templateType = "";
                if (webOneESightParam.Param != null)
                {
                    pageSize     = webOneESightParam.Param.PageSize;
                    pageNo       = webOneESightParam.Param.PageNo;
                    templateType = webOneESightParam.Param.TemplateType;
                }

                //2. 根据HostIP获取IESSession
                IESSession esSession = ESSessionHelper.GetESSession(webOneESightParam.ESightIP);
                //3. 获取模板列表数据
                var deployTemplate = esSession.DeployWorker.QueryTemplatePage(pageNo, pageSize, templateType);
                //4. 返回数据
                ret.Code        = 0;
                ret.Data        = deployTemplate.Data;
                ret.TotalNum    = deployTemplate.TotalNum;
                ret.Description = "";
                LogUtil.HWLogger.UI.InfoFormat("Querying template list successful, the ret is [{0}]", JsonUtil.SerializeObject(ret));
            }
            catch (BaseException ex)
            {
                ret.Code        = CoreUtil.GetObjTranNull <int>(ex.Code);
                ret.ErrorModel  = ex.ErrorModel;
                ret.Description = ex.Message;
                ret.Data        = null;
                ret.TotalNum    = 0;
                LogUtil.HWLogger.UI.Error("Querying template list failed: ", ex);
            }
            catch (Exception ex)
            {
                ret.Code        = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR);
                ret.Description = ex.InnerException.Message ?? ex.Message;
                ret.Data        = null;
                ret.TotalNum    = 0;
                LogUtil.HWLogger.UI.Error("Querying template list failed: ", ex);
            }
            return(ret);
        }
Пример #14
0
        /// <summary>
        /// 修改已有的eSight信息,如果不存在则抛出错误。
        /// </summary>
        /// <param name="hostIP">eSight IP</param>
        /// <param name="aliasName">别名</param>
        /// <param name="port">eSight 端口</param>
        /// <returns></returns>
        public IESSession SaveESSession(string hostIP, string aliasName, int port)
        {
            IESSession iESSession = null;

            iESSession = FindESSession(hostIP);
            if (iESSession != null)
            {
                SaveNewESSession(hostIP, aliasName, port, iESSession.HWESightHost.LoginAccount, iESSession.HWESightHost.LoginPwd);
            }
            else
            {
                throw new BaseException(ConstMgr.ErrorCode.NET_ESIGHT_NOFOUND, this, "Sytem can not find this eSight");
            }
            return(iESSession);
        }
Пример #15
0
        public void TestOpenId()
        {
            ESightEngine.Instance.SaveNewESSession(_hwESightHost.HostIP, _hwESightHost.HostPort, _hwESightHost.LoginAccount, _hwESightHost.LoginPwd);
            IESSession  iSession         = ESightEngine.Instance.FindAndOpenESSession(_hwESightHost.HostIP);
            DeviceParam queryDeviceParam = new DeviceParam();

            queryDeviceParam.ServerType = ConstMgr.HWDevice.SERVER_TYPE_BLADE;
            queryDeviceParam.StartPage  = 1;
            queryDeviceParam.PageSize   = 100;
            queryDeviceParam.PageOrder  = "ipAddress";
            queryDeviceParam.OrderDesc  = true;
            QueryPageResult <HWDevice> hwDevicePageResult = iSession.QueryHWPage(queryDeviceParam);

            LogUtil.HWLogger.DEFAULT.Info(hwDevicePageResult);
            Assert.IsTrue(!string.IsNullOrEmpty(iSession.OpenID));
        }
        /// <summary>
        /// 获取已上传软件源列表,用于软件源管理UI,添加OS模板中的查询软件源UI
        /// </summary>
        /// <param name="eventData"></param>
        /// <returns></returns>
        public static WebReturnLGResult <SourceItem> GetSoftwareList(object eventData)
        {
            var ret = new WebReturnLGResult <SourceItem>()
            {
                Code = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR), Description = ""
            };

            try
            {
                //1. 解析js传过来的参数
                var jsData            = JsonUtil.SerializeObject(eventData);
                var webOneESightParam = JsonUtil.DeserializeObject <WebOneESightParam <ParamOnlyPagingInfo> >(jsData);
                LogUtil.HWLogger.UI.InfoFormat("Querying software list, the param is [{0}]", jsData);
                int pageSize = webOneESightParam.Param.PageSize;
                int pageNo   = webOneESightParam.Param.PageNo;
                //2. 根据HostIP获取IESSession
                IESSession esSession = ESSessionHelper.GetESSession(webOneESightParam.ESightIP);
                //3. 获取软件源列表数据
                var softwareSourceList = esSession.SoftSourceWorker.QuerySoftwarePage(pageNo, pageSize);
                //4. 返回数据
                ret.Code        = 0;
                ret.Data        = softwareSourceList.Data;
                ret.TotalNum    = softwareSourceList.TotalNum;
                ret.Description = "";

                LogUtil.HWLogger.UI.InfoFormat("Querying software list successful, the ret is [{0}]", JsonUtil.SerializeObject(ret));
            }
            catch (BaseException ex)
            {
                ret.Code        = CoreUtil.GetObjTranNull <int>(ex.Code);
                ret.ErrorModel  = ex.ErrorModel;
                ret.Description = ex.Message;
                ret.Data        = null;
                ret.TotalNum    = 0;
                LogUtil.HWLogger.UI.Error("Querying software list failed: ", ex);
            }
            catch (Exception ex)
            {
                ret.Code        = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR);
                ret.Description = ex.InnerException.Message ?? ex.Message;
                ret.Data        = null;
                ret.TotalNum    = 0;
                LogUtil.HWLogger.UI.Error("Querying software list failed: ", ex);
            }
            return(ret);
        }
        /// <summary>
        /// 添加模板任务
        /// </summary>
        private WebReturnResult <JObject> Save(object eventData)
        {
            var ret = new WebReturnResult <JObject>()
            {
                Code = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR)
            };

            try
            {
                //1. 获取UI传来的参数
                var jsData            = JsonUtil.SerializeObject(eventData);
                var webOneESightParam = JsonUtil.DeserializeObject <WebOneESightParam <ParamOfAddDeployTask> >(jsData);
                LogUtil.HWLogger.UI.InfoFormat("Saving template task..., the param is [{0}]", jsData);
                //2. 根据HostIP获取IESSession
                IESSession esSession = ESSessionHelper.GetESSession(webOneESightParam.ESightIP);
                //3. 保存
                DeployTask deployTask = new DeployTask();
                deployTask.DeviceDn  = webOneESightParam.Param.DeviceDn;
                deployTask.Templates = webOneESightParam.Param.Templates;
                string taskName = esSession.DeployWorker.AddDeployTask(webOneESightParam.Param.TaskSourceName, deployTask);
                //4. 返回数据
                JObject taskObject = new JObject();
                taskObject.Add("taskName", taskName);
                ret.Code        = 0;
                ret.Description = "";
                ret.Data        = taskObject;
                LogUtil.HWLogger.UI.InfoFormat("Saving template task completed! the ret is [{0}]", JsonUtil.SerializeObject(ret));
            }
            catch (BaseException ex)
            {
                LogUtil.HWLogger.UI.Error("Saving template task failed: ", ex);
                ret.Code        = CoreUtil.GetObjTranNull <int>(ex.Code);
                ret.ErrorModel  = ex.ErrorModel;
                ret.Description = ex.Message;
                ret.Data        = null;
            }
            catch (Exception ex)
            {
                LogUtil.HWLogger.UI.Error("Saving template task failed: ", ex);
                ret.Code        = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR);
                ret.Description = ex.InnerException.Message ?? ex.Message;
                ret.Data        = null;
            }
            return(ret);
        }
Пример #18
0
        /// <summary>
        /// 查询已有的连接列表
        /// </summary>
        /// <returns>返回已有的连接列表</returns>
        public IList <IESSession> ListESSessions()
        {
            lock (eSightSessions)
            {
                IList <IESSession>   retList  = new List <IESSession>();
                IList <HWESightHost> hostList = ListESHost();
                Dictionary <string, HWESightHost> tmpSessions = new Dictionary <string, HWESightHost>();
                foreach (HWESightHost hwESightHost in hostList)
                {
                    tmpSessions[hwESightHost.HostIP.ToUpper()] = hwESightHost;
                    if (eSightSessions.ContainsKey(hwESightHost.HostIP.ToUpper()))//Already exists...
                    {
                        IESSession iESession = eSightSessions[hwESightHost.HostIP.ToUpper()];
                        if (IsSameESightHost(hwESightHost, iESession.HWESightHost))
                        {
                            retList.Add(eSightSessions[hwESightHost.HostIP.ToUpper()]);
                        }
                        else//If not same reinit. 将list增加给retlist
                        {
                            iESession.InitESight(hwESightHost, ConstMgr.HWESightHost.DEFAULT_TIMEOUT_SEC);
                            retList.Add(iESession);
                        }
                    }
                    else
                    {//Create new...
                        IESSession iESSession = new ESSession();
                        iESSession.SetHttpMode(_isHttps);
                        iESSession.InitESight(hwESightHost, ConstMgr.HWESightHost.DEFAULT_TIMEOUT_SEC);
                        eSightSessions[hwESightHost.HostIP.ToUpper()] = iESSession;

                        retList.Add(iESSession);
                    }
                }
                //Clean unused sessions.
                IList <IESSession> existsList = new List <IESSession>(eSightSessions.Values);
                foreach (IESSession ieSSession in existsList)
                {
                    if (!tmpSessions.ContainsKey(ieSSession.HWESightHost.HostIP.ToUpper()))
                    {
                        eSightSessions.Remove(ieSSession.HWESightHost.HostIP.ToUpper());
                    }
                }
                return(retList);
            }
        }
Пример #19
0
 /// <summary>
 /// 查找eSight主机信息,并且打开.
 /// </summary>
 /// <param name="hostIP">主机IP</param>
 /// <returns>返回查找到的eSight,没有找到返回为null</returns>
 public IESSession FindAndOpenESSession(string hostIP)
 {
     try
     {
         IESSession iESSession = FindESSession(hostIP);
         if (iESSession != null)
         {
             iESSession.Open();
             iESSession.SaveToDB();//保存状态。
         }
         return(iESSession);
     }
     catch (Exception se)
     {
         LogUtil.HWLogger.API.Error(se);
         throw;
     }
 }
        /// <summary>
        /// 加载模板任务列表
        /// </summary>
        private QueryPageResult <HWESightTask> GetTaskList(object eventData)
        {
            var ret = new QueryPageResult <HWESightTask>()
            {
                Code = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR)
            };

            try
            {
                //1. 解析js传过来的参数
                var jsData            = JsonUtil.SerializeObject(eventData);
                var webOneESightParam = JsonUtil.DeserializeObject <WebOneESightParam <QueryDeployParam> >(jsData);
                LogUtil.HWLogger.UI.InfoFormat("Querying template task list, the param is [{0}]", jsData);
                //2. 根据HostIP获取IESSession
                IESSession esSession = ESSessionHelper.GetESSession(webOneESightParam.ESightIP);
                //3. 获取模板列表数据
                QueryPageResult <HWESightTask> templateTaskList = esSession.DeployWorker.FindDeployTaskWithSync(webOneESightParam.Param);
                //4. 返回数据
                ret = templateTaskList;
                LogUtil.HWLogger.UI.InfoFormat("Querying template task list successful, the ret is [{0}]", JsonUtil.SerializeObject(ret));
            }
            catch (BaseException ex)
            {
                ret.Code        = CoreUtil.GetObjTranNull <int>(ex.Code);
                ret.ErrorModel  = ex.ErrorModel;
                ret.Description = ex.Message;
                ret.Data        = null;
                ret.TotalPage   = 0;
                ret.TotalSize   = 0;
                LogUtil.HWLogger.UI.Error("Querying template task list failed: ", ex);
            }
            catch (Exception ex)
            {
                ret.Code        = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR);
                ret.Description = ex.InnerException.Message ?? ex.Message;
                ret.Data        = null;
                ret.TotalPage   = 0;
                ret.TotalSize   = 0;
                LogUtil.HWLogger.UI.Error("Querying template task list failed: ", ex);
            }
            return(ret);
        }
        /// <summary>
        /// 加载服务器列表, 用于服务器列表UI、添加升级任务UI、添加模板任务UI
        /// </summary>
        public static QueryPageResult <HWDevice> GetServerList(object eventData)
        {
            var ret = new QueryPageResult <HWDevice>()
            {
                Code = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR)
            };

            try
            {
                //1. 解析js传过来的参数
                var jsData            = JsonUtil.SerializeObject(eventData);
                var webOneESightParam = JsonUtil.DeserializeObject <WebOneESightParam <DeviceParam> >(jsData);
                LogUtil.HWLogger.UI.InfoFormat("Querying server list, the param is [{0}]", jsData);
                //2. 根据HostIP获取IESSession
                IESSession esSession = ESSessionHelper.GetESSession(webOneESightParam.ESightIP);
                //3. 获取服务器列表数据
                var hwDevicePageResult = esSession.QueryHWPage(webOneESightParam.Param);
                //4. 返回数据
                ret = hwDevicePageResult;
                LogUtil.HWLogger.UI.InfoFormat("Querying server list successful, the ret is [{0}]", JsonUtil.SerializeObject(ret));
            }
            catch (BaseException ex)
            {
                ret.Code        = CoreUtil.GetObjTranNull <int>(ex.Code);
                ret.ErrorModel  = ex.ErrorModel;
                ret.Description = ex.Message;
                ret.Data        = null;
                ret.TotalSize   = 0;
                ret.TotalPage   = 0;
                LogUtil.HWLogger.UI.Error("Querying server list failed: ", ex);
            }
            catch (Exception ex)
            {
                ret.Code        = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR);
                ret.Description = ex.InnerException.Message ?? ex.Message;
                ret.Data        = null;
                ret.TotalSize   = 0;
                ret.TotalPage   = 0;
                LogUtil.HWLogger.UI.Error("Querying server list failed: ", ex);
            }
            return(ret);
        }
Пример #22
0
        /// <summary>
        /// 查询升级任务详情
        /// </summary>
        /// <param name="eventData">JS参数</param>
        /// <returns></returns>
        private WebReturnResult <BasePackageDNProgress> GetTaskDetail(object eventData)
        {
            var ret = new WebReturnResult <BasePackageDNProgress>()
            {
                Code = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR)
            };

            try
            {
                //1. 解析js传过来的参数
                var jsData            = JsonUtil.SerializeObject(eventData);
                var webOneESightParam = JsonUtil.DeserializeObject <WebOneESightParam <ParamOfQueryFirmewareDetail> >(jsData);
                LogUtil.HWLogger.UI.InfoFormat("Querying firmware task detail, the param is [{0}]", jsData);
                //2. 根据HostIP获取IESSession
                IESSession esSession = ESSessionHelper.GetESSession(webOneESightParam.ESightIP);
                //3. 获取升级任务详情
                string taskName           = webOneESightParam.Param.TaskName;
                string dn                 = webOneESightParam.Param.DN;
                var    firmwareTaskDetail = esSession.BasePackageWorker.QueryDeployTaskDNProcess(taskName, dn);
                //4. 返回数据
                ret.Code        = firmwareTaskDetail.Code;
                ret.Data        = firmwareTaskDetail.Data;
                ret.Description = firmwareTaskDetail.Description;
                LogUtil.HWLogger.UI.InfoFormat("Querying firmware task detail successful, the ret is [{0}]", JsonUtil.SerializeObject(ret));
            }
            catch (BaseException ex)
            {
                ret.Code        = CoreUtil.GetObjTranNull <int>(ex.Code);
                ret.ErrorModel  = ex.ErrorModel;
                ret.Description = ex.Message;
                ret.Data        = null;
                LogUtil.HWLogger.UI.Error("Querying firmware task detail failed: ", ex);
            }
            catch (Exception ex)
            {
                ret.Code        = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR);
                ret.Description = ex.InnerException.Message ?? ex.Message;
                ret.Data        = null;
                LogUtil.HWLogger.UI.Error("Querying firmware task detail failed: ", ex);
            }
            return(ret);
        }
        /// <summary>
        /// 删除已上传的升级包
        /// </summary>
        /// <param name="eventData"></param>
        /// <returns></returns>
        private WebReturnResult <int> DeleteBasepackage(object eventData)
        {
            var ret = new WebReturnResult <int>()
            {
                Code = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR)
            };

            try
            {
                //1. 解析js传过来的参数
                var jsData            = JsonUtil.SerializeObject(eventData);
                var webOneESightParam = JsonUtil.DeserializeObject <WebOneESightParam <ParamOfQueryBasePackageDetail> >(jsData);
                LogUtil.HWLogger.UI.InfoFormat("Deleting basepackage..., the param is [{0}]", jsData);
                //2. 根据HostIP获取IESSession
                IESSession esSession = ESSessionHelper.GetESSession(webOneESightParam.ESightIP);
                //3. 获取升级任务详情
                string basepackageName = webOneESightParam.Param.BasepackageName;
                esSession.BasePackageWorker.DeleteBasePackage(basepackageName);
                //4. 返回数据
                ret.Code        = 0;
                ret.Data        = 1;
                ret.Description = "delete FMBasePackage File success.";
                LogUtil.HWLogger.UI.InfoFormat("Deleting basepackage successful, the ret is [{0}]", JsonUtil.SerializeObject(ret));
            }
            catch (BaseException ex)
            {
                ret.Code        = CoreUtil.GetObjTranNull <int>(ex.Code);
                ret.ErrorModel  = ex.ErrorModel;
                ret.Description = ex.Message;
                ret.Data        = 0;
                LogUtil.HWLogger.UI.Error("Deleting basepackage failed: ", ex);
            }
            catch (Exception ex)
            {
                ret.Code        = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR);
                ret.Description = ex.InnerException.Message ?? ex.Message;
                ret.Data        = 0;
                LogUtil.HWLogger.UI.Error("Deleting basepackage failed: ", ex);
            }
            return(ret);
        }
        private WebReturnResult <DeployTemplate> GetTemplateDetail(object eventData)
        {
            var ret = new WebReturnResult <DeployTemplate>()
            {
                Code = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR)
            };

            try
            {
                //1. 解析js传过来的参数
                var jsData            = JsonUtil.SerializeObject(eventData);
                var webOneESightParam = JsonUtil.DeserializeObject <WebOneESightParam <ParamOfQueryTemplateDetail> >(jsData);
                LogUtil.HWLogger.UI.InfoFormat("Querying template detail, the param is [{0}]", jsData);
                //2. 根据HostIP获取IESSession
                IESSession esSession = ESSessionHelper.GetESSession(webOneESightParam.ESightIP);
                //3. 获取升级任务详情
                string templateName   = webOneESightParam.Param.TemplateName;
                var    templateDetail = esSession.DeployWorker.QueryDeployTemplate(templateName);
                //4. 返回数据
                ret.Code        = 0;
                ret.Data        = templateDetail;
                ret.Description = "Operation success.";
                LogUtil.HWLogger.UI.InfoFormat("Querying template detail successful, the ret is [{0}]", JsonUtil.SerializeObject(ret));
            }
            catch (BaseException ex)
            {
                ret.Code        = CoreUtil.GetObjTranNull <int>(ex.Code);
                ret.ErrorModel  = ex.ErrorModel;
                ret.Description = ex.Message;
                ret.Data        = null;
                LogUtil.HWLogger.UI.Error("Querying template detail failed: ", ex);
            }
            catch (Exception ex)
            {
                ret.Code        = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR);
                ret.Description = ex.InnerException.Message ?? ex.Message;
                ret.Data        = null;
                LogUtil.HWLogger.UI.Error("Querying template detail failed: ", ex);
            }
            return(ret);
        }
        /// <summary>
        /// 查询服务器详细信息
        /// </summary>
        /// <param name="eventData">JS传递的参数</param>
        /// <returns></returns>
        public static WebReturnResult <QueryListResult <HWDeviceDetail> > GetDeviceDetail(object eventData)
        {
            var ret = new WebReturnResult <QueryListResult <HWDeviceDetail> >()
            {
                Code = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR)
            };

            try
            {
                //1. 解析js传过来的参数
                var jsData            = JsonUtil.SerializeObject(eventData);
                var webOneESightParam = JsonUtil.DeserializeObject <ParamOfQueryDeviceDetail>(jsData);
                LogUtil.HWLogger.UI.InfoFormat("Querying server detail, the param is [{0}]", jsData);
                //2. 根据HostIP获取IESSession
                IESSession esSession = ESSessionHelper.GetESSession(webOneESightParam.ESightIP);
                //3. 获取升级任务详情
                string dn = webOneESightParam.DN;
                var    hwDeviceDetailList = esSession.DviWorker.QueryForDeviceDetail(dn);
                //4. 返回数据
                ret.Code        = 0;
                ret.Data        = hwDeviceDetailList;
                ret.Description = "Succeeded in querying server details.";
                LogUtil.HWLogger.UI.InfoFormat("Querying server detail successful, the ret is [{0}]", JsonUtil.SerializeObject(ret));
            }
            catch (BaseException ex)
            {
                ret.Code        = CoreUtil.GetObjTranNull <int>(ex.Code);
                ret.ErrorModel  = ex.ErrorModel;
                ret.Description = ex.Message;
                ret.Data        = null;
                LogUtil.HWLogger.UI.Error("Querying server detail failed: ", ex);
            }
            catch (Exception ex)
            {
                ret.Code        = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR);
                ret.Description = ex.InnerException.Message ?? ex.Message;
                ret.Data        = null;
                LogUtil.HWLogger.UI.Error("Querying server detail failed: ", ex);
            }
            return(ret);
        }
        /// <summary>
        /// 删除软件源
        /// </summary>
        private WebReturnResult <int> Delete(object eventData)
        {
            var ret = new WebReturnResult <int>()
            {
                Code = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR), Description = "", Data = 0
            };

            try
            {
                //1. 获取UI传来的参数
                var jsData            = JsonUtil.SerializeObject(eventData);
                var webOneESightParam = JsonUtil.DeserializeObject <WebOneESightParam <string> >(jsData);
                LogUtil.HWLogger.UI.InfoFormat("Deleting software source..., the param is [{0}]", jsData);
                //2. 根据HostIP获取IESSession
                IESSession esSession = ESSessionHelper.GetESSession(webOneESightParam.ESightIP);
                //3. 删除模板
                esSession.SoftSourceWorker.DeleteSoftwareSource(webOneESightParam.Param);
                //4. 返回数据
                ret.Code        = 0;
                ret.Data        = 1;
                ret.Description = "";
                LogUtil.HWLogger.UI.InfoFormat("Deleting software source successful! the ret is: [{0}]", JsonUtil.SerializeObject(ret));
            }
            catch (BaseException ex)
            {
                LogUtil.HWLogger.UI.Error("Deleting software source failed: ", ex);
                ret.Code        = CoreUtil.GetObjTranNull <int>(ex.Code);
                ret.ErrorModel  = ex.ErrorModel;
                ret.Data        = 0;
                ret.Description = ex.Message;
            }
            catch (Exception ex)
            {
                LogUtil.HWLogger.UI.Error("Deleting software source failed: ", ex);
                ret.Code        = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR);
                ret.Data        = 0;
                ret.Description = ex.InnerException.Message ?? ex.Message;
            }
            return(ret);
        }
        /// <summary>
        /// 删除模板任务
        /// </summary>
        private WebReturnResult <int> Delete(object eventData)
        {
            var ret = new WebReturnResult <int>()
            {
                Code = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR)
            };

            try
            {
                //1. 获取UI传来的参数
                var jsData            = JsonUtil.SerializeObject(eventData);
                var webOneESightParam = JsonUtil.DeserializeObject <WebOneESightParam <ParamOfDeleteTask> >(jsData);
                LogUtil.HWLogger.UI.InfoFormat("Deleting template task..., the param is [{0}]", jsData);
                //2. 根据HostIP获取IESSession
                IESSession esSession = ESSessionHelper.GetESSession(webOneESightParam.ESightIP);
                //3. 删除模板任务
                int deleteResult = esSession.DeployWorker.DeleteTask(webOneESightParam.Param.TaskId);
                //4. 返回数据
                ret.Code        = 0;
                ret.Description = "Deleting template task successful!";
                ret.Data        = deleteResult;
                LogUtil.HWLogger.UI.InfoFormat("Deleting template task successful! the ret is [{0}]", JsonUtil.SerializeObject(ret));
            }
            catch (BaseException ex)
            {
                LogUtil.HWLogger.UI.Error("Deleting template task failed: ", ex);
                ret.Code        = CoreUtil.GetObjTranNull <int>(ex.Code);
                ret.ErrorModel  = ex.ErrorModel;
                ret.Description = ex.Message;
                ret.Data        = 0;
            }
            catch (Exception ex)
            {
                LogUtil.HWLogger.UI.Error("Deleting template task failed: ", ex);
                ret.Code        = CoreUtil.GetObjTranNull <int>(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR);
                ret.Description = ex.InnerException.Message ?? ex.Message;
                ret.Data        = 0;
            }
            return(ret);
        }
        /// <summary>
        /// 加载固件升级包明细列表
        /// </summary>
        private ApiResult <BasePackageDetail> GetFirmwareDetails(object eventData)
        {
            var ret = new ApiResult <BasePackageDetail>(false, ConstMgr.ErrorCode.SYS_UNKNOWN_ERR, "", "", null);

            try
            {
                //1. 解析js传过来的参数
                var jsData            = JsonUtil.SerializeObject(eventData);
                var webOneESightParam = JsonUtil.DeserializeObject <WebOneESightParam <ParamOfQueryBasePackageDetail> >(jsData);
                LogUtil.HWLogger.UI.InfoFormat("Querying basepackage detail, the param is: [{0}] [{1}]", webOneESightParam.ESightIP, webOneESightParam.Param.BasepackageName);
                //2. 根据HostIP获取IESSession
                IESSession esSession = ESSessionHelper.GetESSession(webOneESightParam.ESightIP);
                //3. 获取固件升级包明细数据
                QueryObjectResult <BasePackageDetail> basePackageDetail = esSession.BasePackageWorker.QueryBasePackageDetail(webOneESightParam.Param.BasepackageName);
                //4. 组织数据
                ret.Code    = basePackageDetail.Code.ToString();
                ret.Success = basePackageDetail.Code == 0 ? true : false;
                ret.Data    = basePackageDetail.Data;
                LogUtil.HWLogger.UI.InfoFormat("Querying basepackage detail successful, the ret is: [{0}]", JsonUtil.SerializeObject(ret));
            }
            catch (BaseException ex)
            {
                ret.Code         = string.Format("{0}{1}", ex.ErrorModel, ex.Code);
                ret.Success      = false;
                ret.ExceptionMsg = ex.Message;
                ret.Data         = null;
                LogUtil.HWLogger.UI.Error("Querying basepackage detail failed: ", ex);
            }
            catch (Exception ex)
            {
                ret.Code         = ConstMgr.ErrorCode.SYS_UNKNOWN_ERR;
                ret.Success      = false;
                ret.ExceptionMsg = ex.InnerException.Message ?? ex.Message;
                ret.Data         = null;
                LogUtil.HWLogger.UI.Error("Querying basepackage detail failed: ", ex);
            }
            return(ret);
        }
        /// <summary>
        /// 删除模板
        /// </summary>
        private ApiResult Delete(object eventData)
        {
            ApiResult ret = new ApiResult(ConstMgr.ErrorCode.SYS_UNKNOWN_ERR, "");

            try
            {
                LogUtil.HWLogger.UI.InfoFormat("Deleting template..., the param is [{0}]", JsonUtil.SerializeObject(eventData));
                //1. 获取UI传来的参数
                var    jsData       = eventData as Dictionary <string, object>;
                string hostIP       = DictHelper.GetDicValue(jsData, "hostIP");
                string templateName = DictHelper.GetDicValue(jsData, "templateName");
                //2. 根据HostIP获取IESSession
                IESSession esSession = ESSessionHelper.GetESSession(hostIP);
                //3. 删除模板
                esSession.DeployWorker.DelDeployTemplate(templateName);
                LogUtil.HWLogger.UI.Info("Deleting template successful!");

                ret.Code    = "0";
                ret.Success = true;
                ret.Msg     = "Deleting template successful!";
            }
            catch (BaseException ex)
            {
                LogUtil.HWLogger.UI.Error("Deleting template failed: ", ex);
                ret.Code         = string.Format("{0}{1}", ex.ErrorModel, ex.Code);
                ret.Success      = false;
                ret.ExceptionMsg = ex.Message;
            }
            catch (Exception ex)
            {
                LogUtil.HWLogger.UI.Error("Deleting template failed: ", ex);
                ret.Code         = ConstMgr.ErrorCode.SYS_UNKNOWN_ERR;
                ret.Success      = false;
                ret.ExceptionMsg = ex.InnerException.Message ?? ex.Message;
            }
            return(ret);
        }
Пример #30
0
 public void SaveESSessionFaileTest()
 {
     IESSession iSession = ESightEngine.Instance.SaveESSession("133.300.621.118", "Tom", 1433);
 }