Ejemplo n.º 1
0
def test_remove_vm(admin):
    disk = admin.sa.add_disk("name", "v", "path", 0, "0" * 64, None, False,
                             False)
    vm1 = admin.sa.add_vm("name1", [disk])
    vm2 = admin.sa.add_vm("name2", [disk])
    admin.sa.verify_database()

    with raises.sync_error(sync_db.error.VM_NOT_FOUND):
        admin.sa.remove_vm("unknown")

    admin.sa.remove_vm(vm1)
    with raises.sync_error(sync_db.error.VM_NOT_FOUND):
        admin.sa.remove_vm(vm1)

    device = admin.sa.add_device("name")
    vm_instance = admin.sa.add_vm_instance(device, vm2, "name")
    admin.sa.verify_database()

    with raises.sync_error(sync_db.error.VM_IN_USE):
        admin.sa.remove_vm(vm2)

    admin.sa.remove_vm_instance(vm_instance, True)
    admin.sa.verify_database()

    with raises.sync_error(sync_db.error.VM_IN_USE):
        admin.sa.remove_vm(vm2)

    admin.sa.purge_vm_instance(vm_instance)
    admin.sa.remove_vm(vm2)
    admin.sa.verify_database()
def test_remove_vm_instance(admin):
    vm1 = admin.sa.add_vm("name1", [])
    vm2 = admin.sa.add_vm("name2", [])
    device = admin.sa.add_device("name1")

    vm_instance1 = admin.sa.add_vm_instance(device, vm1, "name1")
    vm_instance2 = admin.sa.add_vm_instance(device, vm2, "name2")
    admin.sa.verify_database()

    admin.sa.remove_vm_instance(vm_instance1, True)
    admin.sa.verify_database()
    with raises.sync_error(sync_db.error.VM_INST_ALREADY_REMOVED):
        admin.sa.remove_vm_instance(vm_instance1, True)

    admin.sa.readd_vm_instance(vm_instance1)
    admin.sa.verify_database()
    with raises.sync_error(sync_db.error.VM_INST_NOT_REMOVED):
        admin.sa.readd_vm_instance(vm_instance1)

    admin.sa.purge_vm_instance(vm_instance1)
    admin.sa.verify_database()

    admin.sa.purge_vm_instance(vm_instance2)
    admin.sa.verify_database()

    with raises.sync_error(sync_db.error.VM_INST_NOT_FOUND):
        admin.sa.remove_vm_instance(vm_instance1, True)

    with raises.sync_error(sync_db.error.VM_INST_NOT_FOUND):
        admin.sa.readd_vm_instance(vm_instance1)

    with raises.sync_error(sync_db.error.VM_INST_NOT_FOUND):
        admin.sa.purge_vm_instance(vm_instance1)
Ejemplo n.º 3
0
def test_license_offline_enforcement(clean_db):
    admin = clean_db.get_admin_connection()
    license = clean_db.get_license_connection()

    license.sl.set_num_offline_licenses(5)

    devices = [admin.sa.add_device("name{0}".format(i))
               for i in range(0, 5)]

    with raises.sync_error(sync_db.error.OUT_OF_LICENSES):
        admin.sa.add_device("name5")

    admin.sa.remove_device(devices.pop())
    devices.append(admin.sa.add_device("name4"))

    with raises.sync_error(sync_db.error.OUT_OF_LICENSES):
        admin.sa.add_device("name5")

    license.sl.set_num_offline_licenses(10)

    devices.extend([admin.sa.add_device("name{0}".format(i))
                    for i in range(5, 10)])

    with raises.sync_error(sync_db.error.OUT_OF_LICENSES):
        admin.sa.add_device("name10")

    license.sl.set_num_offline_licenses(5)
    license.sl.set_num_offline_licenses(None)
    devices.append(admin.sa.add_device("name10"))
Ejemplo n.º 4
0
def test_device_config_invalid(admin):
    device = admin.sa.add_device("name1")

    with raises.sync_error(sync_db.error.CONFIG_EMPTY):
        admin.sa.add_device("name2", config=[""])

    with raises.sync_error(sync_db.error.CONFIG_EMPTY):
        admin.sa.modify_device_config(device, [""])

    with raises.sync_error(sync_db.error.CONFIG_INVALID):
        admin.sa.add_device("name2", config=[":b:c"])

    with raises.sync_error(sync_db.error.CONFIG_INVALID):
        admin.sa.modify_device_config(device, [":b:c"])

    with raises.sync_error(sync_db.error.CONFIG_DAEMON_TOO_LONG):
        admin.sa.add_device("name2", config=["a" * 101 + ":b:c"])

    with raises.sync_error(sync_db.error.CONFIG_DAEMON_TOO_LONG):
        admin.sa.modify_device_config(device, ["a" * 101 + ":b:c"])

    with raises.sync_error(sync_db.error.CONFIG_KEY_TOO_LONG):
        admin.sa.add_device("name2", config=["a:" + "b" * 101 + ":c"])

    with raises.sync_error(sync_db.error.CONFIG_KEY_TOO_LONG):
        admin.sa.modify_device_config(device, ["a:" + "b" * 101 + ":c"])

    with raises.sync_error(sync_db.error.CONFIG_VALUE_TOO_LONG):
        admin.sa.add_device("name2", config=["a:b:" + "c" * 3501])

    with raises.sync_error(sync_db.error.CONFIG_VALUE_TOO_LONG):
        admin.sa.modify_device_config(device, ["a:b:" + "c" * 3501])
Ejemplo n.º 5
0
def test_license_mode(clean_db):
    admin = clean_db.get_admin_connection()
    server = clean_db.get_server_connection()
    license = clean_db.get_license_connection()

    assert admin.sa.get_licensing() == ("online", None, 0)

    device = admin.sa.add_device("name")
    assert admin.sa.get_licensing() == ("online", None, 1)

    server.ss.get_device_state(device)
    assert license.sl.lock_next_requested_license(None) == device
    license.sl.deny_requested_license(device)

    license.sl.set_num_offline_licenses(1)
    assert admin.sa.get_licensing() == ("offline", 1, 1)

    license.sl.set_num_offline_licenses(None)
    assert admin.sa.get_licensing() == ("online", None, 1)
    assert license.sl.lock_next_requested_license(None) is None

    license.sl.set_num_offline_licenses(0)
    assert admin.sa.get_licensing() == ("offline", 0, 1)

    with raises.sync_error(sync_db.error.NUM_LICENSES_INVALID):
        license.sl.set_num_offline_licenses(-1)

    with raises.sync_error(sync_db.error.NUM_LICENSES_INVALID):
        license.sl.set_num_offline_licenses(1e10)
Ejemplo n.º 6
0
def test_remove_vm_instance(admin):
    vm1 = admin.sa.add_vm("name1", [])
    vm2 = admin.sa.add_vm("name2", [])
    device = admin.sa.add_device("name1")

    vm_instance1 = admin.sa.add_vm_instance(device, vm1, "name1")
    vm_instance2 = admin.sa.add_vm_instance(device, vm2, "name2")
    admin.sa.verify_database()

    admin.sa.remove_vm_instance(vm_instance1, True)
    admin.sa.verify_database()
    with raises.sync_error(sync_db.error.VM_INST_ALREADY_REMOVED):
        admin.sa.remove_vm_instance(vm_instance1, True)

    admin.sa.readd_vm_instance(vm_instance1)
    admin.sa.verify_database()
    with raises.sync_error(sync_db.error.VM_INST_NOT_REMOVED):
        admin.sa.readd_vm_instance(vm_instance1)

    admin.sa.purge_vm_instance(vm_instance1)
    admin.sa.verify_database()

    admin.sa.purge_vm_instance(vm_instance2)
    admin.sa.verify_database()

    with raises.sync_error(sync_db.error.VM_INST_NOT_FOUND):
        admin.sa.remove_vm_instance(vm_instance1, True)

    with raises.sync_error(sync_db.error.VM_INST_NOT_FOUND):
        admin.sa.readd_vm_instance(vm_instance1)

    with raises.sync_error(sync_db.error.VM_INST_NOT_FOUND):
        admin.sa.purge_vm_instance(vm_instance1)
Ejemplo n.º 7
0
def test_get_device(admin):
    device1 = admin.sa.add_device("name1")
    device2 = admin.sa.add_device("name2")

    assert admin.sa.get_device(device1) == (device1, "name1", None)
    assert admin.sa.get_device(device2) == (device2, "name2", None)

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        admin.sa.get_device("unknown")

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        admin.sa.get_device_secret("unknown")

    secret1 = admin.sa.get_device_secret(device1)
    assert admin.sa.get_device_secret(device2) != secret1

    admin.sa.reset_device_secret(device1)
    assert admin.sa.get_device_secret(device1) != secret1

    admin.sa.remove_device(device1)

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        admin.sa.get_device(device1)

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        admin.sa.get_device_secret(device1)
Ejemplo n.º 8
0
def test_upgrade_unsupported(missing_db):
    db = missing_db

    db.run(["install"])

    owner = db.get_owner_connection()
    admin = db.get_admin_connection()

    cursor = owner.connection.cursor()
    cursor.execute("update version "
                   "set current_version = 'bad'")
    owner.connection.commit()

    with py.test.raises(subprocess.CalledProcessError):
        db.run(["upgrade", "--force"])

    cursor = owner.connection.cursor()
    cursor.execute("update version "
                   "set installing_version = 'dummy'")
    owner.connection.commit()

    with raises.sync_error(sync_db.error.UPGRADE_INCOMPLETE):
        admin.sa.add_vm("name", [])

    cursor = owner.connection.cursor()
    cursor.execute("update version "
                   "set current_version = null")
    owner.connection.commit()

    with raises.sync_error(sync_db.error.INSTALLATION_INCOMPLETE):
        admin.sa.add_vm("name", [])
Ejemplo n.º 9
0
def test_get_disk(admin):
    disk1 = admin.sa.add_disk("name1", "v", "path1", 1, "1" * 64, None,
                              False, False)
    disk2 = admin.sa.add_disk("name2", "v", "path2", 2, "2" * 64, "2" * 64,
                              True, False)
    disk3 = admin.sa.add_disk("name3", "v", "path3", 3, "3" * 64, "3" * 128,
                              True, False)

    assert admin.sa.get_disk(disk1) == (disk1, "name1", "v", "path1", 1,
                                        "1" * 64, "f", "f")
    assert admin.sa.get_disk(disk2) == (disk2, "name2", "v", "path2", 2,
                                        "2" * 64, "t", "f")
    assert admin.sa.get_disk(disk3) == (disk3, "name3", "v", "path3", 3,
                                        "3" * 64, "t", "f")

    with raises.sync_error(sync_db.error.DISK_NOT_FOUND):
        admin.sa.get_disk("unknown")

    assert admin.sa.get_disk_key(disk1) is None
    assert admin.sa.get_disk_key(disk2) == "2" * 64
    assert admin.sa.get_disk_key(disk3) == "3" * 128

    admin.sa.remove_disk(disk1)

    with raises.sync_error(sync_db.error.DISK_NOT_FOUND):
        admin.sa.get_disk(disk1)

    with raises.sync_error(sync_db.error.DISK_NOT_FOUND):
        admin.sa.get_disk_key(disk1)
Ejemplo n.º 10
0
def test_remove_device(admin):
    device1 = admin.sa.add_device("name1")
    device2 = admin.sa.add_device("name2")
    admin.sa.verify_database()

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        admin.sa.remove_device("unknown")

    admin.sa.remove_device(device1)
    admin.sa.verify_database()

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        admin.sa.remove_device(device1)

    vm = admin.sa.add_vm("name", [])
    vm_instance1 = admin.sa.add_vm_instance(device2, vm, "name1")

    with raises.sync_error(sync_db.error.DEVICE_HAS_VM_INST):
        admin.sa.remove_device(device2)

    admin.sa.remove_vm_instance(vm_instance1, True)
    admin.sa.remove_device(device2)
    admin.sa.verify_database()

    device3 = admin.sa.add_device("name3")
    vm_instance2 = admin.sa.add_vm_instance(device3, vm, "name2")
    admin.sa.remove_device(device3, cascade=True)
    admin.sa.verify_database()
Ejemplo n.º 11
0
def test_device_config_invalid(admin):
    device = admin.sa.add_device("name1")

    with raises.sync_error(sync_db.error.CONFIG_EMPTY):
        admin.sa.add_device("name2", config=[""])

    with raises.sync_error(sync_db.error.CONFIG_EMPTY):
        admin.sa.modify_device_config(device, [""])

    with raises.sync_error(sync_db.error.CONFIG_INVALID):
        admin.sa.add_device("name2", config=[":b:c"])

    with raises.sync_error(sync_db.error.CONFIG_INVALID):
        admin.sa.modify_device_config(device, [":b:c"])

    with raises.sync_error(sync_db.error.CONFIG_DAEMON_TOO_LONG):
        admin.sa.add_device("name2", config=["a" * 101 + ":b:c"])

    with raises.sync_error(sync_db.error.CONFIG_DAEMON_TOO_LONG):
        admin.sa.modify_device_config(device, ["a" * 101 + ":b:c"])

    with raises.sync_error(sync_db.error.CONFIG_KEY_TOO_LONG):
        admin.sa.add_device("name2", config=["a:" + "b" * 101 + ":c"])

    with raises.sync_error(sync_db.error.CONFIG_KEY_TOO_LONG):
        admin.sa.modify_device_config(device, ["a:" + "b" * 101 + ":c"])

    with raises.sync_error(sync_db.error.CONFIG_VALUE_TOO_LONG):
        admin.sa.add_device("name2", config=["a:b:" + "c" * 3501])

    with raises.sync_error(sync_db.error.CONFIG_VALUE_TOO_LONG):
        admin.sa.modify_device_config(device, ["a:b:" + "c" * 3501])
Ejemplo n.º 12
0
def test_license_mode(clean_db):
    admin = clean_db.get_admin_connection()
    server = clean_db.get_server_connection()
    license = clean_db.get_license_connection()

    assert admin.sa.get_licensing() == ("online", None, 0)

    device = admin.sa.add_device("name")
    assert admin.sa.get_licensing() == ("online", None, 1)

    server.ss.get_device_state(device)
    assert license.sl.lock_next_requested_license(None) == device
    license.sl.deny_requested_license(device)

    license.sl.set_num_offline_licenses(1)
    assert admin.sa.get_licensing() == ("offline", 1, 1)

    license.sl.set_num_offline_licenses(None)
    assert admin.sa.get_licensing() == ("online", None, 1)
    assert license.sl.lock_next_requested_license(None) is None

    license.sl.set_num_offline_licenses(0)
    assert admin.sa.get_licensing() == ("offline", 0, 1)

    with raises.sync_error(sync_db.error.NUM_LICENSES_INVALID):
        license.sl.set_num_offline_licenses(-1)

    with raises.sync_error(sync_db.error.NUM_LICENSES_INVALID):
        license.sl.set_num_offline_licenses(1e10)
Ejemplo n.º 13
0
def test_get_device(admin):
    device1 = admin.sa.add_device("name1")
    device2 = admin.sa.add_device("name2")

    assert admin.sa.get_device(device1) == (device1, "name1", None)
    assert admin.sa.get_device(device2) == (device2, "name2", None)

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        admin.sa.get_device("unknown")

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        admin.sa.get_device_secret("unknown")

    secret1 = admin.sa.get_device_secret(device1)
    assert admin.sa.get_device_secret(device2) != secret1

    admin.sa.reset_device_secret(device1)
    assert admin.sa.get_device_secret(device1) != secret1

    admin.sa.remove_device(device1)

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        admin.sa.get_device(device1)

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        admin.sa.get_device_secret(device1)
Ejemplo n.º 14
0
def test_remove_device(admin):
    device1 = admin.sa.add_device("name1")
    device2 = admin.sa.add_device("name2")
    admin.sa.verify_database()

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        admin.sa.remove_device("unknown")

    admin.sa.remove_device(device1)
    admin.sa.verify_database()

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        admin.sa.remove_device(device1)

    vm = admin.sa.add_vm("name", [])
    vm_instance1 = admin.sa.add_vm_instance(device2, vm, "name1")

    with raises.sync_error(sync_db.error.DEVICE_HAS_VM_INST):
        admin.sa.remove_device(device2)

    admin.sa.remove_vm_instance(vm_instance1, True)
    admin.sa.remove_device(device2)
    admin.sa.verify_database()

    device3 = admin.sa.add_device("name3")
    vm_instance2 = admin.sa.add_vm_instance(device3, vm, "name2")
    admin.sa.remove_device(device3, cascade=True)
    admin.sa.verify_database()
Ejemplo n.º 15
0
def test_list_disks_by_vm(admin):
    disk1 = admin.sa.add_disk("name1", "v", "path1", 1, "1" * 64, None,
                              False, False)
    disk2 = admin.sa.add_disk("name2", "v", "path2", 2, "2" * 64, "2" * 128,
                              True, False)

    disk1_row = (disk1, "name1", "v", "path1")
    disk2_row = (disk2, "name2", "v", "path2")

    disks = list(reversed(sorted([disk1, disk2])))

    disk_rows = [row + (i + 1,) for (i, row) in
                 enumerate(reversed(sorted([disk1_row, disk2_row])))]

    vm1 = admin.sa.add_vm("name1", [])
    vm2 = admin.sa.add_vm("name2", [disks[0]])
    vm3 = admin.sa.add_vm("name3", disks)

    assert admin.sa.list_disks(vm_uuid=vm1) == []
    assert admin.sa.list_disks(vm_uuid=vm2) == disk_rows[:1]
    assert admin.sa.list_disks(vm_uuid=vm3) == disk_rows

    device = admin.sa.add_device("name")
    vm_instance = admin.sa.add_vm_instance(device, vm3, "name")

    assert admin.sa.list_disks(vm_instance_uuid=vm_instance) == disk_rows

    with raises.sync_error(sync_db.error.VM_NOT_FOUND):
        admin.sa.list_disks(vm_uuid="unknown") == []

    with raises.sync_error(sync_db.error.VM_INST_NOT_FOUND):
        admin.sa.list_disks(vm_instance_uuid="unknown")

    assert admin.sa.list_disks(unused=True) == []
Ejemplo n.º 16
0
def test_license_offline_enforcement(clean_db):
    admin = clean_db.get_admin_connection()
    license = clean_db.get_license_connection()

    license.sl.set_num_offline_licenses(5)

    devices = [admin.sa.add_device("name{0}".format(i)) for i in range(0, 5)]

    with raises.sync_error(sync_db.error.OUT_OF_LICENSES):
        admin.sa.add_device("name5")

    admin.sa.remove_device(devices.pop())
    devices.append(admin.sa.add_device("name4"))

    with raises.sync_error(sync_db.error.OUT_OF_LICENSES):
        admin.sa.add_device("name5")

    license.sl.set_num_offline_licenses(10)

    devices.extend(
        [admin.sa.add_device("name{0}".format(i)) for i in range(5, 10)])

    with raises.sync_error(sync_db.error.OUT_OF_LICENSES):
        admin.sa.add_device("name10")

    license.sl.set_num_offline_licenses(5)
    license.sl.set_num_offline_licenses(None)
    devices.append(admin.sa.add_device("name10"))
Ejemplo n.º 17
0
def test_get_report_invalid(admin):
    device = admin.sa.add_device("name")

    with raises.sync_error(sync_db.error.DEVICE_REQUIRED):
        admin.sa.get_report(None)

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        admin.sa.get_report("unknown")
Ejemplo n.º 18
0
def test_get_report_invalid(admin):
    device = admin.sa.add_device("name")

    with raises.sync_error(sync_db.error.DEVICE_REQUIRED):
        admin.sa.get_report(None)

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        admin.sa.get_report("unknown")
def test_remove_vm_instance_invalid(admin):
    with raises.sync_error(sync_db.error.VM_INST_NOT_FOUND):
        admin.sa.remove_vm_instance("unknown", True)

    with raises.sync_error(sync_db.error.VM_INST_NOT_FOUND):
        admin.sa.readd_vm_instance("unknown")

    with raises.sync_error(sync_db.error.VM_INST_NOT_FOUND):
        admin.sa.purge_vm_instance("unknown")
Ejemplo n.º 20
0
def test_remove_vm_instance_invalid(admin):
    with raises.sync_error(sync_db.error.VM_INST_NOT_FOUND):
        admin.sa.remove_vm_instance("unknown", True)

    with raises.sync_error(sync_db.error.VM_INST_NOT_FOUND):
        admin.sa.readd_vm_instance("unknown")

    with raises.sync_error(sync_db.error.VM_INST_NOT_FOUND):
        admin.sa.purge_vm_instance("unknown")
Ejemplo n.º 21
0
def test_add_repo_duplicate(admin):
    admin.sa.add_repo("release1", "build1", "path1", 1, "1" * 64)

    with raises.sync_error(sync_db.error.REPO_EXISTS):
        admin.sa.add_repo("release1", "build1", "path2", 2, "2" * 64)

    admin.sa.add_repo("release1", "build2", "path2", 2, "2" * 64)

    with raises.sync_error(sync_db.error.FILE_PATH_NOT_UNIQUE):
        admin.sa.add_repo("release1", "build3", "path1", 3, "3" * 64)
Ejemplo n.º 22
0
def test_get_vm(admin):
    vm1 = admin.sa.add_vm("name1", [])
    vm2 = admin.sa.add_vm("name2", [])

    assert admin.sa.get_vm(vm1) == (vm1, "name1")
    assert admin.sa.get_vm(vm2) == (vm2, "name2")

    with raises.sync_error(sync_db.error.VM_NOT_FOUND):
        admin.sa.get_vm("unknown")

    admin.sa.remove_vm(vm1)
    with raises.sync_error(sync_db.error.VM_NOT_FOUND):
        admin.sa.get_vm(vm1)
Ejemplo n.º 23
0
def test_server_get_device_secret(clean_db):
    admin = clean_db.get_admin_connection()
    server = clean_db.get_server_connection()

    device = admin.sa.add_device("name")

    secret = admin.sa.get_device_secret(device)
    assert server.ss.get_device_secret(device) == secret

    with raises.sync_error(sync_db.error.DEVICE_REQUIRED):
        server.ss.get_device_secret(None)

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        server.ss.get_device_secret("unknown")
Ejemplo n.º 24
0
def test_license_mode_check(license):
    license.sl.set_num_offline_licenses(1)

    with raises.sync_error(sync_db.error.OFFLINE_LICENSING):
        license.sl.deny_requested_license(None)

    with raises.sync_error(sync_db.error.OFFLINE_LICENSING):
        license.sl.expire_random_licenses()

    with raises.sync_error(sync_db.error.OFFLINE_LICENSING):
        license.sl.grant_requested_license(None, None, None)

    with raises.sync_error(sync_db.error.OFFLINE_LICENSING):
        license.sl.lock_next_expired_license(None)

    with raises.sync_error(sync_db.error.OFFLINE_LICENSING):
        license.sl.lock_next_requested_license(None)

    with raises.sync_error(sync_db.error.OFFLINE_LICENSING):
        license.sl.revoke_all_licenses()

    with raises.sync_error(sync_db.error.OFFLINE_LICENSING):
        license.sl.revoke_expired_license(None)

    with raises.sync_error(sync_db.error.OFFLINE_LICENSING):
        license.sl.skip_expired_license()
Ejemplo n.º 25
0
def test_server_get_device_secret(clean_db):
    admin = clean_db.get_admin_connection()
    server = clean_db.get_server_connection()

    device = admin.sa.add_device("name")

    secret = admin.sa.get_device_secret(device)
    assert server.ss.get_device_secret(device) == secret

    with raises.sync_error(sync_db.error.DEVICE_REQUIRED):
        server.ss.get_device_secret(None)

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        server.ss.get_device_secret("unknown")
Ejemplo n.º 26
0
def test_license_mode_check(license):
    license.sl.set_num_offline_licenses(1)

    with raises.sync_error(sync_db.error.OFFLINE_LICENSING):
        license.sl.deny_requested_license(None)

    with raises.sync_error(sync_db.error.OFFLINE_LICENSING):
        license.sl.expire_random_licenses()

    with raises.sync_error(sync_db.error.OFFLINE_LICENSING):
        license.sl.grant_requested_license(None, None, None)

    with raises.sync_error(sync_db.error.OFFLINE_LICENSING):
        license.sl.lock_next_expired_license(None)

    with raises.sync_error(sync_db.error.OFFLINE_LICENSING):
        license.sl.lock_next_requested_license(None)

    with raises.sync_error(sync_db.error.OFFLINE_LICENSING):
        license.sl.revoke_all_licenses()

    with raises.sync_error(sync_db.error.OFFLINE_LICENSING):
        license.sl.revoke_expired_license(None)

    with raises.sync_error(sync_db.error.OFFLINE_LICENSING):
        license.sl.skip_expired_license()
Ejemplo n.º 27
0
def test_list_vm_instances_by_device(admin):
    vm = admin.sa.add_vm("name", [])
    device1 = admin.sa.add_device("name1")
    device2 = admin.sa.add_device("name2")

    vm_instance1 = admin.sa.add_vm_instance(device1, vm, "name1")
    vm_instance2 = admin.sa.add_vm_instance(device2, vm, "name2")
    admin.sa.lock_vm_instance(vm_instance2)

    vm_instance1_row = (vm_instance1, device1, vm, "name1", "f")

    assert admin.sa.list_vm_instances(device_uuid=device1) == [
        vm_instance1_row
    ]
    assert admin.sa.list_vm_instances(device_uuid=device1, removed=True) == []

    admin.sa.remove_vm_instance(vm_instance1, True)
    assert admin.sa.list_vm_instances(device_uuid=device1) == []
    assert admin.sa.list_vm_instances(device_uuid=device1,
                                      removed=True) == [vm_instance1_row]

    admin.sa.readd_vm_instance(vm_instance1)
    assert admin.sa.list_vm_instances(device_uuid=device1) == [
        vm_instance1_row
    ]
    assert admin.sa.list_vm_instances(device_uuid=device1, removed=True) == []

    admin.sa.purge_vm_instance(vm_instance1)
    assert admin.sa.list_vm_instances(device_uuid=device1) == []
    assert admin.sa.list_vm_instances(device_uuid=device1, removed=True) == []

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        assert admin.sa.list_vm_instances(device_uuid="unknown") == []
Ejemplo n.º 28
0
def test_modify_vm_instance_name(admin):
    vm = admin.sa.add_vm("name1", [])
    device = admin.sa.add_device("name1")
    vm_instance = admin.sa.add_vm_instance(device, vm, "name1")
    assert (admin.sa.get_vm_instance(vm_instance) == (vm_instance, device, vm,
                                                      "name1", "f", "f", None))

    admin.sa.modify_vm_instance_name(vm_instance, "name2")
    assert (admin.sa.get_vm_instance(vm_instance) == (vm_instance, device, vm,
                                                      "name2", "f", "f", None))

    with raises.sync_error(sync_db.error.VM_INST_NAME_REQUIRED):
        admin.sa.modify_vm_instance_name(vm_instance, None)

    with raises.sync_error(sync_db.error.VM_INST_NAME_TOO_LONG):
        admin.sa.modify_vm_instance_name(vm_instance, "x" * 201)
Ejemplo n.º 29
0
def test_list_devices_by_vm(admin):
    device1 = admin.sa.add_device("name1")
    device2 = admin.sa.add_device("name2")

    device1_row = (device1, "name1")

    vm = admin.sa.add_vm("name", [])
    vm_instance = admin.sa.add_vm_instance(device1, vm, "name")

    assert admin.sa.list_devices(vm_uuid=vm) == [device1_row]
    #assert admin.sa.list_devices(vm_uuid=vm, removed=True) == []

    admin.sa.remove_vm_instance(vm_instance, True)
    assert admin.sa.list_devices(vm_uuid=vm) == []
    #assert admin.sa.list_devices(vm_uuid=vm, removed=True) == [device1_row]

    admin.sa.readd_vm_instance(vm_instance)
    assert admin.sa.list_devices(vm_uuid=vm) == [device1_row]
    #assert admin.sa.list_devices(vm_uuid=vm, removed=True) == []

    admin.sa.purge_vm_instance(vm_instance)
    assert admin.sa.list_devices(vm_uuid=vm) == []
    #assert admin.sa.list_devices(vm_uuid=vm, removed=True) == []

    vm_instance = admin.sa.add_vm_instance(device1, vm, "name")

    admin.sa.remove_device(device1, cascade=True)
    assert admin.sa.list_devices(vm_uuid=vm) == []
    #assert admin.sa.list_devices(vm_uuid=vm, removed=True) == []

    with raises.sync_error(sync_db.error.VM_NOT_FOUND):
        assert admin.sa.list_devices(vm_uuid="unknown") == []
Ejemplo n.º 30
0
def test_list_repos(admin):
    repo1 = admin.sa.add_repo("release1", "build1", "path1", 1, "1" * 64)
    repo2 = admin.sa.add_repo("release1", "build2", "path2", 2, "2" * 64)
    repo3 = admin.sa.add_repo("release2", "build2", "path3", 3, "3" * 64)

    repo1_row = (repo1, "release1", "build1", "path1")
    repo2_row = (repo2, "release1", "build2", "path2")
    repo3_row = (repo3, "release2", "build2", "path3")

    with raises.sync_error(sync_db.error.MULTIPLE_FILTERS):
        admin.sa.list_repos(release="release1", build="build1")

    assert admin.sa.list_repos() == sorted([repo1_row, repo2_row, repo3_row])

    assert admin.sa.list_repos(release="unknown") == []
    assert admin.sa.list_repos(build="unknown") == []
    assert admin.sa.list_repos(file_path="unknown") == []
    assert admin.sa.list_repos(file_hash="unknown") == []

    assert admin.sa.list_repos(release="release1") == sorted([repo1_row,
                                                           repo2_row])
    assert admin.sa.list_repos(build="build2") == sorted([repo2_row,
                                                          repo3_row])

    assert admin.sa.list_repos(file_path="path1") == [repo1_row]
    assert admin.sa.list_repos(file_hash="1" * 64) == [repo1_row]

    admin.sa.add_device("device", repo_uuid=repo1)

    assert admin.sa.list_repos(unused=True) == sorted([repo2_row, repo3_row])
Ejemplo n.º 31
0
def test_list_disks(admin):
    disk1 = admin.sa.add_disk("name1", "i", "path1", 1, "1" * 64, None,
                              False, True)
    disk2 = admin.sa.add_disk("name2", "v", "path2", 2, "2" * 64, "2" * 128,
                              True, False)

    disk1_row = (disk1, "name1", "i", "path1")
    disk2_row = (disk2, "name2", "v", "path2")

    with raises.sync_error(sync_db.error.MULTIPLE_FILTERS):
        admin.sa.list_disks(disk_name="name1", file_path="path1")

    assert admin.sa.list_disks() == sorted([disk1_row, disk2_row])

    assert admin.sa.list_disks(disk_type="i") == [disk1_row]
    assert admin.sa.list_disks(disk_type="v") == [disk2_row]

    assert admin.sa.list_disks(disk_name="unknown") == []
    assert admin.sa.list_disks(file_path="unknown") == []
    assert admin.sa.list_disks(file_hash="unknown") == []

    assert admin.sa.list_disks(disk_name="name1") == [disk1_row]
    assert admin.sa.list_disks(file_path="path1") == [disk1_row]
    assert admin.sa.list_disks(file_hash="1" * 64) == [disk1_row]

    assert admin.sa.list_disks(unused=True) == sorted([disk1_row, disk2_row])
Ejemplo n.º 32
0
def test_get_repo(admin):
    repo1 = admin.sa.add_repo("release1", "build1", "path1", 1, "1" * 64)
    repo2 = admin.sa.add_repo("release2", "build2", "path2", 2, "2" * 64)

    assert admin.sa.get_repo(repo1) == (repo1, "release1", "build1", "path1",
                                        1, "1" * 64)
    assert admin.sa.get_repo(repo2) == (repo2, "release2", "build2", "path2",
                                        2, "2" * 64)

    with raises.sync_error(sync_db.error.REPO_NOT_FOUND):
        admin.sa.get_repo("unknown")

    admin.sa.remove_repo(repo1)

    with raises.sync_error(sync_db.error.REPO_NOT_FOUND):
        admin.sa.get_repo(repo1)
Ejemplo n.º 33
0
def test_list_vm_instances_by_disk(admin):
    disk = admin.sa.add_disk("name", "v", "path", 0, "0" * 64, None, False,
                             False)
    vm1 = admin.sa.add_vm("name1", [disk])
    vm2 = admin.sa.add_vm("name2", [])
    device = admin.sa.add_device("name")

    vm_instance1 = admin.sa.add_vm_instance(device, vm1, "name1")
    vm_instance2 = admin.sa.add_vm_instance(device, vm2, "name2")
    admin.sa.lock_vm_instance(vm_instance2)

    vm_instance1_row = (vm_instance1, device, vm1, "name1", "f")

    assert admin.sa.list_vm_instances(disk_uuid=disk) == [vm_instance1_row]
    assert admin.sa.list_vm_instances(disk_uuid=disk, removed=True) == []

    admin.sa.remove_vm_instance(vm_instance1, True)
    assert admin.sa.list_vm_instances(disk_uuid=disk) == []
    assert admin.sa.list_vm_instances(disk_uuid=disk,
                                      removed=True) == [vm_instance1_row]

    admin.sa.readd_vm_instance(vm_instance1)
    assert admin.sa.list_vm_instances(disk_uuid=disk) == [vm_instance1_row]
    assert admin.sa.list_vm_instances(disk_uuid=disk, removed=True) == []

    admin.sa.purge_vm_instance(vm_instance1)
    assert admin.sa.list_vm_instances(disk_uuid=disk) == []
    assert admin.sa.list_vm_instances(disk_uuid=disk, removed=True) == []

    with raises.sync_error(sync_db.error.DISK_NOT_FOUND):
        assert admin.sa.list_vm_instances(disk_uuid="unknown") == []
Ejemplo n.º 34
0
def test_list_devices_by_vm(admin):
    device1 = admin.sa.add_device("name1")
    device2 = admin.sa.add_device("name2")

    device1_row = (device1, "name1")

    vm = admin.sa.add_vm("name", [])
    vm_instance = admin.sa.add_vm_instance(device1, vm, "name")

    assert admin.sa.list_devices(vm_uuid=vm) == [device1_row]
    #assert admin.sa.list_devices(vm_uuid=vm, removed=True) == []

    admin.sa.remove_vm_instance(vm_instance, True)
    assert admin.sa.list_devices(vm_uuid=vm) == []
    #assert admin.sa.list_devices(vm_uuid=vm, removed=True) == [device1_row]

    admin.sa.readd_vm_instance(vm_instance)
    assert admin.sa.list_devices(vm_uuid=vm) == [device1_row]
    #assert admin.sa.list_devices(vm_uuid=vm, removed=True) == []

    admin.sa.purge_vm_instance(vm_instance)
    assert admin.sa.list_devices(vm_uuid=vm) == []
    #assert admin.sa.list_devices(vm_uuid=vm, removed=True) == []

    vm_instance = admin.sa.add_vm_instance(device1, vm, "name")

    admin.sa.remove_device(device1, cascade=True)
    assert admin.sa.list_devices(vm_uuid=vm) == []
    #assert admin.sa.list_devices(vm_uuid=vm, removed=True) == []

    with raises.sync_error(sync_db.error.VM_NOT_FOUND):
        assert admin.sa.list_devices(vm_uuid="unknown") == []
def test_modify_vm_instance_name(admin):
    vm = admin.sa.add_vm("name1", [])
    device = admin.sa.add_device("name1")
    vm_instance = admin.sa.add_vm_instance(device, vm, "name1")
    assert (admin.sa.get_vm_instance(vm_instance) ==
            (vm_instance, device, vm, "name1", "f", "f", None))

    admin.sa.modify_vm_instance_name(vm_instance, "name2")
    assert (admin.sa.get_vm_instance(vm_instance) ==
            (vm_instance, device, vm, "name2", "f", "f", None))

    with raises.sync_error(sync_db.error.VM_INST_NAME_REQUIRED):
        admin.sa.modify_vm_instance_name(vm_instance, None)

    with raises.sync_error(sync_db.error.VM_INST_NAME_TOO_LONG):
        admin.sa.modify_vm_instance_name(vm_instance, "x" * 201)
Ejemplo n.º 36
0
def test_list_vms_by_device(admin):
    vm1 = admin.sa.add_vm("name1", [])
    vm2 = admin.sa.add_vm("name2", [])

    vm1_row = (vm1, "name1")

    device = admin.sa.add_device("name")

    vm_instance = admin.sa.add_vm_instance(device, vm1, "name")
    assert admin.sa.list_vms(device_uuid=device) == [vm1_row]
    #assert admin.sa.list_vms(device_uuid=device, removed=True) == []

    admin.sa.remove_vm_instance(vm_instance, True)
    assert admin.sa.list_vms(device_uuid=device) == []
    #assert admin.sa.list_vms(device_uuid=device, removed=True) == [vm1_row]

    admin.sa.readd_vm_instance(vm_instance)
    assert admin.sa.list_vms(device_uuid=device) == [vm1_row]
    #assert admin.sa.list_vms(device_uuid=device, removed=True) == []

    admin.sa.purge_vm_instance(vm_instance)
    assert admin.sa.list_vms(device_uuid=device) == []
    #assert admin.sa.list_vms(device_uuid=device, removed=True) == []

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        assert admin.sa.list_vms(device_uuid="unknown") == []
Ejemplo n.º 37
0
def test_add_vm_instance_duplicate(admin):
    vm = admin.sa.add_vm("name", [])
    device = admin.sa.add_device("name")
    admin.sa.add_vm_instance(device, vm, "name")

    with raises.sync_error(sync_db.error.VM_INST_EXISTS):
        admin.sa.add_vm_instance(device, vm, "name")
def test_list_vm_instances_by_disk(admin):
    disk = admin.sa.add_disk("name", "v", "path", 0, "0" * 64, None, False,
                             False)
    vm1 = admin.sa.add_vm("name1", [disk])
    vm2 = admin.sa.add_vm("name2", [])
    device = admin.sa.add_device("name")

    vm_instance1 = admin.sa.add_vm_instance(device, vm1, "name1")
    vm_instance2 = admin.sa.add_vm_instance(device, vm2, "name2")
    admin.sa.lock_vm_instance(vm_instance2)

    vm_instance1_row = (vm_instance1, device, vm1, "name1", "f")

    assert admin.sa.list_vm_instances(disk_uuid=disk) == [vm_instance1_row]
    assert admin.sa.list_vm_instances(disk_uuid=disk, removed=True) == []

    admin.sa.remove_vm_instance(vm_instance1, True)
    assert admin.sa.list_vm_instances(disk_uuid=disk) == []
    assert admin.sa.list_vm_instances(disk_uuid=disk,
                                   removed=True) == [vm_instance1_row]

    admin.sa.readd_vm_instance(vm_instance1)
    assert admin.sa.list_vm_instances(disk_uuid=disk) == [vm_instance1_row]
    assert admin.sa.list_vm_instances(disk_uuid=disk, removed=True) == []

    admin.sa.purge_vm_instance(vm_instance1)
    assert admin.sa.list_vm_instances(disk_uuid=disk) == []
    assert admin.sa.list_vm_instances(disk_uuid=disk, removed=True) == []

    with raises.sync_error(sync_db.error.DISK_NOT_FOUND):
        assert admin.sa.list_vm_instances(disk_uuid="unknown") == []
def test_list_vm_instances_by_device(admin):
    vm = admin.sa.add_vm("name", [])
    device1 = admin.sa.add_device("name1")
    device2 = admin.sa.add_device("name2")

    vm_instance1 = admin.sa.add_vm_instance(device1, vm, "name1")
    vm_instance2 = admin.sa.add_vm_instance(device2, vm, "name2")
    admin.sa.lock_vm_instance(vm_instance2)

    vm_instance1_row = (vm_instance1, device1, vm, "name1", "f")

    assert admin.sa.list_vm_instances(
               device_uuid=device1) == [vm_instance1_row]
    assert admin.sa.list_vm_instances(device_uuid=device1, removed=True) == []

    admin.sa.remove_vm_instance(vm_instance1, True)
    assert admin.sa.list_vm_instances(device_uuid=device1) == []
    assert admin.sa.list_vm_instances(device_uuid=device1,
                                   removed=True) == [vm_instance1_row]

    admin.sa.readd_vm_instance(vm_instance1)
    assert admin.sa.list_vm_instances(
               device_uuid=device1) == [vm_instance1_row]
    assert admin.sa.list_vm_instances(device_uuid=device1, removed=True) == []

    admin.sa.purge_vm_instance(vm_instance1)
    assert admin.sa.list_vm_instances(device_uuid=device1) == []
    assert admin.sa.list_vm_instances(device_uuid=device1, removed=True) == []

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        assert admin.sa.list_vm_instances(device_uuid="unknown") == []
def test_add_vm_instance_duplicate(admin):
    vm = admin.sa.add_vm("name", [])
    device = admin.sa.add_device("name")
    admin.sa.add_vm_instance(device, vm, "name")

    with raises.sync_error(sync_db.error.VM_INST_EXISTS):
        admin.sa.add_vm_instance(device, vm, "name")
Ejemplo n.º 41
0
def test_vm_config_invalid(admin):
    vm = admin.sa.add_vm("name1", [])

    with raises.sync_error(sync_db.error.CONFIG_EMPTY):
        admin.sa.add_vm("name2", [], [""])

    with raises.sync_error(sync_db.error.CONFIG_INVALID):
        admin.sa.add_vm("name2", [], [":b:c"])

    with raises.sync_error(sync_db.error.CONFIG_DAEMON_TOO_LONG):
        admin.sa.add_vm("name2", [], ["a" * 101 + ":b:c"])

    with raises.sync_error(sync_db.error.CONFIG_KEY_TOO_LONG):
        admin.sa.add_vm("name2", [], ["a:" + "b" * 101 + ":c"])

    with raises.sync_error(sync_db.error.CONFIG_VALUE_TOO_LONG):
        admin.sa.add_vm("name2", [], ["a:b:" + "c" * 3501])
Ejemplo n.º 42
0
def test_add_vm_invalid(admin):
    disk1 = admin.sa.add_disk("name1", "v", "path1", 0, "0" * 64, None, False,
                              False)
    disk2 = admin.sa.add_disk("name2", "v", "path2", 0, "0" * 64, None, False,
                              False)

    with raises.sync_error(sync_db.error.VM_NAME_REQUIRED):
        admin.sa.add_vm(None, [])

    with raises.sync_error(sync_db.error.VM_NAME_TOO_LONG):
        admin.sa.add_vm("x" * 201, [])

    with raises.sync_error(sync_db.error.DISK_REQUIRED):
        admin.sa.add_vm("name", [""])

    with raises.sync_error(sync_db.error.DISK_NOT_FOUND):
        admin.sa.add_vm("name", ["unknown"])

    with raises.sync_error(sync_db.error.DISK_NOT_FOUND):
        admin.sa.add_vm("name", ["x" * 37])

    with raises.sync_error(sync_db.error.DISK_REPEATED):
        admin.sa.add_vm("name", [disk1, disk1])

    with raises.sync_error(sync_db.error.DISK_REPEATED):
        admin.sa.add_vm("name", [disk1, disk2, disk1])
def test_lock_vm_instance(admin):
    vm = admin.sa.add_vm("name", [])
    device = admin.sa.add_device("name")

    vm_instance = admin.sa.add_vm_instance(device, vm, "name")

    with raises.sync_error(sync_db.error.VM_INST_ALREADY_UNLOCKED):
        admin.sa.unlock_vm_instance(vm_instance)

    admin.sa.lock_vm_instance(vm_instance)

    with raises.sync_error(sync_db.error.VM_INST_ALREADY_LOCKED):
        admin.sa.lock_vm_instance(vm_instance)

    admin.sa.unlock_vm_instance(vm_instance)

    assert (admin.sa.get_vm_instance(vm_instance) ==
            (vm_instance, device, vm, "name", "f", "f", None))
Ejemplo n.º 44
0
def test_lock_vm_instance(admin):
    vm = admin.sa.add_vm("name", [])
    device = admin.sa.add_device("name")

    vm_instance = admin.sa.add_vm_instance(device, vm, "name")

    with raises.sync_error(sync_db.error.VM_INST_ALREADY_UNLOCKED):
        admin.sa.unlock_vm_instance(vm_instance)

    admin.sa.lock_vm_instance(vm_instance)

    with raises.sync_error(sync_db.error.VM_INST_ALREADY_LOCKED):
        admin.sa.lock_vm_instance(vm_instance)

    admin.sa.unlock_vm_instance(vm_instance)

    assert (admin.sa.get_vm_instance(vm_instance) == (vm_instance, device, vm,
                                                      "name", "f", "f", None))
Ejemplo n.º 45
0
def test_device_repo(admin):
    repo = admin.sa.add_repo("release", "build", "path", 1, "1" * 64)

    device = admin.sa.add_device("name", repo_uuid=repo)

    with raises.sync_error(sync_db.error.REPO_NOT_FOUND):
        admin.sa.add_device("name", repo_uuid="unknown")

    with raises.sync_error(sync_db.error.REPO_NOT_FOUND):
        admin.sa.add_device("name", repo_uuid="x" * 37)

    admin.sa.modify_device_repo(device, None)
    admin.sa.modify_device_repo(device, repo)

    with raises.sync_error(sync_db.error.REPO_NOT_FOUND):
        admin.sa.modify_device_repo(device, repo_uuid="unknown")

    with raises.sync_error(sync_db.error.REPO_NOT_FOUND):
        admin.sa.modify_device_repo(device, repo_uuid="x" * 37)
Ejemplo n.º 46
0
def test_device_repo(admin):
    repo = admin.sa.add_repo("release", "build", "path", 1, "1" * 64)

    device = admin.sa.add_device("name", repo_uuid=repo)

    with raises.sync_error(sync_db.error.REPO_NOT_FOUND):
        admin.sa.add_device("name", repo_uuid="unknown")

    with raises.sync_error(sync_db.error.REPO_NOT_FOUND):
        admin.sa.add_device("name", repo_uuid="x" * 37)

    admin.sa.modify_device_repo(device, None)
    admin.sa.modify_device_repo(device, repo)

    with raises.sync_error(sync_db.error.REPO_NOT_FOUND):
        admin.sa.modify_device_repo(device, repo_uuid="unknown")

    with raises.sync_error(sync_db.error.REPO_NOT_FOUND):
        admin.sa.modify_device_repo(device, repo_uuid="x" * 37)
Ejemplo n.º 47
0
def test_remove_repo(admin):
    repo1 = admin.sa.add_repo("release1", "build1", "path1", 1, "1" * 64)
    repo2 = admin.sa.add_repo("release2", "build2", "path2", 2, "2" * 64)

    with raises.sync_error(sync_db.error.REPO_NOT_FOUND):
        admin.sa.remove_repo("unknown")

    device = admin.sa.add_device("device", repo_uuid=repo1)

    with raises.sync_error(sync_db.error.REPO_IN_USE):
        admin.sa.remove_repo(repo1)

    admin.sa.remove_repo(repo2)

    admin.sa.remove_device(device)
    admin.sa.remove_repo(repo1)

    with raises.sync_error(sync_db.error.REPO_NOT_FOUND):
        admin.sa.remove_repo(repo1)
Ejemplo n.º 48
0
def test_remove_device_with_vm_instance(admin):
    device = admin.sa.add_device("name")
    vm = admin.sa.add_vm("name", [])

    vm_instance = admin.sa.add_vm_instance(device, vm, "name")
    admin.sa.verify_database()
    with raises.sync_error(sync_db.error.DEVICE_HAS_VM_INST):
        admin.sa.remove_device(device)

    admin.sa.remove_device(device, cascade=True)
    admin.sa.verify_database()
Ejemplo n.º 49
0
def test_version(clean_db):
    admin = clean_db.get_admin_connection()

    target_version = clean_db.get_target_version()
    
    assert admin.sv.get_version() == target_version

    admin.sv.check_version(target_version)

    with raises.sync_error(sync_db.error.DB_VERSION_INCOMPATIBLE):
        admin.sv.check_version("1")
Ejemplo n.º 50
0
def test_version(clean_db):
    admin = clean_db.get_admin_connection()

    target_version = clean_db.get_target_version()

    assert admin.sv.get_version() == target_version

    admin.sv.check_version(target_version)

    with raises.sync_error(sync_db.error.DB_VERSION_INCOMPATIBLE):
        admin.sv.check_version("1")
Ejemplo n.º 51
0
def test_server_report_device_state(clean_db):
    admin = clean_db.get_admin_connection()
    server = clean_db.get_server_connection()

    device = admin.sa.add_device("name")

    assert admin.sa.get_report(device) == (device, None, None, None)

    with raises.sync_error(sync_db.error.DEVICE_REQUIRED):
        server.ss.report_device_state(None, None, None)

    with raises.sync_error(sync_db.error.DEVICE_NOT_FOUND):
        server.ss.get_device_secret("unknown")

    with raises.sync_error(sync_db.error.RELEASE_TOO_LONG):
        server.ss.report_device_state(device, "x" * 101, None)

    with raises.sync_error(sync_db.error.BUILD_TOO_LONG):
        server.ss.report_device_state(device, None, "x" * 101)

    server.ss.report_device_state(device, None, None)
    result = admin.sa.get_report(device)
    assert result[0:1] + result [2:] == (device, None, None)
    assert result[1] is not None

    server.ss.report_device_state(device, "release", None)
    result = admin.sa.get_report(device)
    assert result[0:1] + result [2:] == (device, "release", None)
    assert result[1] is not None

    server.ss.report_device_state(device, None, "build")
    result = admin.sa.get_report(device)
    assert result[0:1] + result [2:] == (device, None, "build")
    assert result[1] is not None

    server.ss.report_device_state(device, "release", "build")
    result = admin.sa.get_report(device)
    assert result[0:1] + result [2:] == (device, "release", "build")
    assert result[1] is not None