def test_detach_storage_domain(engine_api):
    engine = engine_api.system_service()
    dc = test_utils.data_center_service(engine, DC_NAME)

    _get_storage_domain(dc, SD_SECOND_NFS_NAME, service=True).remove()

    assertions.assert_equals_within_short(
        lambda: _get_storage_domain(engine, SD_SECOND_NFS_NAME).status,
        ovirtsdk4.types.StorageDomainStatus.UNATTACHED)
def test_reattach_storage_domain(engine_api):
    # TODO: uncomment once VnicSetup checks are fixed.
    # VnicSetup.vnic_setup().remove_some_profiles_and_networks()
    engine = engine_api.system_service()
    dc = test_utils.data_center_service(engine, DC_NAME)
    sd = _get_storage_domain(engine, SD_SECOND_NFS_NAME)

    dc.storage_domains_service().add(sd)

    assertions.assert_equals_within_short(
        lambda: _get_storage_domain(dc, SD_SECOND_NFS_NAME).status,
        ovirtsdk4.types.StorageDomainStatus.ACTIVE)
def test_deactivate_storage_domain(engine_api):
    # TODO: uncomment once VnicSetup checks are fixed.
    # TODO: this also seems to leave running tasks behind which break the deactivation.
    # TODO: it should be tested in multiple runs or properly waited for.
    # VnicSetup.vnic_setup().init(engine_api.system_service(),
    #                            VM2_NAME, DC_NAME, CLUSTER_NAME)
    dc = test_utils.data_center_service(engine_api.system_service(), DC_NAME)

    _get_storage_domain(dc, SD_SECOND_NFS_NAME, service=True).deactivate()

    assertions.assert_equals_within_short(
        lambda: _get_storage_domain(dc, SD_SECOND_NFS_NAME).status,
        ovirtsdk4.types.StorageDomainStatus.MAINTENANCE)