本文整理汇总了Python中nailgun.api.handlers.tasks.TaskHandler类的典型用法代码示例。如果您正苦于以下问题:Python TaskHandler类的具体用法?Python TaskHandler怎么用?Python TaskHandler使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TaskHandler类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: PUT
def PUT(self, cluster_id):
"""
:IMPORTANT: this method should be rewritten to be more RESTful
:returns: JSONized Task object.
:http: * 202 (network checking task failed)
* 200 (network verification task started)
* 404 (cluster not found in db)
"""
cluster = self.get_object_or_404(Cluster, cluster_id)
try:
data = self.validator.validate_networks_update(web.data())
except web.webapi.badrequest as exc:
task = Task(name='check_networks', cluster=cluster)
db().add(task)
db().commit()
TaskHelper.set_error(task.uuid, exc.data)
logger.error(traceback.format_exc())
json_task = build_json_response(TaskHandler.render(task))
raise web.accepted(data=json_task)
vlan_ids = [{
'name': n['name'],
'vlans': NetworkGroup.generate_vlan_ids_list(n)
} for n in data['networks']]
task_manager = VerifyNetworksTaskManager(cluster_id=cluster.id)
task = task_manager.execute(data, vlan_ids)
return TaskHandler.render(task)
示例2: launch_verify
def launch_verify(self, cluster):
try:
data = self.validator.validate_networks_update(web.data())
except web.webapi.badrequest as exc:
task = Task(name='check_networks', cluster=cluster)
db().add(task)
db().commit()
TaskHelper.set_error(task.uuid, exc.data)
logger.error(traceback.format_exc())
json_task = build_json_response(TaskHandler.render(task))
raise web.accepted(data=json_task)
data["networks"] = [
n for n in data["networks"] if n.get("name") != "fuelweb_admin"
]
vlan_ids = [{
'name': n['name'],
'vlans': cluster.network_manager.generate_vlan_ids_list(
data, cluster, n)
} for n in data['networks']]
task_manager = VerifyNetworksTaskManager(cluster_id=cluster.id)
try:
task = task_manager.execute(data, vlan_ids)
except errors.CantRemoveOldVerificationTask:
raise web.badrequest("You cannot delete running task manually")
return TaskHandler.render(task)
示例3: PUT
def PUT(self, cluster_id):
""":returns: JSONized Task object.
:http: * 202 (environment reset initiated)
* 400 (can't reset environment)
* 404 (environment not found in db)
"""
cluster = self.get_object_or_404(Cluster, cluster_id)
try:
logger.info(
u"Trying to reset environment '{0}'".format(
cluster_id
)
)
task_manager = ResetEnvironmentTaskManager(
cluster_id=cluster.id
)
task = task_manager.execute()
except Exception as exc:
logger.warn(u'Error during execution '
u'environment resetting '
u'task: {0}'.format(str(exc)))
raise web.badrequest(str(exc))
raise web.webapi.HTTPError(
status="202 Accepted",
data=TaskHandler.render(task)
)
示例4: PUT
def PUT(self, cluster_id):
data = json.loads(web.data())
cluster = self.get_object_or_404(Cluster, cluster_id)
task_manager = CheckNetworksTaskManager(cluster_id=cluster.id)
task = task_manager.execute(data)
if task.status != 'error':
try:
if 'networks' in data:
network_configuration = self.validator.\
validate_networks_update(json.dumps(data))
NetworkConfiguration.update(cluster, data)
except web.webapi.badrequest as exc:
TaskHelper.set_error(task.uuid, exc.data)
logger.error(traceback.format_exc())
except Exception as exc:
TaskHelper.set_error(task.uuid, exc)
logger.error(traceback.format_exc())
data = build_json_response(TaskHandler.render(task))
if task.status == 'error':
db().rollback()
else:
db().commit()
raise web.accepted(data=data)
示例5: PUT
def PUT(self, cluster_id):
cluster = self.get_object_or_404(
Cluster,
cluster_id,
log_404=(
"warning",
"Error: there is no cluster "
"with id '{0}' in DB.".format(cluster_id)))
try:
network_info = \
NetworkConfigurationSerializer.serialize_for_cluster(
cluster
)
logger.info(
u"Network info:\n{0}".format(
json.dumps(network_info, indent=4)
)
)
task_manager = DeploymentTaskManager(
cluster_id=cluster.id
)
task = task_manager.execute()
except Exception as exc:
logger.warn(u'ClusterChangesHandler: error while execution'
' deploy task: {0}'.format(str(exc)))
raise web.badrequest(str(exc))
return TaskHandler.render(task)
示例6: PUT
def PUT(self, cluster_id):
""":returns: JSONized Task object.
:http: * 200 (task successfully executed)
* 404 (cluster not found in db)
* 400 (failed to execute task)
"""
cluster = self.get_object_or_404(
Cluster,
cluster_id,
log_404=("warning", "Error: there is no cluster " "with id '{0}' in DB.".format(cluster_id)),
)
if cluster.net_provider == "nova_network":
net_serializer = NovaNetworkConfigurationSerializer
elif cluster.net_provider == "neutron":
net_serializer = NeutronNetworkConfigurationSerializer
try:
network_info = net_serializer.serialize_for_cluster(cluster)
logger.info(u"Network info:\n{0}".format(json.dumps(network_info, indent=4)))
task_manager = ApplyChangesTaskManager(cluster_id=cluster.id)
task = task_manager.execute()
except Exception as exc:
logger.warn(u"ClusterChangesHandler: error while execution" " deploy task: {0}".format(str(exc)))
raise web.badrequest(str(exc))
return TaskHandler.render(task)
示例7: POST
def POST(self):
data = self.checked_data()
# TODO: activate and save status
task_manager = DownloadReleaseTaskManager(data['release_id'])
try:
task = task_manager.execute()
except Exception as exc:
logger.warn(u'DownloadReleaseHandler: error while execution'
' deploy task: {0}'.format(exc.message))
raise web.badrequest(exc.message)
return TaskHandler.render(task)
示例8: PUT
def PUT(self):
"""Starts capacity data generation.
:returns: JSONized Task object.
:http: * 202 (setup task created and started)
"""
manager = GenerateCapacityLogTaskManager()
task = manager.execute()
data = build_json_response(TaskHandler.render(task))
raise web.accepted(data=data)
示例9: PUT
def PUT(self):
""":returns: JSONized Task object.
:http: * 200 (task successfully executed)
* 400 (failed to execute task)
"""
try:
task_manager = DumpTaskManager()
task = task_manager.execute()
except Exception as exc:
logger.warn(u'DumpTask: error while execution '
'dump environment task: {0}'.format(str(exc)))
raise web.badrequest(str(exc))
return TaskHandler.render(task)
示例10: PUT
def PUT(self, cluster_id):
cluster = self.get_object_or_404(
Cluster,
cluster_id,
log_404=(
"warning",
"Error: there is no cluster "
"with id '{0}' in DB.".format(cluster_id)))
check_task_manager = CheckBeforeDeploymentTaskManager(
cluster_id=cluster.id)
check_task = check_task_manager.execute()
if check_task.status == 'error':
return TaskHandler.render(check_task)
try:
task_manager = DeploymentTaskManager(cluster_id=cluster.id)
task = task_manager.execute()
except Exception as exc:
logger.warn(u'ClusterChangesHandler: error while execution'
' deploy task: {0}'.format(str(exc)))
raise web.badrequest(str(exc))
return TaskHandler.render(task)
示例11: PUT
def PUT(self, cluster_id):
""":returns: JSONized Task object.
:http: * 202 (network checking task created)
* 404 (cluster not found in db)
"""
data = json.loads(web.data())
if data.get("networks"):
data["networks"] = [
n for n in data["networks"] if n.get("name") != "fuelweb_admin"
]
cluster = self.get_object_or_404(Cluster, cluster_id)
self.check_net_provider(cluster)
self.check_if_network_configuration_locked(cluster)
task_manager = CheckNetworksTaskManager(cluster_id=cluster.id)
task = task_manager.execute(data)
if task.status != 'error':
try:
if 'networks' in data:
self.validator.validate_networks_update(
json.dumps(data)
)
if 'dns_nameservers' in data:
self.validator.validate_dns_servers_update(
json.dumps(data)
)
NovaNetworkManager.update(cluster, data)
except web.webapi.badrequest as exc:
TaskHelper.set_error(task.uuid, exc.data)
logger.error(traceback.format_exc())
except Exception as exc:
TaskHelper.set_error(task.uuid, exc)
logger.error(traceback.format_exc())
data = build_json_response(TaskHandler.render(task))
if task.status == 'error':
db().rollback()
else:
db().commit()
raise web.accepted(data=data)
示例12: POST
def POST(self):
"""
Starts Red Hat setup and download process
:returns: JSONized Task object.
:http: * 202 (setup task created and started)
* 400 (invalid account data specified)
* 404 (release not found in db)
"""
data = self.checked_data()
license_type = data.get("license_type")
if license_type == 'rhsm':
data["satellite"] = ""
data["activation_key"] = ""
release_data = {'release_id': data['release_id']}
release_id = data.pop('release_id')
release_db = db().query(Release).get(release_id)
if not release_db:
raise web.notfound(
"No release with ID={0} found".format(release_id)
)
release_data['redhat'] = data
release_data['release_name'] = release_db.name
account = db().query(RedHatAccount).first()
if account:
db().query(RedHatAccount).update(data)
else:
account = RedHatAccount(**data)
db().add(account)
db().commit()
task_manager = RedHatSetupTaskManager(release_data)
try:
task = task_manager.execute()
except Exception as exc:
logger.error(u'RedHatAccountHandler: error while execution'
' Red Hat validation task: {0}'.format(str(exc)))
logger.error(traceback.format_exc())
raise web.badrequest(str(exc))
data = build_json_response(TaskHandler.render(task))
raise web.accepted(data=data)
示例13: PUT
def PUT(self, cluster_id):
""":returns: JSONized Task object.
:http: * 200 (task successfully executed)
* 404 (cluster or nodes not found in db)
* 400 (failed to execute task)
"""
cluster = self.get_object_or_404(Cluster, cluster_id)
nodes = self.get_nodes(cluster)
try:
task_manager = self.task_manager(cluster_id=cluster.id)
task = task_manager.execute(nodes)
except Exception as exc:
logger.warn(u'Cannot execute {0} task nodes: {1}'.format(
task_manager.__class__.__name__, traceback.format_exc()))
raise web.badrequest(str(exc))
return TaskHandler.render(task)
示例14: POST
def POST(self):
data = self.checked_data()
release_data = {"release_id": data["release_id"]}
data.pop("release_id")
release_data["redhat"] = data
account = RedHatAccount(**data)
db().add(account)
db().commit()
task_manager = DownloadReleaseTaskManager(release_data)
try:
task = task_manager.execute()
except Exception as exc:
logger.error(u"DownloadReleaseHandler: error while execution" " deploy task: {0}".format(str(exc)))
logger.error(traceback.format_exc())
raise web.badrequest(str(exc))
return TaskHandler.render(task)
示例15: POST
def POST(self):
plugin_manager = PluginManager()
task = plugin_manager.add_install_plugin_task(
json.loads(web.data()))
return TaskHandler.render(task)