Skip to content
This repository was archived by the owner on Jul 4, 2025. It is now read-only.

Commit 0e32e37

Browse files
authored
feat: e2e tests for APIs (#1358)
* feat: e2e test for APIs * feat: more models * feat: models update * feat: models alias * feat: more * feat: more * chore: rename modelId to model * fix: unit tests * fix: swagger * fix: e2e * fix: e2e tests * fix: e2e tests
1 parent 23746ee commit 0e32e37

27 files changed

+441
-167
lines changed

engine/commands/cmd_info.cc

Lines changed: 0 additions & 55 deletions
This file was deleted.

engine/commands/cmd_info.h

Lines changed: 0 additions & 14 deletions
This file was deleted.

engine/commands/model_get_cmd.cc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
#include <iomanip>
44
#include <iostream>
55
#include <vector>
6-
#include "cmd_info.h"
76
#include "config/yaml_config.h"
87
#include "database/models.h"
98
#include "utils/file_manager_utils.h"

engine/commands/model_list_cmd.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ void ModelListCmd::Exec() {
3131
count += 1;
3232
yaml_handler.ModelConfigFromFile(model_entry.path_to_model_yaml);
3333
auto model_config = yaml_handler.GetModelConfig();
34-
table.add_row({std::to_string(count), model_entry.model_id,
34+
table.add_row({std::to_string(count), model_entry.model,
3535
model_entry.model_alias, model_config.engine,
3636
model_config.version});
3737
yaml_handler.Reset();

engine/controllers/command_line_parser.cc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#include "command_line_parser.h"
22
#include "commands/chat_cmd.h"
33
#include "commands/chat_completion_cmd.h"
4-
#include "commands/cmd_info.h"
54
#include "commands/cortex_upd_cmd.h"
65
#include "commands/engine_get_cmd.h"
76
#include "commands/engine_install_cmd.h"

engine/controllers/engines.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class Engines : public drogon::HttpController<Engines> {
1212
Engines() : engine_service_{EngineService()} {};
1313

1414
METHOD_LIST_BEGIN
15-
METHOD_ADD(Engines::InstallEngine, "/{1}/install", Post);
15+
METHOD_ADD(Engines::InstallEngine, "/install/{1}", Post);
1616
METHOD_ADD(Engines::UninstallEngine, "/{1}", Delete);
1717
METHOD_ADD(Engines::ListEngine, "", Get);
1818
METHOD_ADD(Engines::GetEngine, "/{1}", Get);

engine/controllers/models.cc

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212

1313
void Models::PullModel(const HttpRequestPtr& req,
1414
std::function<void(const HttpResponsePtr&)>&& callback) {
15-
if (!http_util::HasFieldInReq(req, callback, "modelId")) {
15+
if (!http_util::HasFieldInReq(req, callback, "model")) {
1616
return;
1717
}
1818

19-
auto model_handle = (*(req->getJsonObject())).get("modelId", "").asString();
19+
auto model_handle = (*(req->getJsonObject())).get("model", "").asString();
2020
if (model_handle.empty()) {
2121
Json::Value ret;
2222
ret["result"] = "Bad Request";
@@ -103,22 +103,18 @@ void Models::ListModel(
103103
}
104104
}
105105

106-
void Models::GetModel(
107-
const HttpRequestPtr& req,
108-
std::function<void(const HttpResponsePtr&)>&& callback) const {
109-
if (!http_util::HasFieldInReq(req, callback, "modelId")) {
110-
return;
111-
}
112-
auto model_handle = (*(req->getJsonObject())).get("modelId", "").asString();
113-
LOG_DEBUG << "GetModel, Model handle: " << model_handle;
106+
void Models::GetModel(const HttpRequestPtr& req,
107+
std::function<void(const HttpResponsePtr&)>&& callback,
108+
const std::string& model_id) const {
109+
LOG_DEBUG << "GetModel, Model handle: " << model_id;
114110
Json::Value ret;
115111
ret["object"] = "list";
116112
Json::Value data(Json::arrayValue);
117113

118114
try {
119115
cortex::db::Models modellist_handler;
120116
config::YamlHandler yaml_handler;
121-
auto model_entry = modellist_handler.GetModelInfo(model_handle);
117+
auto model_entry = modellist_handler.GetModelInfo(model_id);
122118
if (model_entry.has_error()) {
123119
// CLI_LOG("Error: " + model_entry.error());
124120
ret["data"] = data;
@@ -142,7 +138,7 @@ void Models::GetModel(
142138
callback(resp);
143139
} catch (const std::exception& e) {
144140
std::string message = "Fail to get model information with ID '" +
145-
model_handle + "': " + e.what();
141+
model_id + "': " + e.what();
146142
LOG_ERROR << message;
147143
ret["data"] = data;
148144
ret["result"] = "Fail to get model information";
@@ -172,13 +168,9 @@ void Models::DeleteModel(const HttpRequestPtr& req,
172168
}
173169
}
174170

175-
void Models::UpdateModel(
176-
const HttpRequestPtr& req,
177-
std::function<void(const HttpResponsePtr&)>&& callback) const {
178-
if (!http_util::HasFieldInReq(req, callback, "modelId")) {
179-
return;
180-
}
181-
auto model_id = (*(req->getJsonObject())).get("modelId", "").asString();
171+
void Models::UpdateModel(const HttpRequestPtr& req,
172+
std::function<void(const HttpResponsePtr&)>&& callback,
173+
const std::string& model_id) const {
182174
auto json_body = *(req->getJsonObject());
183175
try {
184176
cortex::db::Models model_list_utils;
@@ -198,7 +190,7 @@ void Models::UpdateModel(
198190
ret["message"] = message;
199191

200192
auto resp = cortex_utils::CreateCortexHttpJsonResponse(ret);
201-
resp->setStatusCode(k400BadRequest);
193+
resp->setStatusCode(k200OK);
202194
callback(resp);
203195

204196
} catch (const std::exception& e) {
@@ -218,11 +210,11 @@ void Models::UpdateModel(
218210
void Models::ImportModel(
219211
const HttpRequestPtr& req,
220212
std::function<void(const HttpResponsePtr&)>&& callback) const {
221-
if (!http_util::HasFieldInReq(req, callback, "modelId") ||
213+
if (!http_util::HasFieldInReq(req, callback, "model") ||
222214
!http_util::HasFieldInReq(req, callback, "modelPath")) {
223215
return;
224216
}
225-
auto modelHandle = (*(req->getJsonObject())).get("modelId", "").asString();
217+
auto modelHandle = (*(req->getJsonObject())).get("model", "").asString();
226218
auto modelPath = (*(req->getJsonObject())).get("modelPath", "").asString();
227219
config::GGUFHandler gguf_handler;
228220
config::YamlHandler yaml_handler;
@@ -288,11 +280,11 @@ void Models::ImportModel(
288280
void Models::SetModelAlias(
289281
const HttpRequestPtr& req,
290282
std::function<void(const HttpResponsePtr&)>&& callback) const {
291-
if (!http_util::HasFieldInReq(req, callback, "modelId") ||
283+
if (!http_util::HasFieldInReq(req, callback, "model") ||
292284
!http_util::HasFieldInReq(req, callback, "modelAlias")) {
293285
return;
294286
}
295-
auto model_handle = (*(req->getJsonObject())).get("modelId", "").asString();
287+
auto model_handle = (*(req->getJsonObject())).get("model", "").asString();
296288
auto model_alias = (*(req->getJsonObject())).get("modelAlias", "").asString();
297289
LOG_DEBUG << "GetModel, Model handle: " << model_handle
298290
<< ", Model alias: " << model_alias;
@@ -390,7 +382,7 @@ void Models::StopModel(const HttpRequestPtr& req,
390382
callback(resp);
391383
} else {
392384
Json::Value ret;
393-
ret["message"] = "Started successfully!";
385+
ret["message"] = "Stopped successfully!";
394386
auto resp = cortex_utils::CreateCortexHttpJsonResponse(ret);
395387
resp->setStatusCode(k200OK);
396388
callback(resp);

engine/controllers/models.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ class Models : public drogon::HttpController<Models> {
1313
METHOD_LIST_BEGIN
1414
METHOD_ADD(Models::PullModel, "/pull", Post);
1515
METHOD_ADD(Models::ListModel, "", Get);
16-
METHOD_ADD(Models::GetModel, "/get", Post);
17-
METHOD_ADD(Models::UpdateModel, "/update", Post);
16+
METHOD_ADD(Models::GetModel, "/{1}", Get);
17+
METHOD_ADD(Models::UpdateModel, "/{1}", Post);
1818
METHOD_ADD(Models::ImportModel, "/import", Post);
1919
METHOD_ADD(Models::DeleteModel, "/{1}", Delete);
2020
METHOD_ADD(Models::SetModelAlias, "/alias", Post);
@@ -27,10 +27,11 @@ class Models : public drogon::HttpController<Models> {
2727
void ListModel(const HttpRequestPtr& req,
2828
std::function<void(const HttpResponsePtr&)>&& callback) const;
2929
void GetModel(const HttpRequestPtr& req,
30-
std::function<void(const HttpResponsePtr&)>&& callback) const;
31-
void UpdateModel(
32-
const HttpRequestPtr& req,
33-
std::function<void(const HttpResponsePtr&)>&& callback) const;
30+
std::function<void(const HttpResponsePtr&)>&& callback,
31+
const std::string& model_id) const;
32+
void UpdateModel(const HttpRequestPtr& req,
33+
std::function<void(const HttpResponsePtr&)>&& callback,
34+
const std::string& model_id) const;
3435
void ImportModel(
3536
const HttpRequestPtr& req,
3637
std::function<void(const HttpResponsePtr&)>&& callback) const;

0 commit comments

Comments
 (0)