def on_get(self, req, resp, name):
"""
Handles GET (or "status") requests for a tree image deployment
across a Cluster.
:param req: Request instance that will be passed through.
:type req: falcon.Request
:param resp: Response instance that will be passed through.
:type resp: falcon.Response
:param name: The name of the Cluster undergoing deployment.
:type name: str
"""
if not util.etcd_cluster_exists(name):
self.logger.info(
'Deploy GET requested for nonexistent cluster {0}'.format(
name))
resp.status = falcon.HTTP_404
return
try:
store_manager = cherrypy.engine.publish('get-store-manager')[0]
cluster_deploy = store_manager.get(ClusterDeploy.new(name=name))
self.logger.debug('Found ClusterDeploy for {0}'.format(name))
except:
# Return "204 No Content" if we have no status,
# meaning no deployment is in progress. The client
# can't be expected to know that, so it's not a
# client error (4xx).
self.logger.debug((
'Deploy GET requested for {0} but no deployment '
'has ever been executed.').format(name))
resp.status = falcon.HTTP_204
return
resp.status = falcon.HTTP_200
req.context['model'] = cluster_deploy
评论列表
文章目录