Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
iSulad
提交
e089b8ff
I
iSulad
项目概览
openeuler
/
iSulad
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
iSulad
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e089b8ff
编写于
6月 28, 2020
作者:
L
lifeng68
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
runtime: move struct define to runtime.h
Signed-off-by:
N
lifeng68
<
lifeng68@huawei.com
>
上级
0a7869a2
变更
15
隐藏空白更改
内联
并排
Showing
15 changed file
with
103 addition
and
134 deletion
+103
-134
src/daemon/container/restore/restore.c
src/daemon/container/restore/restore.c
+10
-10
src/daemon/executor/container_cb/execution_extend.c
src/daemon/executor/container_cb/execution_extend.c
+2
-2
src/daemon/executor/container_cb/execution_stream.c
src/daemon/executor/container_cb/execution_stream.c
+2
-1
src/daemon/runtime/engines/engine.h
src/daemon/runtime/engines/engine.h
+4
-48
src/daemon/runtime/engines/lcr/lcr_engine.c
src/daemon/runtime/engines/lcr/lcr_engine.c
+20
-21
src/daemon/runtime/engines/lcr/lcr_rt_ops.c
src/daemon/runtime/engines/lcr/lcr_rt_ops.c
+2
-2
src/daemon/runtime/engines/lcr/lcr_rt_ops.h
src/daemon/runtime/engines/lcr/lcr_rt_ops.h
+2
-3
src/daemon/runtime/isula/isula_rt_ops.c
src/daemon/runtime/isula/isula_rt_ops.c
+8
-8
src/daemon/runtime/isula/isula_rt_ops.h
src/daemon/runtime/isula/isula_rt_ops.h
+2
-4
src/daemon/runtime/runtime.c
src/daemon/runtime/runtime.c
+3
-2
src/daemon/runtime/runtime.h
src/daemon/runtime/runtime.h
+37
-5
test/mocks/runtime_mock.cc
test/mocks/runtime_mock.cc
+1
-1
test/mocks/runtime_mock.h
test/mocks/runtime_mock.h
+2
-2
test/runtime/isula/isula_rt_ops_ut.cpp
test/runtime/isula/isula_rt_ops_ut.cpp
+1
-2
test/runtime/lcr/lcr_rt_ops_ut.cpp
test/runtime/lcr/lcr_rt_ops_ut.cpp
+7
-23
未找到文件。
src/daemon/container/restore/restore.c
浏览文件 @
e089b8ff
...
...
@@ -101,12 +101,12 @@ out:
}
static
void
post_nonexist_image_containers
(
const
container_t
*
cont
,
Container_Status
status
,
const
struct
engin
e_container_status_info
*
info
)
const
struct
runtim
e_container_status_info
*
info
)
{
int
nret
;
const
char
*
id
=
cont
->
common_config
->
id
;
if
(
info
->
status
==
ENGIN
E_CONTAINER_STATUS_STOPPED
)
{
if
(
info
->
status
==
RUNTIM
E_CONTAINER_STATUS_STOPPED
)
{
if
(
status
!=
CONTAINER_STATUS_STOPPED
&&
status
!=
CONTAINER_STATUS_CREATED
)
{
nret
=
post_stopped_container_to_gc
(
id
,
cont
->
runtime
,
cont
->
state_path
,
0
);
if
(
nret
!=
0
)
{
...
...
@@ -117,7 +117,7 @@ static void post_nonexist_image_containers(const container_t *cont, Container_St
}
state_set_stopped
(
cont
->
state
,
255
);
}
}
else
if
(
info
->
status
==
ENGIN
E_CONTAINER_STATUS_RUNNING
)
{
}
else
if
(
info
->
status
==
RUNTIM
E_CONTAINER_STATUS_RUNNING
)
{
nret
=
post_stopped_container_to_gc
(
id
,
cont
->
runtime
,
cont
->
state_path
,
info
->
pid
);
if
(
nret
!=
0
)
{
ERROR
(
"Failed to post container %s to garbage"
...
...
@@ -216,7 +216,7 @@ static int restore_stopped_container(Container_Status status, const container_t
}
static
int
restore_running_container
(
Container_Status
status
,
container_t
*
cont
,
const
struct
engin
e_container_status_info
*
info
)
const
struct
runtim
e_container_status_info
*
info
)
{
int
ret
=
0
;
int
nret
=
0
;
...
...
@@ -246,7 +246,7 @@ out:
}
static
int
restore_paused_container
(
Container_Status
status
,
container_t
*
cont
,
const
struct
engin
e_container_status_info
*
info
)
const
struct
runtim
e_container_status_info
*
info
)
{
int
ret
=
0
;
int
nret
=
0
;
...
...
@@ -286,7 +286,7 @@ static int restore_state(container_t *cont)
const
char
*
id
=
cont
->
common_config
->
id
;
const
char
*
runtime
=
cont
->
runtime
;
rt_status_params_t
params
=
{
0
};
struct
engin
e_container_status_info
real_status
=
{
0
};
struct
runtim
e_container_status_info
real_status
=
{
0
};
Container_Status
status
=
state_get_status
(
cont
->
state
);
(
void
)
container_exit_on_next
(
cont
);
/* cancel restart policy */
...
...
@@ -304,20 +304,20 @@ static int restore_state(container_t *cont)
if
(
nret
!=
0
)
{
ERROR
(
"Failed to restore container %s, make real status to STOPPED. Due to can not load container with status %d"
,
id
,
status
);
real_status
.
status
=
ENGIN
E_CONTAINER_STATUS_STOPPED
;
real_status
.
status
=
RUNTIM
E_CONTAINER_STATUS_STOPPED
;
}
if
(
real_status
.
status
==
ENGIN
E_CONTAINER_STATUS_STOPPED
)
{
if
(
real_status
.
status
==
RUNTIM
E_CONTAINER_STATUS_STOPPED
)
{
ret
=
restore_stopped_container
(
status
,
cont
,
&
need_save
);
if
(
ret
!=
0
)
{
goto
out
;
}
}
else
if
(
real_status
.
status
==
ENGIN
E_CONTAINER_STATUS_RUNNING
)
{
}
else
if
(
real_status
.
status
==
RUNTIM
E_CONTAINER_STATUS_RUNNING
)
{
ret
=
restore_running_container
(
status
,
cont
,
&
real_status
);
if
(
ret
!=
0
)
{
goto
out
;
}
}
else
if
(
real_status
.
status
==
ENGIN
E_CONTAINER_STATUS_PAUSED
)
{
}
else
if
(
real_status
.
status
==
RUNTIM
E_CONTAINER_STATUS_PAUSED
)
{
ret
=
restore_paused_container
(
status
,
cont
,
&
real_status
);
if
(
ret
!=
0
)
{
goto
out
;
...
...
src/daemon/executor/container_cb/execution_extend.c
浏览文件 @
e089b8ff
...
...
@@ -206,7 +206,7 @@ static int copy_map_labels(const container_config *config, map_t **map_labels)
}
static
container_info
*
get_container_stats
(
const
container_t
*
cont
,
const
struct
engin
e_container_resources_stats_info
*
einfo
,
const
struct
runtim
e_container_resources_stats_info
*
einfo
,
const
struct
stats_context
*
ctx
)
{
int
ret
=
0
;
...
...
@@ -398,7 +398,7 @@ static int get_containers_stats(char **idsarray, size_t ids_len, const struct st
}
for
(
i
=
0
;
i
<
ids_len
;
i
++
)
{
struct
engin
e_container_resources_stats_info
einfo
=
{
0
};
struct
runtim
e_container_resources_stats_info
einfo
=
{
0
};
container_t
*
cont
=
NULL
;
cont
=
containers_store_get
(
idsarray
[
i
]);
...
...
src/daemon/executor/container_cb/execution_stream.c
浏览文件 @
e089b8ff
...
...
@@ -302,7 +302,8 @@ err_out:
return
NULL
;
}
static
int
exec_container
(
container_t
*
cont
,
const
char
*
runtime
,
char
*
const
console_fifos
[],
defs_process_user
*
puser
,
static
int
exec_container
(
container_t
*
cont
,
const
char
*
runtime
,
char
*
const
console_fifos
[],
defs_process_user
*
puser
,
const
container_exec_request
*
request
,
int
*
exit_code
)
{
int
ret
=
0
;
...
...
src/daemon/runtime/engines/engine.h
浏览文件 @
e089b8ff
...
...
@@ -19,43 +19,12 @@
#include <stdlib.h>
#include <stdint.h>
#include "runtime.h"
#ifdef __cplusplus
extern
"C"
{
#endif
typedef
enum
{
ENGINE_CONTAINER_STATUS_UNKNOWN
=
0
,
ENGINE_CONTAINER_STATUS_CREATED
=
1
,
ENGINE_CONTAINER_STATUS_STARTING
=
2
,
ENGINE_CONTAINER_STATUS_RUNNING
=
3
,
ENGINE_CONTAINER_STATUS_STOPPED
=
4
,
ENGINE_CONTAINER_STATUS_PAUSED
=
5
,
ENGINE_CONTAINER_STATUS_RESTARTING
=
6
,
ENGINE_CONTAINER_STATUS_MAX_STATE
=
7
}
Engine_Container_Status
;
struct
engine_container_status_info
{
bool
has_pid
;
uint32_t
pid
;
Engine_Container_Status
status
;
};
struct
engine_container_resources_stats_info
{
uint64_t
pids_current
;
/* CPU usage */
uint64_t
cpu_use_nanos
;
uint64_t
cpu_system_use
;
/* BlkIO usage */
uint64_t
blkio_read
;
uint64_t
blkio_write
;
/* Memory usage */
uint64_t
mem_used
;
uint64_t
mem_limit
;
/* Kernel Memory usage */
uint64_t
kmem_used
;
uint64_t
kmem_limit
;
};
struct
engine_cgroup_resources
{
uint64_t
blkio_weight
;
uint64_t
cpu_shares
;
...
...
@@ -69,19 +38,6 @@ struct engine_cgroup_resources {
uint64_t
kernel_memory_limit
;
};
struct
engine_container_summary_info
{
char
*
id
;
uint32_t
has_pid
;
uint32_t
pid
;
Engine_Container_Status
status
;
char
*
image
;
char
*
command
;
uint32_t
exit_code
;
uint32_t
restart_count
;
char
*
startat
;
char
*
finishat
;
};
typedef
struct
_engine_start_request_t
{
const
char
*
name
;
const
char
*
lcrpath
;
...
...
@@ -146,10 +102,10 @@ typedef bool (*engine_update_t)(const char *name, const char *enginepath, const
typedef
bool
(
*
engine_exec_t
)(
const
engine_exec_request_t
*
request
,
int
*
exit_code
);
typedef
int
(
*
engine_get_container_status_t
)(
const
char
*
name
,
const
char
*
enginepath
,
struct
engin
e_container_status_info
*
status
);
struct
runtim
e_container_status_info
*
status
);
typedef
int
(
*
engine_get_container_resources_stats_t
)(
const
char
*
name
,
const
char
*
enginepath
,
struct
engin
e_container_resources_stats_info
*
rs_stats
);
struct
runtim
e_container_resources_stats_info
*
rs_stats
);
typedef
bool
(
*
engine_get_container_pids_t
)(
const
char
*
name
,
const
char
*
rootpath
,
pid_t
**
pids
,
size_t
*
pids_len
);
...
...
src/daemon/runtime/engines/lcr/lcr_engine.c
浏览文件 @
e089b8ff
...
...
@@ -27,11 +27,11 @@
#include "isula_libutils/log.h"
#include "isulad_config.h"
typedef
bool
(
*
lcr_state_op_t
)(
const
char
*
name
,
const
char
*
lcrpath
,
struct
lcr_container_state
*
lcs
);
typedef
void
(
*
lcr_container_state_free_t
)(
struct
lcr_container_state
*
lcs
);
typedef
bool
(
*
lcr_update_op_t
)(
const
char
*
name
,
const
char
*
lcrpath
,
struct
lcr_cgroup_resources
*
cr
);
typedef
bool
(
*
lcr_start_op_t
)(
struct
lcr_start_request
*
request
);
typedef
bool
(
*
lcr_exec_op_t
)(
const
struct
lcr_exec_request
*
request
,
int
*
exit_code
);
typedef
bool
(
*
lcr_state_op_t
)(
const
char
*
name
,
const
char
*
lcrpath
,
struct
lcr_container_state
*
lcs
);
typedef
void
(
*
lcr_container_state_free_t
)(
struct
lcr_container_state
*
lcs
);
typedef
bool
(
*
lcr_update_op_t
)(
const
char
*
name
,
const
char
*
lcrpath
,
struct
lcr_cgroup_resources
*
cr
);
typedef
bool
(
*
lcr_start_op_t
)(
struct
lcr_start_request
*
request
);
typedef
bool
(
*
lcr_exec_op_t
)(
const
struct
lcr_exec_request
*
request
,
int
*
exit_code
);
static
lcr_state_op_t
g_lcr_state_op
=
NULL
;
static
lcr_container_state_free_t
g_lcr_container_state_free_op
=
NULL
;
...
...
@@ -41,9 +41,9 @@ static lcr_exec_op_t g_lcr_exec_op = NULL;
/*
* Trans the lcr_state_t to Status
*/
static
Engin
e_Container_Status
lcrsta2sta
(
const
char
*
state
)
static
Runtim
e_Container_Status
lcrsta2sta
(
const
char
*
state
)
{
Engine_Container_Status
status
=
ENGIN
E_CONTAINER_STATUS_UNKNOWN
;
Runtime_Container_Status
status
=
RUNTIM
E_CONTAINER_STATUS_UNKNOWN
;
if
(
state
==
NULL
)
{
WARN
(
"Empty string of state"
);
...
...
@@ -51,17 +51,17 @@ static Engine_Container_Status lcrsta2sta(const char *state)
}
if
(
strcmp
(
"STOPPED"
,
state
)
==
0
)
{
status
=
ENGIN
E_CONTAINER_STATUS_STOPPED
;
status
=
RUNTIM
E_CONTAINER_STATUS_STOPPED
;
}
else
if
((
strcmp
(
"STARTING"
,
state
)
==
0
)
||
(
strcmp
(
"STOPPING"
,
state
)
==
0
))
{
status
=
ENGIN
E_CONTAINER_STATUS_CREATED
;
status
=
RUNTIM
E_CONTAINER_STATUS_CREATED
;
}
else
if
(
strcmp
(
"RUNNING"
,
state
)
==
0
)
{
status
=
ENGIN
E_CONTAINER_STATUS_RUNNING
;
}
else
if
((
strcmp
(
"ABORTING"
,
state
)
==
0
)
||
(
strcmp
(
"FREEZING"
,
state
)
==
0
)
||
(
strcmp
(
"
FROZEN"
,
state
)
==
0
)
||
(
strcmp
(
"
THAWED"
,
state
)
==
0
))
{
status
=
ENGIN
E_CONTAINER_STATUS_PAUSED
;
status
=
RUNTIM
E_CONTAINER_STATUS_RUNNING
;
}
else
if
((
strcmp
(
"ABORTING"
,
state
)
==
0
)
||
(
strcmp
(
"FREEZING"
,
state
)
==
0
)
||
(
strcmp
(
"FROZEN"
,
state
)
==
0
)
||
(
strcmp
(
"THAWED"
,
state
)
==
0
))
{
status
=
RUNTIM
E_CONTAINER_STATUS_PAUSED
;
}
else
{
DEBUG
(
"invalid state '%s'"
,
state
);
status
=
ENGIN
E_CONTAINER_STATUS_UNKNOWN
;
status
=
RUNTIM
E_CONTAINER_STATUS_UNKNOWN
;
}
return
status
;
...
...
@@ -115,9 +115,9 @@ static bool lcr_exec_container(const engine_exec_request_t *request, int *exit_c
/*
* Get the state of container from 'lcr_container_state'
*/
static
void
copy_container_status
(
const
struct
lcr_container_state
*
lcs
,
struct
engin
e_container_status_info
*
status
)
static
void
copy_container_status
(
const
struct
lcr_container_state
*
lcs
,
struct
runtim
e_container_status_info
*
status
)
{
(
void
)
memset
(
status
,
0
,
sizeof
(
struct
engin
e_container_status_info
));
(
void
)
memset
(
status
,
0
,
sizeof
(
struct
runtim
e_container_status_info
));
status
->
has_pid
=
(
-
1
==
lcs
->
init
)
?
false
:
true
;
status
->
pid
=
(
uint32_t
)
lcs
->
init
;
...
...
@@ -126,7 +126,7 @@ static void copy_container_status(const struct lcr_container_state *lcs, struct
}
/* get container status */
static
int
get_container_status
(
const
char
*
name
,
const
char
*
enginepath
,
struct
engin
e_container_status_info
*
status
)
static
int
get_container_status
(
const
char
*
name
,
const
char
*
enginepath
,
struct
runtim
e_container_status_info
*
status
)
{
struct
lcr_container_state
lcs
=
{
0
};
...
...
@@ -146,9 +146,9 @@ static int get_container_status(const char *name, const char *enginepath, struct
}
static
void
copy_container_resources_stats
(
const
struct
lcr_container_state
*
lcs
,
struct
engin
e_container_resources_stats_info
*
rs_stats
)
struct
runtim
e_container_resources_stats_info
*
rs_stats
)
{
(
void
)
memset
(
rs_stats
,
0
,
sizeof
(
struct
engin
e_container_resources_stats_info
));
(
void
)
memset
(
rs_stats
,
0
,
sizeof
(
struct
runtim
e_container_resources_stats_info
));
rs_stats
->
pids_current
=
lcs
->
pids_current
;
rs_stats
->
cpu_use_nanos
=
lcs
->
cpu_use_nanos
;
...
...
@@ -164,7 +164,7 @@ static void copy_container_resources_stats(const struct lcr_container_state *lcs
/* get container cgroup resources */
static
int
lcr_get_container_resources_stats
(
const
char
*
name
,
const
char
*
enginepath
,
struct
engin
e_container_resources_stats_info
*
rs_stats
)
struct
runtim
e_container_resources_stats_info
*
rs_stats
)
{
struct
lcr_container_state
lcs
=
{
0
};
...
...
@@ -309,4 +309,3 @@ badcleanup:
cleanup:
return
eop
;
}
src/daemon/runtime/engines/lcr/lcr_rt_ops.c
浏览文件 @
e089b8ff
...
...
@@ -253,7 +253,7 @@ out:
}
int
rt_lcr_status
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_status_params_t
*
params
,
struct
engin
e_container_status_info
*
status
)
struct
runtim
e_container_status_info
*
status
)
{
int
ret
=
0
;
int
nret
=
0
;
...
...
@@ -280,7 +280,7 @@ out:
}
int
rt_lcr_resources_stats
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_stats_params_t
*
params
,
struct
engin
e_container_resources_stats_info
*
rs_stats
)
struct
runtim
e_container_resources_stats_info
*
rs_stats
)
{
int
ret
=
0
;
int
nret
=
0
;
...
...
src/daemon/runtime/engines/lcr/lcr_rt_ops.h
浏览文件 @
e089b8ff
...
...
@@ -29,7 +29,7 @@ int rt_lcr_restart(const char *name, const char *runtime, const rt_restart_param
int
rt_lcr_clean_resource
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_clean_params_t
*
params
);
int
rt_lcr_rm
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_rm_params_t
*
params
);
int
rt_lcr_status
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_status_params_t
*
params
,
struct
engin
e_container_status_info
*
status
);
struct
runtim
e_container_status_info
*
status
);
int
rt_lcr_exec
(
const
char
*
id
,
const
char
*
runtime
,
const
rt_exec_params_t
*
params
,
int
*
exit_code
);
int
rt_lcr_pause
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_pause_params_t
*
params
);
int
rt_lcr_resume
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_resume_params_t
*
params
);
...
...
@@ -40,7 +40,7 @@ int rt_lcr_update(const char *id, const char *runtime, const rt_update_params_t
int
rt_lcr_listpids
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_listpids_params_t
*
params
,
rt_listpids_out_t
*
out
);
int
rt_lcr_resources_stats
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_stats_params_t
*
params
,
struct
engin
e_container_resources_stats_info
*
rs_stats
);
struct
runtim
e_container_resources_stats_info
*
rs_stats
);
int
rt_lcr_resize
(
const
char
*
id
,
const
char
*
runtime
,
const
rt_resize_params_t
*
params
);
int
rt_lcr_exec_resize
(
const
char
*
id
,
const
char
*
runtime
,
const
rt_exec_resize_params_t
*
params
);
#ifdef __cplusplus
...
...
@@ -48,4 +48,3 @@ int rt_lcr_exec_resize(const char *id, const char *runtime, const rt_exec_resize
#endif
#endif
src/daemon/runtime/isula/isula_rt_ops.c
浏览文件 @
e089b8ff
...
...
@@ -441,19 +441,19 @@ static void runtime_exec_func(void *arg)
static
int
status_string_to_int
(
const
char
*
status
)
{
if
(
strcmp
(
status
,
"running"
)
==
0
)
{
return
ENGIN
E_CONTAINER_STATUS_RUNNING
;
return
RUNTIM
E_CONTAINER_STATUS_RUNNING
;
}
if
(
strcmp
(
status
,
"stopped"
)
==
0
)
{
return
ENGIN
E_CONTAINER_STATUS_STOPPED
;
return
RUNTIM
E_CONTAINER_STATUS_STOPPED
;
}
if
(
strcmp
(
status
,
"paused"
)
==
0
)
{
return
ENGIN
E_CONTAINER_STATUS_PAUSED
;
return
RUNTIM
E_CONTAINER_STATUS_PAUSED
;
}
return
ENGIN
E_CONTAINER_STATUS_UNKNOWN
;
return
RUNTIM
E_CONTAINER_STATUS_UNKNOWN
;
}
static
int
runtime_call_status
(
const
char
*
workdir
,
const
char
*
runtime
,
const
char
*
id
,
struct
engin
e_container_status_info
*
ecsi
)
struct
runtim
e_container_status_info
*
ecsi
)
{
char
*
stdout
=
NULL
;
char
*
stderr
=
NULL
;
...
...
@@ -502,7 +502,7 @@ out:
}
static
int
runtime_call_stats
(
const
char
*
workdir
,
const
char
*
runtime
,
const
char
*
id
,
struct
engin
e_container_resources_stats_info
*
info
)
struct
runtim
e_container_resources_stats_info
*
info
)
{
char
*
stdout
=
NULL
;
char
*
stderr
=
NULL
;
...
...
@@ -1057,7 +1057,7 @@ out:
}
int
rt_isula_status
(
const
char
*
id
,
const
char
*
runtime
,
const
rt_status_params_t
*
params
,
struct
engin
e_container_status_info
*
status
)
struct
runtim
e_container_status_info
*
status
)
{
char
workdir
[
PATH_MAX
]
=
{
0
};
int
ret
=
0
;
...
...
@@ -1141,7 +1141,7 @@ int rt_isula_listpids(const char *name, const char *runtime, const rt_listpids_p
}
int
rt_isula_resources_stats
(
const
char
*
id
,
const
char
*
runtime
,
const
rt_stats_params_t
*
params
,
struct
engin
e_container_resources_stats_info
*
rs_stats
)
struct
runtim
e_container_resources_stats_info
*
rs_stats
)
{
char
workdir
[
PATH_MAX
]
=
{
0
};
int
ret
=
0
;
...
...
src/daemon/runtime/isula/isula_rt_ops.h
浏览文件 @
e089b8ff
...
...
@@ -30,9 +30,8 @@ int rt_isula_clean_resource(const char *name, const char *runtime, const rt_clea
int
rt_isula_rm
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_rm_params_t
*
params
);
int
rt_isula_exec
(
const
char
*
id
,
const
char
*
runtime
,
const
rt_exec_params_t
*
params
,
int
*
exit_code
);
int
rt_isula_status
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_status_params_t
*
params
,
struct
engin
e_container_status_info
*
status
);
struct
runtim
e_container_status_info
*
status
);
int
rt_isula_attach
(
const
char
*
id
,
const
char
*
runtime
,
const
rt_attach_params_t
*
params
);
int
rt_isula_update
(
const
char
*
id
,
const
char
*
runtime
,
const
rt_update_params_t
*
params
);
int
rt_isula_pause
(
const
char
*
id
,
const
char
*
runtime
,
const
rt_pause_params_t
*
params
);
...
...
@@ -40,11 +39,10 @@ int rt_isula_resume(const char *id, const char *runtime, const rt_resume_params_
int
rt_isula_listpids
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_listpids_params_t
*
params
,
rt_listpids_out_t
*
out
);
int
rt_isula_resources_stats
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_stats_params_t
*
params
,
struct
engin
e_container_resources_stats_info
*
rs_stats
);
struct
runtim
e_container_resources_stats_info
*
rs_stats
);
int
rt_isula_resize
(
const
char
*
id
,
const
char
*
runtime
,
const
rt_resize_params_t
*
params
);
int
rt_isula_exec_resize
(
const
char
*
id
,
const
char
*
runtime
,
const
rt_exec_resize_params_t
*
params
);
#ifdef __cplusplus
}
#endif
...
...
src/daemon/runtime/runtime.c
浏览文件 @
e089b8ff
...
...
@@ -22,6 +22,7 @@
#include <ctype.h>
#include "runtime.h"
#include "engine.h"
#include "isulad_config.h"
#include "isula_libutils/log.h"
#include "utils.h"
...
...
@@ -211,7 +212,7 @@ out:
}
int
runtime_status
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_status_params_t
*
params
,
struct
engin
e_container_status_info
*
status
)
struct
runtim
e_container_status_info
*
status
)
{
int
ret
=
0
;
const
struct
rt_ops
*
ops
=
NULL
;
...
...
@@ -236,7 +237,7 @@ out:
}
int
runtime_resources_stats
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_stats_params_t
*
params
,
struct
engin
e_container_resources_stats_info
*
rs_stats
)
struct
runtim
e_container_resources_stats_info
*
rs_stats
)
{
int
ret
=
0
;
const
struct
rt_ops
*
ops
=
NULL
;
...
...
src/daemon/runtime/runtime.h
浏览文件 @
e089b8ff
...
...
@@ -20,7 +20,6 @@
#include "libisulad.h"
#include "isula_libutils/host_config.h"
#include "isula_libutils/oci_runtime_spec.h"
#include "engine.h"
#ifdef __cplusplus
extern
"C"
{
...
...
@@ -28,6 +27,39 @@ extern "C" {
#define RUNTIME_NOT_IMPLEMENT_RESET -2
typedef
enum
{
RUNTIME_CONTAINER_STATUS_UNKNOWN
=
0
,
RUNTIME_CONTAINER_STATUS_CREATED
=
1
,
RUNTIME_CONTAINER_STATUS_STARTING
=
2
,
RUNTIME_CONTAINER_STATUS_RUNNING
=
3
,
RUNTIME_CONTAINER_STATUS_STOPPED
=
4
,
RUNTIME_CONTAINER_STATUS_PAUSED
=
5
,
RUNTIME_CONTAINER_STATUS_RESTARTING
=
6
,
RUNTIME_CONTAINER_STATUS_MAX_STATE
=
7
}
Runtime_Container_Status
;
struct
runtime_container_status_info
{
bool
has_pid
;
uint32_t
pid
;
Runtime_Container_Status
status
;
};
struct
runtime_container_resources_stats_info
{
uint64_t
pids_current
;
/* CPU usage */
uint64_t
cpu_use_nanos
;
uint64_t
cpu_system_use
;
/* BlkIO usage */
uint64_t
blkio_read
;
uint64_t
blkio_write
;
/* Memory usage */
uint64_t
mem_used
;
uint64_t
mem_limit
;
/* Kernel Memory usage */
uint64_t
kmem_used
;
uint64_t
kmem_limit
;
};
typedef
struct
_rt_create_params_t
{
const
char
*
rootfs
;
const
char
*
bundle
;
...
...
@@ -157,10 +189,10 @@ struct rt_ops {
int
(
*
rt_rm
)(
const
char
*
name
,
const
char
*
runtime
,
const
rt_rm_params_t
*
params
);
int
(
*
rt_status
)(
const
char
*
name
,
const
char
*
runtime
,
const
rt_status_params_t
*
params
,
struct
engin
e_container_status_info
*
status
);
struct
runtim
e_container_status_info
*
status
);
int
(
*
rt_resources_stats
)(
const
char
*
name
,
const
char
*
runtime
,
const
rt_stats_params_t
*
params
,
struct
engin
e_container_resources_stats_info
*
rs_stats
);
struct
runtim
e_container_resources_stats_info
*
rs_stats
);
int
(
*
rt_exec
)(
const
char
*
name
,
const
char
*
runtime
,
const
rt_exec_params_t
*
params
,
int
*
exit_code
);
...
...
@@ -183,9 +215,9 @@ int runtime_start(const char *name, const char *runtime, const rt_start_params_t
int
runtime_restart
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_restart_params_t
*
params
);
int
runtime_rm
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_rm_params_t
*
params
);
int
runtime_status
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_status_params_t
*
params
,
struct
engin
e_container_status_info
*
status
);
struct
runtim
e_container_status_info
*
status
);
int
runtime_resources_stats
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_stats_params_t
*
params
,
struct
engin
e_container_resources_stats_info
*
rs_stats
);
struct
runtim
e_container_resources_stats_info
*
rs_stats
);
int
runtime_exec
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_exec_params_t
*
params
,
int
*
exit_code
);
int
runtime_pause
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_pause_params_t
*
params
);
int
runtime_resume
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_resume_params_t
*
params
);
...
...
test/mocks/runtime_mock.cc
浏览文件 @
e089b8ff
...
...
@@ -33,7 +33,7 @@ int runtime_pause(const char *name, const char *runtime, const rt_pause_params_t
}
int
runtime_resources_stats
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_stats_params_t
*
params
,
struct
engin
e_container_resources_stats_info
*
rs_stats
)
struct
runtim
e_container_resources_stats_info
*
rs_stats
)
{
if
(
g_runtime_mock
!=
nullptr
)
{
return
g_runtime_mock
->
RuntimeResourcesStats
(
name
,
runtime
,
params
,
rs_stats
);
...
...
test/mocks/runtime_mock.h
浏览文件 @
e089b8ff
...
...
@@ -27,9 +27,9 @@ public:
MOCK_METHOD3
(
RuntimeResize
,
int
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_resize_params_t
*
params
));
MOCK_METHOD3
(
RuntimeExecResize
,
int
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_exec_resize_params_t
*
params
));
MOCK_METHOD4
(
RuntimeResourcesStats
,
int
(
const
char
*
name
,
const
char
*
runtime
,
const
rt_stats_params_t
*
params
,
struct
engin
e_container_resources_stats_info
*
rs_stats
));
struct
runtim
e_container_resources_stats_info
*
rs_stats
));
};
void
MockRuntime_SetMock
(
MockRuntime
*
mock
);
void
MockRuntime_SetMock
(
MockRuntime
*
mock
);
#endif
test/runtime/isula/isula_rt_ops_ut.cpp
浏览文件 @
e089b8ff
...
...
@@ -70,7 +70,6 @@ TEST(isula_rt_ops_ut, test_rt_isula_detect)
ASSERT_FALSE
(
rt_isula_detect
(
"lcr"
));
}
TEST_F
(
IsulaRtOpsUnitTest
,
test_rt_isula_create
)
{
ASSERT_EQ
(
rt_isula_create
(
nullptr
,
nullptr
,
nullptr
),
-
1
);
...
...
@@ -122,7 +121,7 @@ TEST_F(IsulaRtOpsUnitTest, test_rt_isula_exec)
TEST_F
(
IsulaRtOpsUnitTest
,
test_rt_isula_status
)
{
rt_status_params_t
params
=
{};
struct
engin
e_container_status_info
status
=
{};
struct
runtim
e_container_status_info
status
=
{};
ASSERT_EQ
(
rt_isula_status
(
nullptr
,
nullptr
,
nullptr
,
nullptr
),
-
1
);
ASSERT_EQ
(
rt_isula_status
(
"123"
,
nullptr
,
nullptr
,
nullptr
),
-
1
);
ASSERT_EQ
(
rt_isula_status
(
"123"
,
"kata-runtime"
,
nullptr
,
nullptr
),
-
1
);
...
...
test/runtime/lcr/lcr_rt_ops_ut.cpp
浏览文件 @
e089b8ff
...
...
@@ -71,7 +71,6 @@ TEST(lcr_rt_ops_ut, test_rt_lcr_detect)
bool
RuntimeCreateContainer
(
const
char
*
id
,
const
char
*
root
,
void
*
config
)
{
if
(
id
==
nullptr
||
root
==
nullptr
)
{
return
false
;
}
...
...
@@ -81,7 +80,6 @@ bool RuntimeCreateContainer(const char *id, const char *root, void *config)
bool
RuntimeStartContainer
(
const
engine_start_request_t
*
request
)
{
if
(
request
==
nullptr
)
{
return
false
;
}
...
...
@@ -93,10 +91,8 @@ bool RuntimeStartContainer(const engine_start_request_t *request)
return
true
;
}
bool
RuntimeCleanContainer
(
const
char
*
name
,
const
char
*
lcrpath
,
const
char
*
logpath
,
const
char
*
loglevel
,
pid_t
pid
)
bool
RuntimeCleanContainer
(
const
char
*
name
,
const
char
*
lcrpath
,
const
char
*
logpath
,
const
char
*
loglevel
,
pid_t
pid
)
{
if
(
name
==
nullptr
)
{
return
false
;
}
...
...
@@ -106,7 +102,6 @@ bool RuntimeCleanContainer(const char *name, const char *lcrpath, const char *lo
bool
RuntimeRmContainer
(
const
char
*
name
,
const
char
*
enginepath
)
{
if
(
name
==
nullptr
||
enginepath
==
nullptr
)
{
return
false
;
}
...
...
@@ -114,9 +109,8 @@ bool RuntimeRmContainer(const char *name, const char *enginepath)
return
true
;
}
int
RuntimeStatusContainer
(
const
char
*
name
,
const
char
*
enginepath
,
struct
engin
e_container_status_info
*
status
)
int
RuntimeStatusContainer
(
const
char
*
name
,
const
char
*
enginepath
,
struct
runtim
e_container_status_info
*
status
)
{
if
(
name
==
nullptr
||
enginepath
==
nullptr
||
status
==
nullptr
)
{
return
-
1
;
}
...
...
@@ -125,9 +119,8 @@ int RuntimeStatusContainer(const char *name, const char *enginepath, struct engi
}
int
RuntimeStatsContainer
(
const
char
*
name
,
const
char
*
enginepath
,
struct
engin
e_container_resources_stats_info
*
rs_stats
)
struct
runtim
e_container_resources_stats_info
*
rs_stats
)
{
if
(
name
==
nullptr
||
enginepath
==
nullptr
||
rs_stats
==
nullptr
)
{
return
-
1
;
}
...
...
@@ -137,7 +130,6 @@ int RuntimeStatsContainer(const char *name, const char *enginepath,
bool
RuntimeExecContainer
(
const
engine_exec_request_t
*
request
,
int
*
exit_code
)
{
if
(
request
==
nullptr
||
exit_code
==
nullptr
||
request
->
lcrpath
==
nullptr
)
{
return
false
;
}
...
...
@@ -147,7 +139,6 @@ bool RuntimeExecContainer(const engine_exec_request_t *request, int *exit_code)
bool
RuntimePauseContainer
(
const
char
*
name
,
const
char
*
enginepath
)
{
if
(
name
==
nullptr
||
enginepath
==
nullptr
)
{
return
false
;
}
...
...
@@ -157,7 +148,6 @@ bool RuntimePauseContainer(const char *name, const char *enginepath)
bool
RuntimeResumeContainer
(
const
char
*
name
,
const
char
*
enginepath
)
{
if
(
name
==
nullptr
||
enginepath
==
nullptr
)
{
return
false
;
}
...
...
@@ -165,10 +155,8 @@ bool RuntimeResumeContainer(const char *name, const char *enginepath)
return
true
;
}
bool
RuntimeAttachContainer
(
const
char
*
name
,
const
char
*
enginepath
,
char
*
in_fifo
,
char
*
out_fifo
,
char
*
err_fifo
)
bool
RuntimeAttachContainer
(
const
char
*
name
,
const
char
*
enginepath
,
char
*
in_fifo
,
char
*
out_fifo
,
char
*
err_fifo
)
{
if
(
name
==
nullptr
||
enginepath
==
nullptr
)
{
return
false
;
}
...
...
@@ -178,7 +166,6 @@ bool RuntimeAttachContainer(const char *name, const char *enginepath, char *in_f
bool
RuntimeUpdateContainer
(
const
char
*
name
,
const
char
*
enginepath
,
const
struct
engine_cgroup_resources
*
cr
)
{
if
(
name
==
nullptr
||
enginepath
==
nullptr
)
{
return
false
;
}
...
...
@@ -188,7 +175,6 @@ bool RuntimeUpdateContainer(const char *name, const char *enginepath, const stru
bool
RuntimeResizeContainer
(
const
char
*
name
,
const
char
*
lcrpath
,
unsigned
int
height
,
unsigned
int
width
)
{
if
(
name
==
nullptr
||
lcrpath
==
nullptr
)
{
return
false
;
}
...
...
@@ -199,7 +185,6 @@ bool RuntimeResizeContainer(const char *name, const char *lcrpath, unsigned int
bool
RuntimeExecResizeContainer
(
const
char
*
name
,
const
char
*
lcrpath
,
const
char
*
suffix
,
unsigned
int
height
,
unsigned
int
width
)
{
if
(
name
==
nullptr
||
lcrpath
==
nullptr
)
{
return
false
;
}
...
...
@@ -209,7 +194,6 @@ bool RuntimeExecResizeContainer(const char *name, const char *lcrpath, const cha
bool
RuntimeListPidsContainer
(
const
char
*
name
,
const
char
*
rootpath
,
pid_t
**
pids
,
size_t
*
pids_len
)
{
if
(
name
==
nullptr
||
rootpath
==
nullptr
)
{
return
false
;
}
...
...
@@ -273,7 +257,7 @@ TEST_F(LcrRtOpsUnitTest, test_rt_lcr_create)
static
char
*
get_absolute_path
(
const
char
*
file
)
{
char
base_path
[
PATH_MAX
]
=
{
0
};
char
base_path
[
PATH_MAX
]
=
{
0
};
char
*
json_file
=
NULL
;
if
(
getcwd
(
base_path
,
PATH_MAX
)
==
NULL
)
{
...
...
@@ -365,7 +349,7 @@ TEST_F(LcrRtOpsUnitTest, test_rt_lcr_rm)
TEST_F
(
LcrRtOpsUnitTest
,
test_rt_lcr_status
)
{
rt_status_params_t
params
=
{};
struct
engin
e_container_status_info
status
=
{};
struct
runtim
e_container_status_info
status
=
{};
ASSERT_EQ
(
rt_lcr_status
(
nullptr
,
nullptr
,
nullptr
,
nullptr
),
-
1
);
...
...
@@ -390,7 +374,7 @@ TEST_F(LcrRtOpsUnitTest, test_rt_lcr_status)
TEST_F
(
LcrRtOpsUnitTest
,
test_rt_lcr_resources_stats
)
{
rt_stats_params_t
params
=
{};
struct
engin
e_container_resources_stats_info
status
=
{};
struct
runtim
e_container_resources_stats_info
status
=
{};
ASSERT_EQ
(
rt_lcr_resources_stats
(
nullptr
,
nullptr
,
nullptr
,
nullptr
),
-
1
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录