def new_vm(self, run_name, vm): """Adds VM to a run_vms list if it exists for "run_name". If list does not exist, it will be created. Return True if the VM has not been seen before. """ # vm.events = CYvents # vm.instanceid = iaasid # runname newone = self.cdb.add_cloudyvent_vm(run_name, vm.instanceid, vm.nodeid, vm.hostname, vm.service_type, vm.parent, vm.runlogdir, vm.vmlogdir) for e in vm.events: self.cdb.add_cloudyvent(run_name, vm.instanceid, vm.nodeid, vm.hostname, vm.service_type, vm.parent, vm.runlogdir, vm.vmlogdir, e) self.cdb.commit() if newone: kind = "VM" if is_piggybacked(vm.instanceid): kind = "piggybacked service" self.c.log.debug("New %s persisted: '%s'" % (kind, vm.instanceid)) return newone
def find_once(p, c, m, run_name): em_core_logfetch.fetch_by_service_name(p, c, m, run_name, PROVISIONER) em_core_eventgather.update_events(p, c, m, run_name) # order is important, first "new_node" launched_vms = vms_launched(m, run_name, "new_node") for vm in launched_vms: if m.persistence.new_vm(run_name, vm): c.log.info("Found new worker: %s : %s" % (vm.instanceid, vm.hostname)) # then "node_started" launched_vms = vms_launched(m, run_name, "node_started") for vm in launched_vms: m.persistence.new_vm(run_name, vm) allsvcs = m.persistence.get_run_vms_or_none(run_name) vm_num = 0 for svc in allsvcs: if not is_piggybacked(svc): vm_num += 1 c.log.debug("Know of %d services on %d VMs in run '%s'" % (len(allsvcs), vm_num, run_name))