def on_put(self, req, resp, name): """ Handles the creation of a new 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 being created. :type name: str """ # PUT is idempotent, and since there's no body to this request, # there's nothing to conflict with. The request should always # succeed, even if we didn't actually do anything. try: Cluster.retrieve(name) self.logger.info( 'Creation of already exisiting cluster {0} requested.'.format( name)) except: pass cluster = Cluster(status='ok', hostset=[]) cluster.save(name) self.logger.info( 'Created cluster {0} per request.'.format(name)) resp.status = falcon.HTTP_201