def setup_module(module): ensure_vms_absent() ensure_vms_present() netvm = qmgr.HexagonQube(NETVM, provides_network=True) netvm.reconcile() clientvm = qmgr.HexagonQube(CLIENTVM, netvm=NETVM) clientvm.reconcile() netvm.vm.start() clientvm.vm.start()
def test_reboot_netvm(): netvm = qmgr.HexagonQube(NETVM) netvm_uptime_before = netvm.uptime() clientvm = qmgr.HexagonQube(CLIENTVM) clientvm_uptime_before = clientvm.uptime() netvm.reboot() netvm_uptime_after = netvm.uptime() assert netvm_uptime_before > netvm_uptime_after clientvm_uptime_after = clientvm.uptime() assert clientvm_uptime_after > clientvm_uptime_before
def ensure_vms_present(): for vm_name in generate_vm_names(): q = qubesadmin.Qubes() if vm_name not in q.domains: x = qmgr.HexagonQube(vm_name) x.reconcile() q = qubesadmin.Qubes() assert vm_name in q.domains
def test_template_change_while_halted(): vm = qmgr.HexagonQube("hexagon-test-1", template="debian-10") q = qubesadmin.Qubes() assert vm.name in q.domains assert not vm.pending_changes assert vm.desired_config["template"] == "debian-10" vm.desired_config["template"] = "fedora-31" vm.reconcile() assert vm.desired_config["template"] == "fedora-31"
def test_netvm_change_while_running(): vm = qmgr.HexagonQube("hexagon-test-4", template="debian-10", autostart=True) q = qubesadmin.Qubes() assert vm.name in q.domains assert str(vm.vm.netvm) == "None" vm.desired_config["netvm"] = "sys-firewall" vm.reconcile() assert vm.desired_config["netvm"] == "sys-firewall"
def test_default_netvm_is_none(): vm_name = "hexagon-test-3" q = qubesadmin.Qubes() assert vm_name in q.domains vm = qmgr.HexagonQube(vm_name, template="debian-10") q = qubesadmin.Qubes() assert vm_name in q.domains vm.reconcile() q = qubesadmin.Qubes() assert vm.name in q.domains assert str(vm.vm.netvm) == "None"
def test_template_change_while_running(): vm_name = "hexagon-test-2" vm = qmgr.HexagonQube(vm_name, template="debian-10", autostart=True) q = qubesadmin.Qubes() assert vm.name in q.domains assert not vm.pending_changes assert vm.vm.start_time == "" assert get_pref(vm_name, "start_time") == "" vm.vm.start() assert get_pref(vm_name, "start_time") != "" time_before_reconcile = get_pref(vm_name, "start_time") assert vm.desired_config["template"] == "debian-10" vm.desired_config["template"] = "fedora-31" vm.reconcile() assert get_pref(vm_name, "template") == "fedora-31" # TODO: figure out why this reboot cycle is required # Maybe the reconcile isn't rebooting? vm.ensure_halted() vm.vm.start() time_after_reconcile = get_pref(vm_name, "start_time") assert time_after_reconcile > time_before_reconcile
def test_reboot_clientvm(): clientvm = qmgr.HexagonQube(CLIENTVM) clientvm_uptime_before = clientvm.uptime() clientvm.reboot() clientvm_uptime_after = clientvm.uptime() assert clientvm_uptime_before > clientvm_uptime_after