1 from tornado_swagger_ui.tornado_swagger import swagger
2 from handlers import GenericApiHandler
3 from pod_models import Pod
4 from common.constants import HTTP_FORBIDDEN
7 class GenericPodHandler(GenericApiHandler):
8 def __init__(self, application, request, **kwargs):
9 super(GenericPodHandler, self).__init__(application, request, **kwargs)
14 class PodCLHandler(GenericPodHandler):
15 @swagger.operation(nickname='list-all')
18 @description: list all pods
19 @return 200: list all pods, empty list is no pod exist
24 @swagger.operation(nickname='create')
27 @description: create a pod
28 @param body: pod to be created
29 @type body: L{PodCreateRequest}
32 @return 200: pod is created.
33 @raise 403: pod already exists
34 @raise 400: post without body
37 return {'name': data.name}
40 message = '{} already exists as a pod'.format(data.name)
41 return HTTP_FORBIDDEN, message
43 db_check = [(self.table, False, query, error)]
44 self._create(db_check)
47 class PodGURHandler(GenericPodHandler):
48 @swagger.operation(nickname='get-one')
49 def get(self, pod_name):
51 @description: get a single pod by pod_name
53 @return 200: pod exist
54 @raise 404: pod not exist
57 query['name'] = pod_name
60 def delete(self, pod_name):
63 # check for an existing pod to be deleted
64 mongo_dict = yield self.db.pods.find_one(
66 pod = TestProject.pod(mongo_dict)
68 raise HTTPError(HTTP_NOT_FOUND,
69 "{} could not be found as a pod to be deleted"
72 # just delete it, or maybe save it elsewhere in a future
73 res = yield self.db.projects.remove(
76 self.finish_request(answer)