|
@@ -16,7 +16,7 @@ from api.utils.docker_api import (
|
|
|
'''
|
|
|
class DockerResource(Resource):
|
|
|
class Meta:
|
|
|
- allowed_methods = ['get']
|
|
|
+ pass
|
|
|
|
|
|
'''
|
|
|
'''
|
|
@@ -24,15 +24,15 @@ class DockerResource(Resource):
|
|
|
return [
|
|
|
url(r'^(?P<resource_name>%s)/image/all%s$' % (self._meta.resource_name, trailing_slash), self.wrap_view('get_all_images'), name='api_get_all_images'),
|
|
|
url(r'^(?P<resource_name>%s)/container/all%s$' % (self._meta.resource_name, trailing_slash), self.wrap_view('get_all_containers'), name='api_get_all_containers'),
|
|
|
- url(r'^(?P<resource_name>%s)/container/(?P<container_id>)/start%s$' % (self._meta.resource_name, trailing_slash), self.wrap_view('start_container'), name='api_start_container'),
|
|
|
- url(r'^(?P<resource_name>%s)/container/(?P<container_id>)/restart%s$' % (self._meta.resource_name, trailing_slash), self.wrap_view('restart_container'), name='api_restart_container'),
|
|
|
- url(r'^(?P<resource_name>%s)/container/(?P<container_id>)/stop%s$' % (self._meta.resource_name, trailing_slash), self.wrap_view('stop_container'), name='api_stop_container'),
|
|
|
+ url(r'^(?P<resource_name>%s)/container/start/(?P<container_id>[\w\d_.-]+)%s$' % (self._meta.resource_name, trailing_slash), self.wrap_view('start_container'), name='api_start_container'),
|
|
|
+ url(r'^(?P<resource_name>%s)/container/restart/(?P<container_id>[\w\d_.-]+)%s$' % (self._meta.resource_name, trailing_slash), self.wrap_view('restart_container'), name='api_restart_container'),
|
|
|
+ url(r'^(?P<resource_name>%s)/container/stop/(?P<container_id>[\w\d_.-]+)%s$' % (self._meta.resource_name, trailing_slash), self.wrap_view('stop_container'), name='api_stop_container'),
|
|
|
]
|
|
|
|
|
|
'''
|
|
|
'''
|
|
|
def get_all_images(self, request, **kwargs):
|
|
|
- self.method_check(request, allowed=self._meta.allowed_methods)
|
|
|
+ self.method_check(request, allowed='get')
|
|
|
self.is_authenticated(request)
|
|
|
|
|
|
bundle = self.build_bundle(obj={
|
|
@@ -44,7 +44,7 @@ class DockerResource(Resource):
|
|
|
'''
|
|
|
'''
|
|
|
def get_all_containers(self, request, **kwargs):
|
|
|
- self.method_check(request, allowed=self._meta.allowed_methods)
|
|
|
+ self.method_check(request, allowed='get')
|
|
|
self.is_authenticated(request)
|
|
|
|
|
|
return self.create_response(request, {
|
|
@@ -54,7 +54,7 @@ class DockerResource(Resource):
|
|
|
'''
|
|
|
'''
|
|
|
def start_container(self, request, **kwargs):
|
|
|
- self.method_check(request, allowed=self._meta.allowed_methods)
|
|
|
+ self.method_check(request, allowed='post')
|
|
|
self.is_authenticated(request)
|
|
|
|
|
|
container_id = kwargs.get('container_id', None)
|
|
@@ -64,21 +64,22 @@ class DockerResource(Resource):
|
|
|
'error_message': 'container id is required'
|
|
|
}, request=request)
|
|
|
|
|
|
- completed = start_container(container_id)
|
|
|
+ container_data = start_container(container_id)
|
|
|
|
|
|
- if not completed:
|
|
|
+ if not container_data:
|
|
|
return self.create_response(request, {
|
|
|
'error_message': 'cannot start container %s' % container_id
|
|
|
- })
|
|
|
+ }, request=request)
|
|
|
+
|
|
|
|
|
|
return self.create_response(request, {
|
|
|
- 'message': 'container %s started' % container_id
|
|
|
+ 'container': container_data
|
|
|
})
|
|
|
|
|
|
'''
|
|
|
'''
|
|
|
def restart_container(self, request, **kwargs):
|
|
|
- self.method_check(request, allowed=self._meta.allowed_methods)
|
|
|
+ self.method_check(request, allowed='post')
|
|
|
self.is_authenticated(request)
|
|
|
|
|
|
container_id = kwargs.get('container_id', None)
|
|
@@ -88,21 +89,21 @@ class DockerResource(Resource):
|
|
|
'error_message': 'container id is required'
|
|
|
}, request=request)
|
|
|
|
|
|
- completed = restart_container(container_id)
|
|
|
+ container_data = restart_container(container_id)
|
|
|
|
|
|
- if not completed:
|
|
|
+ if not container_data:
|
|
|
return self.create_response({
|
|
|
'error_message': 'cannot restart container %s' % container_id
|
|
|
})
|
|
|
|
|
|
return self.create_response(request, {
|
|
|
- 'message': 'container %s is restarted'
|
|
|
+ 'container': container_data
|
|
|
})
|
|
|
|
|
|
'''
|
|
|
'''
|
|
|
def stop_container(self, request, **kwargs):
|
|
|
- self.method_check(request, allowed=self._meta.allowed_methods)
|
|
|
+ self.method_check(request, allowed='post')
|
|
|
self.is_authenticated(request)
|
|
|
|
|
|
container_id = kwargs.get('container_id', None)
|
|
@@ -112,13 +113,13 @@ class DockerResource(Resource):
|
|
|
'error_message': 'container id is required'
|
|
|
})
|
|
|
|
|
|
- completed = stop_container(container_id)
|
|
|
+ container_data = stop_container(container_id)
|
|
|
|
|
|
- if not completed:
|
|
|
+ if not container_data:
|
|
|
return self.create_response({
|
|
|
'error_message': 'cannot stop container %s' % container_id
|
|
|
})
|
|
|
|
|
|
return self.create_response(request, {
|
|
|
- 'message': 'container %s is stoped' % container_id
|
|
|
+ 'container': container_data
|
|
|
})
|