/// <summary> /// 保存上传软件源进度到数据。 /// </summary> /// <param name="queryObjectResult">返回的软件源进度对戏</param> /// <param name="taskName">eSight对应的任务名。</param> private void SaveTaskProgressToDB(QueryObjectResult <SourceProgress> queryObjectResult, string taskName) { //sync to the database. SourceProgress sourceProgress = queryObjectResult.Data; HWESightTask hwtask = HWESightTaskDal.Instance.FindTaskByName(this.ESSession.HWESightHost.ID, taskName); hwtask.TaskStatus = sourceProgress.TaskStatus; hwtask.TaskProgress = sourceProgress.TaskProgress; hwtask.TaskResult = sourceProgress.TaskResult; hwtask.TaskCode = (!string.IsNullOrEmpty(sourceProgress.TaskCode) && !string.Equals(sourceProgress.TaskCode, "0")) ? ("deploy.error." + sourceProgress.TaskCode) : sourceProgress.TaskCode; hwtask.ErrorDetail = sourceProgress.ErrorDetail; hwtask.SyncStatus = GetTaskStatus(hwtask.SyncStatus, sourceProgress.TaskStatus, sourceProgress.TaskResult, sourceProgress.TaskCode); hwtask.LastModifyTime = System.DateTime.Now; HWESightTaskDal.Instance.UpdateEntity(hwtask); /* if (hwtask == null) * { * throw new SoftwareSourceExpceion(ConstMgr.ErrorCode.DB_NOTFOUND, this, string.Format("查询软件源上传进度出错:数据库没有找到对应的任务。[{0}]", taskName)); * } * else * { * hwtask.TaskStatus = sourceProgress.TaskStatus; * hwtask.TaskProgress = sourceProgress.TaskProgress; * hwtask.TaskResult = sourceProgress.TaskResult; * hwtask.TaskCode = sourceProgress.TaskCode; * hwtask.ErrorDetail = sourceProgress.ErrorDetail; * hwtask.SyncStatus = ConstMgr.HWESightTask.SYNC_STATUS_FINISHED; * hwtask.LastModifyTime = System.DateTime.Now; * HWESightTaskDal.Instance.UpdateEntity(hwtask); * }*/ }
/// <summary> /// 同步任务状态到数据库。 /// </summary> /// <param name="queryObjectResult">查询结果</param> /// <param name="taskName">任务名</param> private void SaveTaskProgressToDB(QueryObjectResult <DeployProgress> queryObjectResult, string taskName) { //sync to the database. DeployProgress deployProgress = queryObjectResult.Data; HWESightTask hwtask = HWESightTaskDal.Instance.FindTaskByName(this.ESSession.HWESightHost.ID, taskName); hwtask.TaskStatus = deployProgress.TaskStatus; hwtask.TaskResult = deployProgress.TaskResult; hwtask.TaskCode = (!string.IsNullOrEmpty(deployProgress.TaskCode) && !string.Equals(deployProgress.TaskCode, "0")) ? (errorPix + deployProgress.TaskCode) : deployProgress.TaskCode; hwtask.ErrorDetail = deployProgress.ErrorDetail; hwtask.LastModifyTime = System.DateTime.Now; //find child device in database. int progress = UpdateHWTaskResourceList(hwtask, deployProgress); if (progress > 0) { hwtask.TaskProgress = progress;// deployProgress.TaskProgress; } else { hwtask.TaskProgress = deployProgress.TaskProgress; } if (progress == 100) { hwtask.SyncStatus = ConstMgr.HWESightTask.SYNC_STATUS_FINISHED; } hwtask.SyncStatus = GetTaskStatus(hwtask.SyncStatus, deployProgress.TaskStatus, deployProgress.TaskResult, deployProgress.TaskCode); HWESightTaskDal.Instance.UpdateEntity(hwtask); }
/// <summary> /// 添加部署任务 /// </summary> /// <param name="taskSourceName">任务名,仅仅用做备注任务</param> /// <param name="deployTask">部署任务信息,包括模板类型和设备DN</param> /// <returns>返回eSight任务名</returns> public string AddDeployTask(string taskSourceName, DeployTask deployTask) { StringBuilder sb = new StringBuilder(ConstMgr.HWESightHost.URL_TASK_DEPLOY); IList <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>("templates", deployTask.Templates)); parameters.Add(new KeyValuePair <string, object>("dn", deployTask.DeviceDn)); JObject jResult = ESSession.HCPostForm(sb.ToString(), parameters); CheckAndThrowException(jResult); HWESightTask eSightTask = new HWESightTask(); QueryObjectResult <JObject> queryObjectResult = jResult.ToObject <QueryObjectResult <JObject> >(); eSightTask.HWESightHostID = this.ESSession.HWESightHost.ID; eSightTask.TaskName = JsonUtil.GetJObjectPropVal <string>(queryObjectResult.Data, "taskName"); eSightTask.SoftWareSourceName = taskSourceName; eSightTask.TaskStatus = ConstMgr.HWESightTask.TASK_STATUS_RUNNING;//初始化。 eSightTask.TaskProgress = 0; eSightTask.TaskResult = ""; eSightTask.ErrorDetail = ""; eSightTask.SyncStatus = ConstMgr.HWESightTask.SYNC_STATUS_CREATED; eSightTask.TaskType = ConstMgr.HWESightTask.TASK_TYPE_DEPLOY; eSightTask.LastModifyTime = System.DateTime.Now; eSightTask.CreateTime = System.DateTime.Now; int taskId = HWESightTaskDal.Instance.InsertEntity(eSightTask); eSightTask.ID = taskId; InsertHWTaskResourceList(eSightTask, deployTask.DeviceDn); LogUtil.HWLogger.API.InfoFormat("AddDeployTask:{0}", taskId); return(JsonUtil.GetJObjectPropVal <string>(queryObjectResult.Data, "taskName")); }
/// <summary> /// 上传软件源 /// </summary> /// <param name="softwareSource">软件源参数</param> /// <returns>返回任务名</returns> public string UploadSoftwareSource(SoftwareSource softwareSource) { QueryObjectResult <JObject> queryObjectResult = UploadSoftwareSourceWithResult(softwareSource); if (queryObjectResult.Code != 0) { throw GetDeployException(queryObjectResult.Code.ToString(), this, queryObjectResult.Description);//"上传软件源出错:" + } string taskName = JsonUtil.GetJObjectPropVal <string>(queryObjectResult.Data, "taskName"); return(taskName); }
/// <summary> /// 删除软件源 /// </summary> /// <param name="softwaresourceName">软件源名称,eSight 返回的任务名</param> public void DeleteSoftwareSource(string softwaresourceName) { StringBuilder sb = new StringBuilder(ConstMgr.HWESightHost.URL_DELETE_SOFTWARESOURCE); //删除软件源需要把参数放在Body,是POST by Jacky 2017-6-30 IList <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>("softwareName", softwaresourceName)); JObject jResult = ESSession.HCPostForm(sb.ToString(), parameters); CheckAndThrowException(jResult); QueryObjectResult <string> queryObjectResult = jResult.ToObject <QueryObjectResult <string> >(); DeleteTaskProgressFromDBByName(softwaresourceName); }
/// <summary> /// 查看模板详情 /// </summary> /// <param name="templateName"></param> /// <returns>模板详情</returns> public DeployTemplate QueryDeployTemplate(string templateName) { StringBuilder sb = new StringBuilder(ConstMgr.HWESightHost.URL_DETAIL_TEMPLATE); sb.Append("?templateName=").Append(HttpUtility.UrlEncode(templateName, Encoding.UTF8)); JObject jResult = ESSession.HCGet(sb.ToString()); CheckAndThrowException(jResult); QueryObjectResult <DeployTemplate> queryObjectResult = jResult.ToObject <QueryObjectResult <DeployTemplate> >(new JsonSerializer { NullValueHandling = NullValueHandling.Ignore }); return(queryObjectResult.Data); }
/// <summary> /// 查询上传软件源进度 /// </summary> /// <param name="taskName">eSight 返回的任务名</param> /// <returns>上传软件源进度对象</returns> public SourceProgress QuerySoftwareProcess(string taskName) { StringBuilder sb = new StringBuilder(ConstMgr.HWESightHost.URL_PROGRESS_SOFTWARESOURCE); sb.Append("?taskName=").Append(HttpUtility.UrlEncode(taskName, Encoding.UTF8)); JObject jResult = ESSession.HCGet(sb.ToString()); CheckAndThrowException(jResult); QueryObjectResult <SourceProgress> queryObjectResult = jResult.ToObject <QueryObjectResult <SourceProgress> >(); //sync to the database. HWESightTask hwtask = HWESightTaskDal.Instance.FindTaskByName(this.ESSession.HWESightHost.ID, taskName); SaveTaskProgressToDB(queryObjectResult, taskName); return(queryObjectResult.Data); }
public QueryObjectResult FindByPrimaryKey(JObject request) { var response = new QueryObjectResult(); Validator.Validate <GenericPropertiesValidator>(request, response, Database, ListRelationSchema.RelationName, ListRelationSchema.SchemaName) .Next <GenericPrimaryKeyValidator>(); if (!response.Success) { return(response); } return(new Query(Database, Connection, ListRelationSchema) .Where(request) .One()); }
public void UploadSoftwareSourceTest1() { _esSession.Open(); SoftwareSource softwareSource = new SoftwareSource(); softwareSource.SoftwareName = "OS_Software1111"; softwareSource.SoftwareDescription = "“This is a OS template."; softwareSource.SoftwareType = "Windows"; softwareSource.SoftwareVersion = "Windows Server 2008 R2 x64"; softwareSource.SoftwareLanguage = "Chinese"; softwareSource.SourceName = "7601.17514.101119 - 1850_x64fre_server_eval_en - us - GRMSXEVAL_EN_DVD.iso"; softwareSource.SftpserverIP = "188.10.18.188"; softwareSource.SftpUserName = "******"; softwareSource.SftpPassword = "******"; QueryObjectResult <JObject> sourceResult = _esSession.SoftSourceWorker.UploadSoftwareSourceWithResult(softwareSource); Assert.IsNotNull(sourceResult); }
/// <summary> /// 添加部署任务 /// </summary> /// <param name="taskSourceName"></param> /// <param name="deployTask"></param> /// <returns>返回eSight任务名</returns> public string AddDeployTask(DeployPackageTask deployTask) { StringBuilder sb = new StringBuilder(ConstMgr.HWESightHost.URL_TASK_BASEPACKAGE); IList <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>("basepackageName", deployTask.BasepackageName)); parameters.Add(new KeyValuePair <string, object>("firmwareList", deployTask.FirmwareList)); parameters.Add(new KeyValuePair <string, object>("dn", deployTask.DeviceDn)); parameters.Add(new KeyValuePair <string, object>("isforceupgrade", deployTask.IsForceUpgrade)); parameters.Add(new KeyValuePair <string, object>("effectiveMethod", deployTask.EffectiveMethod)); JObject jResult = ESSession.HCPostForm(sb.ToString(), parameters); CheckAndThrowException(jResult); HWESightTask eSightTask = new HWESightTask(); QueryObjectResult <JObject> queryObjectResult = jResult.ToObject <QueryObjectResult <JObject> >(); if (queryObjectResult.Code != 0) { throw GetDeployException(queryObjectResult.Code.ToString(), this, queryObjectResult.Description);//"添加部署任务出错:" + } else {//Save to database. eSightTask.HWESightHostID = this.ESSession.HWESightHost.ID; eSightTask.TaskName = JsonUtil.GetJObjectPropVal <string>(queryObjectResult.Data, "taskName"); eSightTask.SoftWareSourceName = deployTask.BasepackageName; eSightTask.TaskStatus = ConstMgr.HWESightTask.TASK_STATUS_RUNNING;//初始化。 eSightTask.TaskProgress = 0; eSightTask.TaskResult = ""; eSightTask.ErrorDetail = ""; eSightTask.SyncStatus = ConstMgr.HWESightTask.SYNC_STATUS_CREATED; eSightTask.TaskType = ConstMgr.HWESightTask.TASK_TYPE_DEPLOYFIRMWARE;//部署固件任务 eSightTask.DeviceIp = deployTask.DeviceDn; eSightTask.ReservedStr1 = deployTask.FirmwareList; eSightTask.LastModifyTime = System.DateTime.Now; eSightTask.CreateTime = System.DateTime.Now; int taskId = HWESightTaskDal.Instance.InsertEntity(eSightTask); eSightTask.ID = taskId; InsertHWTaskResourceList(eSightTask, deployTask.DeviceDn); LogUtil.HWLogger.API.InfoFormat("add task:{0}", taskId); } return(JsonUtil.GetJObjectPropVal <string>(queryObjectResult.Data, "taskName")); }
public void QueryBasePackageDetailTest() { _esSession.Open(); var queryParam = new { basepackageName = "basepackage1" }; WebOneESightParam <dynamic> packageParam = new WebOneESightParam <dynamic>(); packageParam.ESightIP = "127.0.0.1"; packageParam.Param = queryParam; LogUtil.HWLogger.API.Info("QueryBasePackageDetailTest packageParam:" + JsonUtil.SerializeObject(packageParam)); QueryObjectResult <BasePackageDetail> queryLGListResult = _esSession.BasePackageWorker.QueryBasePackageDetail(queryParam.basepackageName); //QueryObjectResult<BasePackageDetail> ret = new QueryObjectResult<BasePackageDetail>(); //ret.Code = 0; //ret.Description = ""; // ret.Data = queryLGListResult; LogUtil.HWLogger.API.Info("QueryBasePackageDetailTest queryLGListResult:" + JsonUtil.SerializeObject(queryLGListResult)); }
/// <summary> /// 上传固件任务。 /// </summary> /// <param name="basePackage"></param> /// <returns></returns> public string UploadBasePackage(BasePackage basePackage) { StringBuilder sb = new StringBuilder(ConstMgr.HWESightHost.URL_UPLOADE_BASEPACKAGE); int retCode = 0; JObject jResult = ESSession.HCPost(sb.ToString(), basePackage); CheckAndThrowException(jResult); HWESightTask eSightTask = HWESightTaskDal.Instance.FindTaskByBasepackageName(this.ESSession.HWESightHost.ID, basePackage.BasepackageName); if (eSightTask == null) { eSightTask = new HWESightTask(); } else { LogUtil.HWLogger.API.WarnFormat("Find same package name in the database, the data will be overwrite=[{0}]", basePackage.BasepackageName); } string taskName = ""; QueryObjectResult <JObject> queryObjectResult = jResult.ToObject <QueryObjectResult <JObject> >(); if (queryObjectResult.Code == 0) { taskName = JsonUtil.GetJObjectPropVal <string>(queryObjectResult.Data, "taskName"); //Save to database. eSightTask.HWESightHostID = this.ESSession.HWESightHost.ID; eSightTask.TaskName = taskName; eSightTask.SoftWareSourceName = basePackage.BasepackageName; eSightTask.ReservedStr1 = basePackage.BasepackageType; eSightTask.TaskStatus = ConstMgr.HWESightTask.TASK_STATUS_RUNNING;//初始化。 eSightTask.TaskProgress = 0; eSightTask.TaskResult = ""; eSightTask.ErrorDetail = ""; eSightTask.SyncStatus = ConstMgr.HWESightTask.SYNC_STATUS_CREATED; eSightTask.TaskType = ConstMgr.HWESightTask.TASK_TYPE_FIRMWARE; eSightTask.LastModifyTime = System.DateTime.Now; eSightTask.CreateTime = System.DateTime.Now; int taskId = HWESightTaskDal.Instance.InsertEntity(eSightTask); LogUtil.HWLogger.API.InfoFormat("add task:{0}", taskId); } return(taskName); }
/// <summary> /// 上传软件源,直接返回结果。 /// 不抛出错误 /// </summary> /// <param name="softwareSource">软件源参数</param> /// <returns>QueryObjectResult[taskname]</returns> public QueryObjectResult <JObject> UploadSoftwareSourceWithResult(SoftwareSource softwareSource) { StringBuilder sb = new StringBuilder(ConstMgr.HWESightHost.URL_UPLOADE_SOFTWARESOURCE); JObject jResult = ESSession.HCPost(sb.ToString(), softwareSource); //提交eSight服务器 CheckAndThrowException(jResult); //检测提交错误。 HWESightTask eSightTask = HWESightTaskDal.Instance.FindTaskBySourceName(this.ESSession.HWESightHost.ID, softwareSource.SoftwareName); if (eSightTask == null)//不是重复任务,创建任务对象。 { eSightTask = new HWESightTask(); } else//重复的任务。 { LogUtil.HWLogger.API.WarnFormat("Find same source in the database, the data will be overwite=[{0}]", softwareSource.SoftwareName); } string taskName = ""; //eSight返回的任务名。 QueryObjectResult <JObject> queryObjectResult = jResult.ToObject <QueryObjectResult <JObject> >(); //转换Json对象为期待的序列化对象。 if (queryObjectResult.Code == 0) //成功 { taskName = JsonUtil.GetJObjectPropVal <string>(queryObjectResult.Data, "taskName"); //Save to database. eSightTask.HWESightHostID = this.ESSession.HWESightHost.ID; eSightTask.TaskName = taskName; eSightTask.SoftWareSourceName = softwareSource.SoftwareName; eSightTask.TaskStatus = ConstMgr.HWESightTask.TASK_STATUS_RUNNING;//初始化。 eSightTask.TaskProgress = 0; eSightTask.TaskResult = ""; eSightTask.ErrorDetail = ""; eSightTask.SyncStatus = ConstMgr.HWESightTask.SYNC_STATUS_CREATED; eSightTask.TaskType = ConstMgr.HWESightTask.TASK_TYPE_SOFTWARE; eSightTask.LastModifyTime = System.DateTime.Now; eSightTask.CreateTime = System.DateTime.Now; int taskId = HWESightTaskDal.Instance.InsertEntity(eSightTask); LogUtil.HWLogger.API.InfoFormat("Add task:{0}", taskId); } return(queryObjectResult); }
public DeployPackageTaskDetail QueryDeployTaskProcess(string taskName) { StringBuilder sb = new StringBuilder(ConstMgr.HWESightHost.URL_TASK_PROGRESS_BASEPACKAGE); sb.Append("?taskName=").Append(HttpUtility.UrlEncode(taskName, Encoding.UTF8)); JObject jResult = ESSession.HCGet(sb.ToString()); CheckAndThrowException(jResult); QueryObjectResult <DeployPackageTaskDetail> queryObjectResult = jResult.ToObject <QueryObjectResult <DeployPackageTaskDetail> >(); //sync to the database. HWESightTask hwtask = HWESightTaskDal.Instance.FindTaskByName(this.ESSession.HWESightHost.ID, taskName); if (hwtask == null) { throw new BasePackageExpceion(ConstMgr.ErrorCode.DB_NOTFOUND, this, string.Format("Find task failed, system can't find this task.[{0}]", taskName)); } else { SaveDeployProgressToDB(queryObjectResult, taskName); } return(queryObjectResult.Data); }
public QueryObjectResult <BasePackageDetail> QueryBasePackageDetail(string basepackageName) { StringBuilder sb = new StringBuilder(ConstMgr.HWESightHost.URL_DETAIL_BASEPACKAGE); StringBuilder paramBuild = new StringBuilder(); if (!string.IsNullOrEmpty(basepackageName)) { //if (paramBuild.Length > 0) paramBuild.Append("&"); paramBuild.Append("basepackageName=").Append(HttpUtility.UrlEncode(basepackageName, Encoding.UTF8)); } if (paramBuild.Length > 0) { sb.Append("?").Append(paramBuild.ToString()); } JObject jResult = ESSession.HCGet(sb.ToString()); CheckAndThrowException(jResult); QueryObjectResult <BasePackageDetail> queryObjectResult = jResult.ToObject <QueryObjectResult <BasePackageDetail> >(); return(queryObjectResult); }
/// <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); }
private void SaveUploadProgressToDB(QueryObjectResult <BasePackageProgress> queryObjectResult, string taskName) { //sync to the database. BasePackageProgress basePackageProgess = queryObjectResult.Data; HWESightTask hwtask = HWESightTaskDal.Instance.FindTaskByName(this.ESSession.HWESightHost.ID, taskName); if (hwtask == null) { throw new BasePackageExpceion(ConstMgr.ErrorCode.DB_NOTFOUND, this, string.Format("Find upload package progress filed: System can not find this task in the database[{0}]", taskName)); } else { hwtask.TaskStatus = basePackageProgess.TaskStatus; hwtask.TaskProgress = basePackageProgess.TaskProgress; hwtask.TaskResult = basePackageProgess.TaskResult; hwtask.TaskCode = (!string.IsNullOrEmpty(basePackageProgess.TaskCode) && !string.Equals(basePackageProgess.TaskCode, "0"))? (errorPix + basePackageProgess.TaskCode):basePackageProgess.TaskCode; hwtask.ErrorDetail = basePackageProgess.ErrorDetail; hwtask.SyncStatus = GetTaskStatus(hwtask.SyncStatus, basePackageProgess.TaskStatus, basePackageProgess.TaskResult); hwtask.LastModifyTime = System.DateTime.Now; HWESightTaskDal.Instance.UpdateEntity(hwtask); } }
/// <summary> /// 查询部署任务状态,从eSight /// </summary> /// <param name="taskName">任务名称</param> /// <returns>部署任务明细对象</returns> private DeployProgress QueryDeployProcess(string taskName) { StringBuilder sb = new StringBuilder(ConstMgr.HWESightHost.URL_PROGRESS_DEPLOY); sb.Append("?taskName=").Append(HttpUtility.UrlEncode(taskName, Encoding.UTF8)); JObject jResult = ESSession.HCGet(sb.ToString()); CheckAndThrowException(jResult); QueryObjectResult <DeployProgress> queryObjectResult = jResult.ToObject <QueryObjectResult <DeployProgress> >(new JsonSerializer { NullValueHandling = NullValueHandling.Ignore }); //sync to the database. HWESightTask hwtask = HWESightTaskDal.Instance.FindTaskByName(this.ESSession.HWESightHost.ID, taskName); if (hwtask == null)//在数据库中没有找到,抛出错误。 { throw new DeployException(ConstMgr.ErrorCode.DB_NOTFOUND, this, string.Format("Query the deployWork failed:System can not find this task in db.[{0}]", taskName)); } else { SaveTaskProgressToDB(queryObjectResult, taskName); } return(queryObjectResult.Data); }
public void UploadSoftwareSourceJsonTest() { _esSession.Open(); SoftwareSource softwareSource = new SoftwareSource(); softwareSource.SoftwareName = "OS_Software1"; softwareSource.SoftwareDescription = "“This is a OS template."; softwareSource.SoftwareType = "Windows"; softwareSource.SoftwareVersion = "Windows Server 2008 R2 x64"; softwareSource.SoftwareLanguage = "Chinese"; softwareSource.SourceName = "7601.17514.101119 - 1850_x64fre_server_eval_en - us - GRMSXEVAL_EN_DVD.iso"; softwareSource.SftpserverIP = "188.10.18.188"; softwareSource.SftpUserName = "******"; softwareSource.SftpPassword = "******"; string taskName = _esSession.SoftSourceWorker.UploadSoftwareSource(softwareSource); WebMutilESightsParam <SoftwareSource> postESightParam = new WebMutilESightsParam <SoftwareSource>(); postESightParam.ESights = new List <string>() { "127.0.0.1" }; postESightParam.Data = softwareSource; Console.WriteLine(taskName); LogUtil.HWLogger.API.Info("UploadSoftwareSourceJsonTest Params:" + JsonUtil.SerializeObject(postESightParam)); JObject taskObject = new JObject(); taskObject.Add("taskName", taskName); QueryObjectResult <JObject> taskResult = new QueryObjectResult <JObject>(); taskResult.Data = taskObject; LogUtil.HWLogger.API.Info("UploadSoftwareSourceJsonTest Result:" + JsonUtil.SerializeObject(taskResult)); Assert.IsTrue(!string.IsNullOrEmpty(taskName)); }