Merge "Support plan and date filter in the checkpoint list API"
This commit is contained in:
@@ -13,6 +13,7 @@
|
|||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
from oslo_serialization import jsonutils
|
from oslo_serialization import jsonutils
|
||||||
from oslo_utils import uuidutils
|
from oslo_utils import uuidutils
|
||||||
|
|
||||||
@@ -638,10 +639,18 @@ def _extract_extra_info(args):
|
|||||||
@utils.arg('provider_id',
|
@utils.arg('provider_id',
|
||||||
metavar='<provider_id>',
|
metavar='<provider_id>',
|
||||||
help='ID of provider.')
|
help='ID of provider.')
|
||||||
@utils.arg('--status',
|
@utils.arg('--plan_id',
|
||||||
metavar='<status>',
|
metavar='<plan_id>',
|
||||||
default=None,
|
default=None,
|
||||||
help='Filters results by a status. Default=None.')
|
help='Filters results by a plan_id. Default=None.')
|
||||||
|
@utils.arg('--start_date',
|
||||||
|
metavar='<start_date>',
|
||||||
|
default=None,
|
||||||
|
help='Filters results by a start_date("%Y-%m-%d"). Default=None.')
|
||||||
|
@utils.arg('--end_date',
|
||||||
|
metavar='<end_date>',
|
||||||
|
default=None,
|
||||||
|
help='Filters results by a end_date("%Y-%m-%d"). Default=None.')
|
||||||
@utils.arg('--project_id',
|
@utils.arg('--project_id',
|
||||||
metavar='<project_id>',
|
metavar='<project_id>',
|
||||||
default=None,
|
default=None,
|
||||||
@@ -673,9 +682,30 @@ def _extract_extra_info(args):
|
|||||||
'Default=None.') % ', '.join(base.SORT_KEY_VALUES)))
|
'Default=None.') % ', '.join(base.SORT_KEY_VALUES)))
|
||||||
def do_checkpoint_list(cs, args):
|
def do_checkpoint_list(cs, args):
|
||||||
"""Lists all checkpoints."""
|
"""Lists all checkpoints."""
|
||||||
|
if args.plan_id is not None:
|
||||||
|
if not uuidutils.is_uuid_like(args.plan_id):
|
||||||
|
raise exceptions.CommandError('The plan_id must be a uuid')
|
||||||
|
|
||||||
|
if args.start_date:
|
||||||
|
try:
|
||||||
|
datetime.strptime(
|
||||||
|
args.start_date, "%Y-%m-%d")
|
||||||
|
except (ValueError, SyntaxError):
|
||||||
|
raise exceptions.CommandError(
|
||||||
|
"The format of start_date should be %Y-%m-%d")
|
||||||
|
|
||||||
|
if args.start_date:
|
||||||
|
try:
|
||||||
|
datetime.strptime(
|
||||||
|
args.end_date, "%Y-%m-%d")
|
||||||
|
except (ValueError, SyntaxError):
|
||||||
|
raise exceptions.CommandError(
|
||||||
|
"The format of end_date should be %Y-%m-%d")
|
||||||
|
|
||||||
search_opts = {
|
search_opts = {
|
||||||
'status': args.status,
|
'plan_id': args.plan_id,
|
||||||
|
'start_date': args.start_date,
|
||||||
|
'end_date': args.end_date,
|
||||||
'project_id': args.project_id,
|
'project_id': args.project_id,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user