3 from datetime import datetime
5 from api import ApiResource
6 from api.database.v2.handlers import V2ProjectHandler
7 from yardstick.common.utils import result_handler
8 from yardstick.common.utils import change_obj_to_dict
9 from yardstick.common import constants as consts
12 class V2Projects(ApiResource):
15 project_handler = V2ProjectHandler()
16 projects = [change_obj_to_dict(p) for p in project_handler.list_all()]
20 p['tasks'] = tasks.split(',') if tasks else []
22 return result_handler(consts.API_SUCCESS, {'projects': projects})
25 return self._dispatch_post()
27 def create_project(self, args):
31 return result_handler(consts.API_ERROR, 'name must be provided')
33 project_id = str(uuid.uuid4())
34 create_time = datetime.now()
35 project_handler = V2ProjectHandler()
42 project_handler.insert(project_init_data)
44 return result_handler(consts.API_SUCCESS, {'uuid': project_id})
47 class V2Project(ApiResource):
49 def get(self, project_id):
53 return result_handler(consts.API_ERROR, 'invalid project id')
55 project_handler = V2ProjectHandler()
57 project = project_handler.get_by_uuid(project_id)
59 return result_handler(consts.API_ERROR, 'no such project id')
61 project_info = change_obj_to_dict(project)
62 tasks = project_info['tasks']
63 project_info['tasks'] = tasks.split(',') if tasks else []
65 return result_handler(consts.API_SUCCESS, {'project': project_info})