mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
119 lines
5.3 KiB
Python
119 lines
5.3 KiB
Python
"""Integration tests for changing object stores."""
|
|
|
|
import string
|
|
|
|
from ._base import BaseObjectStoreIntegrationTestCase
|
|
|
|
DISTRIBUTED_OBJECT_STORE_CONFIG_TEMPLATE = string.Template(
|
|
"""<?xml version="1.0"?>
|
|
<object_store type="distributed" id="primary" order="0">
|
|
<backends>
|
|
<backend id="default" allow_selection="true" type="disk" weight="1" device="tmp_disk" name="Default Store 1">
|
|
<files_dir path="${temp_directory}/files_default"/>
|
|
<extra_dir type="temp" path="${temp_directory}/tmp_default"/>
|
|
<extra_dir type="job_work" path="${temp_directory}/job_working_directory_default"/>
|
|
</backend>
|
|
<backend id="temp_short" allow_selection="true" type="disk" weight="0" device="tmp_disk" name="Temp - Short Term">
|
|
<quota source="shorter_term" />
|
|
<files_dir path="${temp_directory}/files_temp"/>
|
|
<extra_dir type="temp" path="${temp_directory}/tmp_temp"/>
|
|
<extra_dir type="job_work" path="${temp_directory}/job_working_directory_temp"/>
|
|
</backend>
|
|
<backend id="temp_long" allow_selection="true" type="disk" weight="0" device="tmp_disk" name="Temp - Longer Term">
|
|
<quota source="longer_term" />
|
|
<files_dir path="${temp_directory}/files_temp"/>
|
|
<extra_dir type="temp" path="${temp_directory}/tmp_temp"/>
|
|
<extra_dir type="job_work" path="${temp_directory}/job_working_directory_temp"/>
|
|
</backend>
|
|
</backends>
|
|
</object_store>
|
|
"""
|
|
)
|
|
|
|
TEST_INPUT_FILES_CONTENT = "1 2 3"
|
|
|
|
|
|
class TestChangingStoreObjectStoreIntegration(BaseObjectStoreIntegrationTestCase):
|
|
@classmethod
|
|
def handle_galaxy_config_kwds(cls, config):
|
|
config["new_user_dataset_access_role_default_private"] = True
|
|
cls._configure_object_store(DISTRIBUTED_OBJECT_STORE_CONFIG_TEMPLATE, config)
|
|
config["enable_quotas"] = True
|
|
|
|
def test_valid_in_device_swap(self):
|
|
with self.dataset_populator.test_history() as history_id:
|
|
hda = self.dataset_populator.new_dataset(history_id, content=TEST_INPUT_FILES_CONTENT, wait=True)
|
|
|
|
payload = {
|
|
"name": "quota_longer",
|
|
"description": "quota_longer desc",
|
|
"amount": "10 MB",
|
|
"operation": "=",
|
|
"default": "registered",
|
|
"quota_source_label": "longer_term",
|
|
}
|
|
self.dataset_populator.create_quota(payload)
|
|
|
|
payload = {
|
|
"name": "quota_shorter",
|
|
"description": "quota_shorter desc",
|
|
"amount": "20 MB",
|
|
"operation": "=",
|
|
"default": "registered",
|
|
"quota_source_label": "shorter_term",
|
|
}
|
|
self.dataset_populator.create_quota(payload)
|
|
|
|
quotas = self.dataset_populator.get_quotas()
|
|
assert len(quotas) == 2
|
|
|
|
usage = self.dataset_populator.get_usage_for("longer_term")
|
|
assert usage["total_disk_usage"] == 0
|
|
usage = self.dataset_populator.get_usage_for("shorter_term")
|
|
assert usage["total_disk_usage"] == 0
|
|
usage = self.dataset_populator.get_usage_for(None)
|
|
assert int(usage["total_disk_usage"]) == 6
|
|
|
|
def count_in_object_store(object_store_id: str):
|
|
return len(
|
|
self.dataset_populator.get_history_contents(
|
|
history_id, {"q": "object_store_id-eq", "qv": object_store_id, "v": "dev"}
|
|
)
|
|
)
|
|
|
|
def count_in_quota_source(quota_source_label: str):
|
|
return len(
|
|
self.dataset_populator.get_history_contents(
|
|
history_id, {"q": "quota_source_label-eq", "qv": quota_source_label, "v": "dev"}
|
|
)
|
|
)
|
|
|
|
self.dataset_populator.get_history_contents(history_id, {"q": "state-eq", "qv": "ok", "v": "dev"})
|
|
assert count_in_object_store("temp_short") == 0
|
|
assert count_in_quota_source("shorter_term") == 0
|
|
|
|
self.dataset_populator.update_object_store_id(hda["id"], "temp_short")
|
|
usage = self.dataset_populator.get_usage_for("shorter_term")
|
|
assert int(usage["total_disk_usage"]) == 6
|
|
usage = self.dataset_populator.get_usage_for(None)
|
|
assert int(usage["total_disk_usage"]) == 0
|
|
|
|
assert count_in_object_store("temp_short") == 1
|
|
assert count_in_quota_source("shorter_term") == 1
|
|
|
|
self.dataset_populator.update_object_store_id(hda["id"], "temp_long")
|
|
usage = self.dataset_populator.get_usage_for("shorter_term")
|
|
assert int(usage["total_disk_usage"]) == 0
|
|
usage = self.dataset_populator.get_usage_for("longer_term")
|
|
assert int(usage["total_disk_usage"]) == 6
|
|
usage = self.dataset_populator.get_usage_for(None)
|
|
assert int(usage["total_disk_usage"]) == 0
|
|
|
|
self.dataset_populator.update_object_store_id(hda["id"], "temp_short")
|
|
usage = self.dataset_populator.get_usage_for("shorter_term")
|
|
assert int(usage["total_disk_usage"]) == 6
|
|
usage = self.dataset_populator.get_usage_for("longer_term")
|
|
assert int(usage["total_disk_usage"]) == 0
|
|
usage = self.dataset_populator.get_usage_for(None)
|
|
assert int(usage["total_disk_usage"]) == 0
|