def message(cls, task, nodes_to_provisioning): logger.debug("ProvisionTask.message(task=%s)" % task.uuid) TaskHelper.raise_if_node_offline(nodes_to_provisioning) serialized_cluster = task.cluster.replaced_provisioning_info or \ provisioning_serializers.serialize( task.cluster, nodes_to_provisioning) for node in nodes_to_provisioning: if settings.FAKE_TASKS or settings.FAKE_TASKS_AMQP: continue TaskHelper.prepare_syslog_dir(node) message = { 'method': 'provision', 'respond_to': 'provision_resp', 'args': { 'task_uuid': task.uuid, 'provisioning_info': serialized_cluster}} return message
def message(cls, task, nodes): logger.debug("DeploymentTask.message(task=%s)" % task.uuid) TaskHelper.raise_if_node_offline(nodes) nodes_ids = [n.id for n in nodes] for n in db().query(Node).filter_by( cluster=task.cluster).order_by(Node.id): if n.id in nodes_ids: if n.pending_roles: n.roles += n.pending_roles n.pending_roles = [] # If reciever for some reasons didn't update # node's status to provisioned when deployment # started, we should do it in nailgun if n.status in ('deploying'): n.status = 'provisioned' n.progress = 0 db().add(n) db().commit() # here we replace provisioning data if user redefined them serialized_cluster = task.cluster.replaced_deployment_info or \ deployment_serializers.serialize(task.cluster, nodes) # After searilization set pending_addition to False for node in nodes: node.pending_addition = False db().commit() return { 'method': 'deploy', 'respond_to': 'deploy_resp', 'args': { 'task_uuid': task.uuid, 'deployment_info': serialized_cluster}}