def _persist_created_hosts(self, session, scannable_id, new_resources):
# Must be run in a transaction to avoid leaving invalid things in the DB on failure.
assert transaction.is_managed()
log.debug("_persist_created_hosts")
record_pks = []
from chroma_core.lib.storage_plugin.api.resources import VirtualMachine
for resource in new_resources:
if isinstance(resource, VirtualMachine):
assert(not resource._handle_global)
record_pks.append(session.local_id_to_global_id[resource._handle])
for vm_record_pk in record_pks:
record = StorageResourceRecord.objects.get(pk = vm_record_pk)
resource = record.to_resource()
if not resource.host_id:
try:
host = ManagedHost.objects.get(address = resource.address)
log.info("Associated existing host with VirtualMachine resource: %s" % resource.address)
record.update_attribute('host_id', host.pk)
except ManagedHost.DoesNotExist:
log.info("Creating host for new VirtualMachine resource: %s" % resource.address)
host, command = JobSchedulerClient.create_host_ssh(resource.address)
record.update_attribute('host_id', host.pk)
resource_manager.py 文件源码
python
阅读 23
收藏 0
点赞 0
评论 0
评论列表
文章目录