def get_managed_vms_names(): result = [] if VmManager: opts = BackendConfigReader().read() vmm = VmManager(opts, log) result.extend(vmd.vm_name.lower() for vmd in vmm.get_all_vm()) return result
def run(self): # todo: 1) do all ansible calls through subprocess # 2) move to Python 3 and asyncIO all in one thread + executors # ... -> eliminate multiprocessing here, # ... possible to use simple logging, with redis handler self.log.info("Creating VM Spawner, HealthChecker, Terminator") self.spawner = Spawner(self.opts) self.checker = HealthChecker(self.opts) self.terminator = Terminator(self.opts) self.vm_manager = VmManager( opts=self.opts, logger=self.log, ) self.log.info("Starting up VM EventHandler") self.event_handler = EventHandler(self.opts, vmm=self.vm_manager, terminator=self.terminator) self.event_handler.post_init() self.event_handler.start() self.log.info("Starting up VM Master") self.vm_master = VmMaster(self.opts, vmm=self.vm_manager, spawner=self.spawner, checker=self.checker) self.vm_master.start() setproctitle("Copr VMM base process")
def get_managed_vms(): result = {} if VmManager: opts = BackendConfigReader().read() vmm = VmManager(opts, log) for vmd in vmm.get_all_vm(): result[vmd.vm_name.lower()] = { 'unused': vmd.state == VmStates.READY, } return result
def setup_method(self, method): self.opts = Munch( redis_db=9, redis_port=7777, ssh=Munch(transport="ssh"), build_groups_count=2, build_groups={ GID1: { "name": "base", "archs": ["i386", "x86_64"], "max_vm_per_user": 3, }, GID2: { "name": "arm", "archs": [ "armV7", ] } }, fedmsg_enabled=False, sleeptime=0.1, do_sign=True, timeout=1800, # destdir=self.tmp_dir_path, results_baseurl="/tmp", ) self.vm_ip = "127.0.0.1" self.vm_name = "localhost" self.vm2_ip = "127.0.0.2" self.vm2_name = "localhost2" self.ownername = "bob" self.rc = get_redis_connection(self.opts) self.ps = None self.log_msg_list = [] self.vmm = VmManager(self.opts) self.vmm.log = MagicMock() self.pid = 12345
def test_manager_setup(self): vmm = VmManager(self.opts) assert GID1 in vmm.vm_groups assert GID2 in vmm.vm_groups assert len(vmm.vm_groups) == 2
def setup_method(self, method): self.vm_spawn_min_interval = 30 self.opts = Munch( redis_host="127.0.0.1", redis_db=9, redis_port=7777, ssh=Munch(transport="ssh"), build_groups_count=2, build_groups={ 0: { "name": "base", "archs": ["i386", "x86_64"], "max_vm_total": 5, "max_spawn_processes": 3, "vm_spawn_min_interval": self.vm_spawn_min_interval, "vm_dirty_terminating_timeout": 120, "vm_health_check_period": 10, "vm_health_check_max_time": 60, "vm_terminating_timeout": 300, }, 1: { "name": "arm", "archs": ["armV7"], "vm_spawn_min_interval": self.vm_spawn_min_interval, "vm_dirty_terminating_timeout": 120, "vm_health_check_period": 10, "vm_health_check_max_time": 60, "vm_terminating_timeout": 300, } }, fedmsg_enabled=False, sleeptime=0.1, vm_cycle_timeout=10, ) self.queue = Queue() self.vm_ip = "127.0.0.1" self.vm_name = "localhost" self.group = 0 self.username = "******" self.rc = get_redis_connection(self.opts) self.ps = None self.log_msg_list = [] self.callback = TestCallback() # checker = HealthChecker(self.opts, self.callback) self.checker = MagicMock() self.spawner = MagicMock() self.terminator = MagicMock() self.mc_logger = MagicMock() self.vmm = VmManager(self.opts, logger=self.mc_logger) self.vmm.post_init() self.event_handler = MagicMock() self.vm_master = VmMaster( self.opts, self.vmm, self.spawner, self.checker, ) self.vm_master.event_handler = MagicMock() self.pid = 12345 self.vm_ip = "127.0.0.1" self.vm_name = "build 12345"
def main(): opts = BackendConfigReader().read() vmm = VmManager(opts, None) print(vmm.info())