Hi Numan, I have add a test, and summit v6, please help to review it.
Thanks, Yun -------------- [email protected] >On Thu, Mar 19, 2020 at 11:23 AM Tao YunXiang ><[email protected]> wrote: >> >> We can delete qos by specify ls and more parameters. >> If CMS want to delete it exactly, it must specify detailed "match" field. >> It's not an easy way, also maybe deleted by mistake. >> This change adds a way to specify ls and uuid, which is optional. >> You can still use the previous method to delete. >> >> usage: >> ovn-nbctl qos-del ls0 [UUID0] >> >> Author: Tao YunXiang <[email protected]> >> Co-authored-by: Liu Chang <[email protected]> >> Co-authored-by: Rong Yin <[email protected]> >> Signed-off-by: Tao YunXiang <[email protected]> >> Signed-off-by: Liu Chang <[email protected]> >> Signed-off-by: Rong Yin <[email protected]> > >Can you please add a few tests in the tests/ovn-nbctl.at which would help >in regressions ? > >Thanks >Numan > >> >> --- >> v4: Add a way to delete QoS by its name or uuid >> v3: ovn-nbctl.c: Add a way to delete QoS by its name or uuid >> >> --- >> utilities/ovn-nbctl.c | 39 ++++++++++++++++++++++++++++----------- >> 1 file changed, 28 insertions(+), 11 deletions(-) >> >> diff --git a/utilities/ovn-nbctl.c b/utilities/ovn-nbctl.c >> index e80058e61..5b2fa6084 100644 >> --- a/utilities/ovn-nbctl.c >> +++ b/utilities/ovn-nbctl.c >> @@ -604,7 +604,7 @@ ACL commands:\n\ >> QoS commands:\n\ >> qos-add SWITCH DIRECTION PRIORITY MATCH [rate=RATE [burst=BURST]] >>[dscp=DSCP]\n\ >> add an QoS rule to SWITCH\n\ >> - qos-del SWITCH [DIRECTION [PRIORITY MATCH]]\n\ >> + qos-del SWITCH [{DIRECTION | UUID} [PRIORITY MATCH]]\n\ >> remove QoS rules from SWITCH\n\ >> qos-list SWITCH print QoS rules for SWITCH\n\ >> \n\ >> @@ -2521,22 +2521,39 @@ nbctl_qos_del(struct ctl_context *ctx) >> } >> >> const char *direction; >> - error = parse_direction(ctx->argv[2], &direction); >> - if (error) { >> - ctx->error = error; >> - return; >> + const struct uuid *qos_rule_uuid = NULL; >> + struct uuid uuid_from_cmd; >> + if (uuid_from_string(&uuid_from_cmd, ctx->argv[2])) { >> + qos_rule_uuid = &uuid_from_cmd; >> + } else { >> + error = parse_direction(ctx->argv[2], &direction); >> + if (error) { >> + ctx->error = error; >> + return; >> + } >> } >> >> - /* If priority and match are not specified, delete all qos_rules with >> the >> - * specified direction. */ >> + /* If uuid was specified, delete qos_rule with the >> + * specified uuid. */ >> if (ctx->argc == 3) { >> struct nbrec_qos **new_qos_rules >> = xmalloc(sizeof *new_qos_rules * ls->n_qos_rules); >> >> int n_qos_rules = 0; >> - for (size_t i = 0; i < ls->n_qos_rules; i++) { >> - if (strcmp(direction, ls->qos_rules[i]->direction)) { >> - new_qos_rules[n_qos_rules++] = ls->qos_rules[i]; >> + if (qos_rule_uuid) { >> + for (size_t i = 0; i < ls->n_qos_rules; i++) { >> + if (!uuid_equals(qos_rule_uuid, >> + &(ls->qos_rules[i]->header_.uuid))) { >> + new_qos_rules[n_qos_rules++] = ls->qos_rules[i]; >> + } >> + } >> + /* If priority and match are not specified, delete all qos_rules >> + * with the specified direction. */ >> + } else { >> + for (size_t i = 0; i < ls->n_qos_rules; i++) { >> + if (strcmp(direction, ls->qos_rules[i]->direction)) { >> + new_qos_rules[n_qos_rules++] = ls->qos_rules[i]; >> + } >> } >> } >> >> @@ -6030,7 +6047,7 @@ static const struct ctl_command_syntax >> nbctl_commands[] = { >> { "qos-add", 5, 7, >> "SWITCH DIRECTION PRIORITY MATCH [rate=RATE [burst=BURST]] >>[dscp=DSCP]", >> NULL, nbctl_qos_add, NULL, "--may-exist", RW }, >> - { "qos-del", 1, 4, "SWITCH [DIRECTION [PRIORITY MATCH]]", NULL, >> + { "qos-del", 1, 4, "SWITCH [{DIRECTION | UUID} [PRIORITY MATCH]]", NULL, >> nbctl_qos_del, NULL, "", RW }, >> { "qos-list", 1, 1, "SWITCH", NULL, nbctl_qos_list, NULL, "", RO }, >> >> -- >> 2.17.1 >> >> >> >> _______________________________________________ >> dev mailing list >> [email protected] >> https://mail.openvswitch.org/mailman/listinfo/ovs-dev >> _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
