def report(node):
if not node.maintenance_mode:
try:
node.active_config_version = int(request.args.get('version'))
except (ValueError, TypeError):
return abort(400)
if request.content_type != 'application/json':
return abort(400)
provision = models.Provision()
provision.node = node
provision.config_version = node.active_config_version
provision.ignition_config = request.data
if node.target_config_version == node.active_config_version:
provision.ipxe_config = config_renderer.ipxe.render(node, request.url_root)
models.db.session.add(provision)
models.db.session.add(node)
node.disks.update({
models.Disk.wipe_next_boot: False
})
if node.cluster.are_etcd_nodes_configured:
node.cluster.assert_etcd_cluster_exists = True
models.db.session.add(node.cluster)
models.db.session.commit()
return Response('ok', mimetype='application/json')
评论列表
文章目录