* Refactor zanodeModel::getTaskStatus.
This commit is contained in:
@@ -258,7 +258,7 @@ class zanode extends control
|
||||
{
|
||||
if($_POST)
|
||||
{
|
||||
$imageData = form::data($this->config->zanode->form->createImage)->get();
|
||||
$imageData = form::data()->get();
|
||||
$this->zanode->createImage($nodeID, $imageData);
|
||||
if(dao::isError()) return $this->sendError(dao::getError());
|
||||
return $this->sendSuccess(array('load' => true));
|
||||
@@ -267,7 +267,7 @@ class zanode extends control
|
||||
$task = '';
|
||||
$node = $this->zanode->getNodeByID($nodeID);
|
||||
$customImage = $this->zanode->getCustomImage($nodeID, 'created,inprogress');
|
||||
if($customImage) $task = $this->zanode->getTaskStatus($node, $customImage->id, 'exportVm');
|
||||
if($customImage) $task = $this->zanodeZen->getTaskStatus($node, $customImage->id, 'exportVm');
|
||||
|
||||
$this->view->task = $task;
|
||||
$this->view->node = $node;
|
||||
@@ -474,7 +474,7 @@ class zanode extends control
|
||||
public function ajaxGetTaskStatus(int $nodeID, int $taskID = 0, string $type = '', string $status = '')
|
||||
{
|
||||
$node = $this->zanode->getNodeByID($nodeID);
|
||||
$result = $this->zanode->getTaskStatus($node, $taskID, $type, $status);
|
||||
$result = $this->zanodeZen->getTaskStatus($node, $taskID, $type, $status);
|
||||
return print(json_encode($result));
|
||||
}
|
||||
|
||||
|
||||
@@ -662,43 +662,6 @@ class zanodemodel extends model
|
||||
return $returnData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get task status by zagent api.
|
||||
*
|
||||
* @param object $node
|
||||
* @param int $taskID
|
||||
* @param string $type
|
||||
* @param string $status
|
||||
* @access public
|
||||
* @return array|bool
|
||||
*/
|
||||
public function getTaskStatus($node, $taskID = 0, $type = '', $status = '')
|
||||
{
|
||||
$agnetUrl = 'http://' . $node->ip . ':' . $node->hzap . static::KVM_STATUS_PATH;
|
||||
$result = json_decode(commonModel::http($agnetUrl, array(), array(CURLOPT_CUSTOMREQUEST => 'POST'), array("Authorization:$node->tokenSN"), 'json', 'POST', 10));
|
||||
|
||||
if(empty($result) or $result->code != 'success') return false;
|
||||
$data = $result->data;
|
||||
if(empty($data)) return array();
|
||||
|
||||
if($status and !$taskID and isset($data->$status)) return $data->$status;
|
||||
|
||||
if(!$taskID) return $data;
|
||||
|
||||
foreach($data as $status => $tasks)
|
||||
{
|
||||
if(empty($tasks)) continue;
|
||||
|
||||
foreach($tasks as $task)
|
||||
{
|
||||
if(!empty($tasks['inprogress']) && $task->task != $tasks['inprogress'][0]->task && $task->status == 'created') $task->status = 'pending';
|
||||
if($type == $task->type and $taskID == $task->task) return $task;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取宿主机中zagent、nginx、websockify、novnc的运行及安装状态.
|
||||
* Get service status from host.
|
||||
|
||||
@@ -113,4 +113,40 @@ class zanodeZen extends zanode
|
||||
|
||||
return $snapshot;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取导出镜像状态。
|
||||
* Get task status by zagent api.
|
||||
*
|
||||
* @param object $node
|
||||
* @param int $taskID
|
||||
* @param string $type
|
||||
* @param string $status
|
||||
* @access protected
|
||||
* @return false|array
|
||||
*/
|
||||
protected function getTaskStatus(object $node, int $taskID = 0, string $type = '', string $status = ''): false|array
|
||||
{
|
||||
$agnetUrl = 'http://' . $node->ip . ':' . $node->hzap . '/api/v1/task/getStatus';
|
||||
$result = json_decode(commonModel::http($agnetUrl, array(), array(CURLOPT_CUSTOMREQUEST => 'POST'), array("Authorization:$node->tokenSN"), 'json', 'POST', 10));
|
||||
if(empty($result) || $result->code != 'success') return false;
|
||||
|
||||
$data = $result->data;
|
||||
if(empty($data)) return array();
|
||||
|
||||
if($status && !$taskID && isset($data->$status)) return $data->$status;
|
||||
if(!$taskID) return $data;
|
||||
|
||||
foreach($data as $status => $tasks)
|
||||
{
|
||||
if(empty($tasks)) continue;
|
||||
|
||||
foreach($tasks as $task)
|
||||
{
|
||||
if(!empty($tasks['inprogress']) && $task->task != $tasks['inprogress'][0]->task && $task->status == 'created') $task->status = 'pending';
|
||||
if($type == $task->type && $taskID == $task->task) return $task;
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user