提交 c14dee65 编写于 作者: C cailiuyang

improve shell

Summary: Ref T10570

Test Plan: N/A

Reviewers: qinzuoyan, laiyingchun

Reviewed By: qinzuoyan

Subscribers: #pegasus

Maniphest Tasks: T10570

Differential Revision: https://phabricator.d.xiaomi.net/D89417
上级 c305af94
Subproject commit 2358ba662da981911d2c04a383633e59039ca5d4
Subproject commit cbd0b227be95f2a6897c521475950cf412ae1bf9
......@@ -3509,18 +3509,15 @@ inline bool query_backup_policy(command_executor *e, shell_context *sc, argument
inline bool modify_backup_policy(command_executor *e, shell_context *sc, arguments args)
{
static struct option long_options[] = {{"add_app", required_argument, 0, 'a'},
static struct option long_options[] = {{"policy_name", required_argument, 0, 'p'},
{"add_app", required_argument, 0, 'a'},
{"remove_app", required_argument, 0, 'r'},
{"backup_interval_seconds", required_argument, 0, 'i'},
{"backup_history_count", required_argument, 0, 'c'},
{"start_time", required_argument, 0, 's'},
{0, 0, 0, 0}};
if (args.argc < 2) {
fprintf(stderr, "invalid parameter\n");
return false;
}
std::string policy_name = args.argv[1];
std::string policy_name;
std::vector<int32_t> add_appids;
std::vector<int32_t> remove_appids;
int64_t backup_interval_seconds = 0;
......@@ -3528,19 +3525,17 @@ inline bool modify_backup_policy(command_executor *e, shell_context *sc, argumen
std::string start_time;
std::vector<std::string> app_id_strs;
if (policy_name.empty()) {
fprintf(stderr, "empty policy name\n");
return false;
}
optind = 0;
while (true) {
int option_index = 0;
int c;
c = getopt_long(args.argc, args.argv, "a:r:i:c:s:", long_options, &option_index);
c = getopt_long(args.argc, args.argv, "p:a:r:i:c:s:", long_options, &option_index);
if (c == -1)
break;
switch (c) {
case 'p':
policy_name = optarg;
break;
case 'a':
app_id_strs.clear();
::dsn::utils::split_args(optarg, app_id_strs, ',');
......@@ -3591,6 +3586,11 @@ inline bool modify_backup_policy(command_executor *e, shell_context *sc, argumen
}
}
if (policy_name.empty()) {
fprintf(stderr, "empty policy name\n");
return false;
}
if (!start_time.empty()) {
int32_t hour = 0, min = 0;
if (sscanf(start_time.c_str(), "%d:%d", &hour, &min) != 2 || hour > 24 || hour < 0 ||
......@@ -3618,12 +3618,25 @@ inline bool modify_backup_policy(command_executor *e, shell_context *sc, argumen
inline bool disable_backup_policy(command_executor *e, shell_context *sc, arguments args)
{
if (args.argc != 2) {
fprintf(stderr, "invalid parameter\n");
return false;
}
static struct option long_options[] = {{"policy_name", required_argument, 0, 'p'},
{0, 0, 0, 0}};
std::string policy_name = args.argv[1];
std::string policy_name;
optind = 0;
while (true) {
int option_index = 0;
int c;
c = getopt_long(args.argc, args.argv, "p:", long_options, &option_index);
if (c == -1)
break;
switch (c) {
case 'p':
policy_name = optarg;
break;
default:
return false;
}
}
if (policy_name.empty()) {
fprintf(stderr, "empty policy name\n");
......@@ -3641,13 +3654,25 @@ inline bool disable_backup_policy(command_executor *e, shell_context *sc, argume
inline bool enable_backup_policy(command_executor *e, shell_context *sc, arguments args)
{
if (args.argc != 2) {
fprintf(stderr, "invalid parameter\n");
return false;
static struct option long_options[] = {{"policy_name", required_argument, 0, 'p'},
{0, 0, 0, 0}};
std::string policy_name;
optind = 0;
while (true) {
int option_index = 0;
int c;
c = getopt_long(args.argc, args.argv, "p:", long_options, &option_index);
if (c == -1)
break;
switch (c) {
case 'p':
policy_name = optarg;
break;
default:
return false;
}
}
std::string policy_name = args.argv[1];
if (policy_name.empty()) {
fprintf(stderr, "empty policy name\n");
return false;
......
......@@ -296,40 +296,41 @@ command_executor commands[] = {
{
"query_backup_policy",
"query subsistent backup policy and last backup infos",
"<-p| --policy_name p1,p2> [-b| --backup_info_cnt cnt]",
"<-p|--policy_name p1,p2> [-b|--backup_info_cnt cnt]",
query_backup_policy,
},
{
"modify_backup_policy",
"modify the backup policy",
"policy_name [-a|add_app 1,2...] [-r|remove_app 1,2...] [-i|backup_interval_seconds sec] "
"[-c|backup_history_count cnt] [-s|start_time hour:minute]",
"<-p|--policy_name p1> [-a|--add_app 1,2...] [-r|--remove_app 1,2...] "
"[-i|--backup_interval_seconds sec] [-c|--backup_history_count cnt] "
"[-s|--start_time hour:minute]",
modify_backup_policy,
},
{
"disable_backup_policy",
"stop policy continue backup",
"<policy_name>",
"<-p|--policy_name p1>",
disable_backup_policy,
},
{
"enable_backup_policy",
"start backup policy to backup again",
"<policy_name>",
"<-p|--policy_name p1>",
enable_backup_policy,
},
{
"restore_app",
"restore app from backup media",
"<-c|old_cluster_name name> <-p|old_policy_name name> <-a|old_app_name name> "
"<-i|old_app_id id> <-t|timestamp/backup_id timestamp> <-b|backup_provider_type provider> "
"[-n|new_app_name name] [-s|skip_bad_partition] ",
"<-c|--old_cluster_name name> <-p|--old_policy_name name> <-a|--old_app_name name> "
"<-i|--old_app_id id> <-t|--timestamp/backup_id timestamp> "
"<-b|--backup_provider_type provider> [-n|--new_app_name name] [-s|--skip_bad_partition] ",
restore,
},
{
"query_restore_status",
"query restore status",
"<restore_app_id 1> [-d| --detailed]",
"<restore_app_id> [-d|--detailed]",
query_restore_status,
},
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册