def create_host(self, fqdn, nodename, address, server_profile_id):
"""
Create a new host, or update a host in the process of being deployed.
"""
server_profile = ServerProfile.objects.get(pk=server_profile_id)
with self._lock:
with transaction.commit_on_success():
try:
# If there is already a host record (SSH-assisted host addition) then
# update it
host = ManagedHost.objects.get(fqdn=fqdn, state='undeployed')
# host.fqdn = fqdn
# host.nodename = nodename
# host.save()
job = DeployHostJob.objects.filter(~Q(state='complete'), managed_host=host)
command = Command.objects.filter(jobs=job)[0]
except ManagedHost.DoesNotExist:
# Else create a new one
host = ManagedHost.objects.create(
fqdn=fqdn,
nodename=nodename,
immutable_state=not server_profile.managed,
address=address,
server_profile=server_profile,
install_method = ManagedHost.INSTALL_MANUAL)
lnet_configuration = LNetConfiguration.objects.create(host=host)
ObjectCache.add(LNetConfiguration, lnet_configuration)
ObjectCache.add(ManagedHost, host)
with transaction.commit_on_success():
command = self.CommandPlan.command_set_state(
[(ContentType.objects.get_for_model(host).natural_key(), host.id, server_profile.initial_state)],
help_text["deploying_host"] % host)
self.progress.advance()
return host.id, command.id
job_scheduler.py 文件源码
python
阅读 25
收藏 0
点赞 0
评论 0
评论列表
文章目录