6366be847beee2efb8ec4977ae173229ce42e7e7
[yardstick.git] / api / resources / v2 / tasks.py
1 import uuid
2 import logging
3 from datetime import datetime
4
5 from api import ApiResource
6 from api.database.v2.handlers import V2TaskHandler
7 from api.database.v2.handlers import V2ProjectHandler
8 from yardstick.common.utils import result_handler
9 from yardstick.common import constants as consts
10
11 LOG = logging.getLogger(__name__)
12 LOG.setLevel(logging.DEBUG)
13
14
15 class V2Tasks(ApiResource):
16
17     def post(self):
18         return self._dispatch_post()
19
20     def create_task(self, args):
21         try:
22             name = args['name']
23         except KeyError:
24             return result_handler(consts.API_ERROR, 'name must be provided')
25
26         try:
27             project_id = args['project_id']
28         except KeyError:
29             return result_handler(consts.API_ERROR, 'project_id must be provided')
30
31         task_id = str(uuid.uuid4())
32         create_time = datetime.now()
33         task_handler = V2TaskHandler()
34
35         LOG.info('create task in database')
36         task_init_data = {
37             'uuid': task_id,
38             'project_id': project_id,
39             'name': name,
40             'time': create_time,
41             'status': -1
42         }
43         task_handler.insert(task_init_data)
44
45         LOG.info('create task in project')
46         project_handler = V2ProjectHandler()
47         project_handler.append_attr(project_id, {'tasks': task_id})
48
49         return result_handler(consts.API_SUCCESS, {'uuid': task_id})