|
@@ -9,7 +9,6 @@
|
|
|
|
|
|
using namespace api::v1;
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* @description: 获取Nodes
|
|
|
* @param {HttpRequestPtr&} req
|
|
@@ -65,7 +64,7 @@ void K8s::getServers(const HttpRequestPtr& req, std::function<void (const HttpRe
|
|
|
std::string token) {
|
|
|
auto clientPtr = drogon::app().getDbClient();
|
|
|
auto f = clientPtr->execSqlAsyncFuture("SELECT UID,NAME,NAMESPACE,LABELS,PORTS,CLUSTERIP,TYPE \
|
|
|
- FROM InsServerDB.`InsKsServers` WHERE USERID = ? and ISDELETE = 0",ins::Disposition::getPtr()->getUserId());
|
|
|
+ FROM InsServerDB.`InsKsServers` WHERE USERID = ? and ISDELETE = 0", ins::Disposition::getPtr()->getUserId());
|
|
|
try
|
|
|
{
|
|
|
auto SqlResult = f.get(); // Block until we get the result or catch the exception;
|
|
@@ -107,10 +106,19 @@ void K8s::getServers(const HttpRequestPtr& req, std::function<void (const HttpRe
|
|
|
* @return {*}
|
|
|
*/
|
|
|
void K8s::postServers(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, std::string token){
|
|
|
- HttpResponsePtr resp;
|
|
|
- resp = HttpResponse::newHttpResponse();
|
|
|
- resp->setBody("postServers");
|
|
|
- callback(resp);
|
|
|
+ ins::Disposition::Ptr disposition = ins::Disposition::getPtr();
|
|
|
+ std::string src = "http://"+ disposition->k8s_IP + ":" + std::to_string(disposition->k8s_port);
|
|
|
+ auto client = HttpClient::newHttpClient(src);
|
|
|
+ auto send_req = HttpRequest::newHttpRequest();
|
|
|
+ send_req->setMethod(drogon::Post);
|
|
|
+ send_req->setPath("/apis/apps/v1/namespaces/" + disposition->getWorkspace() + "/services");
|
|
|
+ send_req->addHeader("Authorization", disposition->KsToken.token_type + " " + disposition->KsToken.access_token);
|
|
|
+ send_req->setContentTypeCode(req->getContentType());
|
|
|
+ send_req->setBody(req->getBody().data());
|
|
|
+ auto result = client->sendRequest(send_req);
|
|
|
+ auto *pluginPtr=app().getPlugin<httpHelper>();
|
|
|
+ auto request = pluginPtr->replyRequest(result,send_req->getMethod());
|
|
|
+ callback(request);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -120,11 +128,20 @@ void K8s::postServers(const HttpRequestPtr& req, std::function<void (const HttpR
|
|
|
* @param {string} token
|
|
|
* @return {*}
|
|
|
*/
|
|
|
-void K8s::putServers(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, std::string token){
|
|
|
- HttpResponsePtr resp;
|
|
|
- resp = HttpResponse::newHttpResponse();
|
|
|
- resp->setBody("putServers");
|
|
|
- callback(resp);
|
|
|
+void K8s::putServers(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, std::string token, std::string name){
|
|
|
+ ins::Disposition::Ptr disposition = ins::Disposition::getPtr();
|
|
|
+ std::string src = "http://"+ disposition->k8s_IP + ":" + std::to_string(disposition->k8s_port);
|
|
|
+ auto client = HttpClient::newHttpClient(src);
|
|
|
+ auto send_req = HttpRequest::newHttpRequest();
|
|
|
+ send_req->setMethod(drogon::Post);
|
|
|
+ send_req->setPath("/apis/apps/v1/namespaces/" + disposition->getWorkspace() + "/services/" + name);
|
|
|
+ send_req->addHeader("Authorization", disposition->KsToken.token_type + " " + disposition->KsToken.access_token);
|
|
|
+ send_req->setContentTypeCode(req->getContentType());
|
|
|
+ send_req->setBody(req->getBody().data());
|
|
|
+ auto result = client->sendRequest(send_req);
|
|
|
+ auto *pluginPtr=app().getPlugin<httpHelper>();
|
|
|
+ auto request = pluginPtr->replyRequest(result,send_req->getMethod());
|
|
|
+ callback(request);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -134,11 +151,18 @@ void K8s::putServers(const HttpRequestPtr& req, std::function<void (const HttpRe
|
|
|
* @param {string} token
|
|
|
* @return {*}
|
|
|
*/
|
|
|
-void K8s::deleteServers(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, std::string token){
|
|
|
- HttpResponsePtr resp;
|
|
|
- resp = HttpResponse::newHttpResponse();
|
|
|
- resp->setBody("deleteServers");
|
|
|
- callback(resp);
|
|
|
+void K8s::deleteServers(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, std::string token, std::string name){
|
|
|
+ ins::Disposition::Ptr disposition = ins::Disposition::getPtr();
|
|
|
+ std::string src = "http://"+ disposition->k8s_IP + ":" + std::to_string(disposition->k8s_port);
|
|
|
+ auto client = HttpClient::newHttpClient(src);
|
|
|
+ auto send_req = HttpRequest::newHttpRequest();
|
|
|
+ send_req->setMethod(drogon::Delete);
|
|
|
+ send_req->setPath("/apis/apps/v1/namespaces/" + disposition->getWorkspace() + "/services/" + name);
|
|
|
+ send_req->addHeader("Authorization", disposition->KsToken.token_type + " " + disposition->KsToken.access_token);
|
|
|
+ auto result = client->sendRequest(send_req);
|
|
|
+ auto *pluginPtr=app().getPlugin<httpHelper>();
|
|
|
+ auto request = pluginPtr->replyRequest(result,send_req->getMethod());
|
|
|
+ callback(request);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -185,34 +209,6 @@ void K8s::getPods(const HttpRequestPtr& req, std::function<void (const HttpRespo
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * @description: postPods
|
|
|
- * @param {HttpRequestPtr&} req
|
|
|
- * @param {function<void (HttpResponsePtr &)>} &
|
|
|
- * @param {string} token
|
|
|
- * @return {*}
|
|
|
- */
|
|
|
-void K8s::postPods(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, std::string token){
|
|
|
- HttpResponsePtr resp;
|
|
|
- resp = HttpResponse::newHttpResponse();
|
|
|
- resp->setBody("postPods");
|
|
|
- callback(resp);
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * @description:
|
|
|
- * @param {HttpRequestPtr&} req
|
|
|
- * @param {function<void (HttpResponsePtr &)>} &
|
|
|
- * @param {string} token
|
|
|
- * @return {*}
|
|
|
- */
|
|
|
-void K8s::putPods(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, std::string token){
|
|
|
- HttpResponsePtr resp;
|
|
|
- resp = HttpResponse::newHttpResponse();
|
|
|
- resp->setBody("putPods");
|
|
|
- callback(resp);
|
|
|
-}
|
|
|
-
|
|
|
|
|
|
/**
|
|
|
* @description:
|
|
@@ -243,10 +239,40 @@ void K8s::deletePods(const HttpRequestPtr& req, std::function<void (const HttpRe
|
|
|
* @return {*}
|
|
|
*/
|
|
|
void K8s::getDeployment(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, std::string token){
|
|
|
- HttpResponsePtr resp;
|
|
|
- resp = HttpResponse::newHttpResponse();
|
|
|
- resp->setBody("getDeployment");
|
|
|
- callback(resp);
|
|
|
+ auto clientPtr = drogon::app().getDbClient();
|
|
|
+ auto f = clientPtr->execSqlAsyncFuture("SELECT UID,NAME,NAMESPACE,LABELS,CONTAINERS,PHASE,CONDITIONS \
|
|
|
+ FROM InsServerDB.`InsKsDeployments` WHERE USERID = ? and ISDELETE = 0",ins::Disposition::getPtr()->getUserId());
|
|
|
+ try
|
|
|
+ {
|
|
|
+ auto SqlResult = f.get(); // Block until we get the result or catch the exception;
|
|
|
+ HttpResultMsg<KubeSphereDeployments, HttpNull> request;
|
|
|
+ for(auto line: SqlResult){
|
|
|
+ KubeSphereDeployments data;
|
|
|
+ data.UID = line["UID"].as<std::string>();
|
|
|
+ data.NAME = line["NAME"].as<std::string>();
|
|
|
+ data.NAMESPACE = line["NAMESPACE"].as<std::string>();
|
|
|
+ data.LABELS = line["LABELS"].as<std::string>();
|
|
|
+ data.CONTAINERS = line["CONTAINERS"].as<std::string>();
|
|
|
+ data.PHASE = line["PHASE"].as<std::string>();
|
|
|
+ data.CONDITIONS = line["CONDITIONS"].as<std::string>();
|
|
|
+ request.datas.push_back(data);
|
|
|
+ }
|
|
|
+ std::string json;
|
|
|
+ request.code = "200";
|
|
|
+ request.msg = "成功";
|
|
|
+ request.ok = true;
|
|
|
+ request.objectToJson(json);
|
|
|
+ HttpResponsePtr resp;
|
|
|
+ resp = HttpResponse::newHttpResponse();
|
|
|
+ resp->setBody(json);
|
|
|
+ callback(resp);
|
|
|
+ }
|
|
|
+ catch(const drogon::orm::DrogonDbException &e)
|
|
|
+ {
|
|
|
+ ErrorL << "error:" << e.base().what() << std::endl;
|
|
|
+ auto *pluginPtr=app().getPlugin<httpHelper>();
|
|
|
+ callback(pluginPtr->makeWrongReply(e.base().what()));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -257,10 +283,19 @@ void K8s::getDeployment(const HttpRequestPtr& req, std::function<void (const Htt
|
|
|
* @return {*}
|
|
|
*/
|
|
|
void K8s::postDeployment(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, std::string token){
|
|
|
- HttpResponsePtr resp;
|
|
|
- resp = HttpResponse::newHttpResponse();
|
|
|
- resp->setBody("postDeployment");
|
|
|
- callback(resp);
|
|
|
+ ins::Disposition::Ptr disposition = ins::Disposition::getPtr();
|
|
|
+ std::string src = "http://"+ disposition->k8s_IP + ":" + std::to_string(disposition->k8s_port);
|
|
|
+ auto client = HttpClient::newHttpClient(src);
|
|
|
+ auto send_req = HttpRequest::newHttpRequest();
|
|
|
+ send_req->setMethod(drogon::Post);
|
|
|
+ send_req->setPath("/apis/apps/v1/namespaces/" + disposition->getWorkspace() + "/deployments");
|
|
|
+ send_req->addHeader("Authorization", disposition->KsToken.token_type + " " + disposition->KsToken.access_token);
|
|
|
+ send_req->setContentTypeCode(req->getContentType());
|
|
|
+ send_req->setBody(req->getBody().data());
|
|
|
+ auto result = client->sendRequest(send_req);
|
|
|
+ auto *pluginPtr=app().getPlugin<httpHelper>();
|
|
|
+ auto request = pluginPtr->replyRequest(result,send_req->getMethod());
|
|
|
+ callback(request);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -270,14 +305,22 @@ void K8s::postDeployment(const HttpRequestPtr& req, std::function<void (const Ht
|
|
|
* @param {string} token
|
|
|
* @return {*}
|
|
|
*/
|
|
|
-void K8s::putDeployment(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, std::string token){
|
|
|
- HttpResponsePtr resp;
|
|
|
- resp = HttpResponse::newHttpResponse();
|
|
|
- resp->setBody("putDeployment");
|
|
|
- callback(resp);
|
|
|
+void K8s::putDeployment(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, std::string token, std::string name){
|
|
|
+ ins::Disposition::Ptr disposition = ins::Disposition::getPtr();
|
|
|
+ std::string src = "http://"+ disposition->k8s_IP + ":" + std::to_string(disposition->k8s_port);
|
|
|
+ auto client = HttpClient::newHttpClient(src);
|
|
|
+ auto send_req = HttpRequest::newHttpRequest();
|
|
|
+ send_req->setMethod(drogon::Put);
|
|
|
+ send_req->setPath("/apis/apps/v1/namespaces/" + disposition->getWorkspace() + "/deployments/" + name);
|
|
|
+ send_req->addHeader("Authorization", disposition->KsToken.token_type + " " + disposition->KsToken.access_token);
|
|
|
+ send_req->setContentTypeCode(req->getContentType());
|
|
|
+ send_req->setBody(req->getBody().data());
|
|
|
+ auto result = client->sendRequest(send_req);
|
|
|
+ auto *pluginPtr=app().getPlugin<httpHelper>();
|
|
|
+ auto request = pluginPtr->replyRequest(result,send_req->getMethod());
|
|
|
+ callback(request);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* @description: delete
|
|
|
* @param {HttpRequestPtr&} req
|
|
@@ -286,8 +329,15 @@ void K8s::putDeployment(const HttpRequestPtr& req, std::function<void (const Htt
|
|
|
*/
|
|
|
void K8s::deleteDeployment(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, std::string token, \
|
|
|
std::string name){
|
|
|
- HttpResponsePtr resp;
|
|
|
- resp = HttpResponse::newHttpResponse();
|
|
|
- resp->setBody("deleteDeployment");
|
|
|
- callback(resp);
|
|
|
+ ins::Disposition::Ptr disposition = ins::Disposition::getPtr();
|
|
|
+ std::string src = "http://"+ disposition->k8s_IP + ":" + std::to_string(disposition->k8s_port);
|
|
|
+ auto client = HttpClient::newHttpClient(src);
|
|
|
+ auto send_req = HttpRequest::newHttpRequest();
|
|
|
+ send_req->setMethod(drogon::Delete);
|
|
|
+ send_req->setPath("/apis/apps/v1/namespaces/" + disposition->getWorkspace() + "/deployments/" + name);
|
|
|
+ send_req->addHeader("Authorization", disposition->KsToken.token_type + " " + disposition->KsToken.access_token);
|
|
|
+ auto result = client->sendRequest(send_req);
|
|
|
+ auto *pluginPtr=app().getPlugin<httpHelper>();
|
|
|
+ auto request = pluginPtr->replyRequest(result,send_req->getMethod());
|
|
|
+ callback(request);
|
|
|
}
|