"""Integration tests for changing object stores.""" import string from ._base import BaseObjectStoreIntegrationTestCase DISTRIBUTED_OBJECT_STORE_CONFIG_TEMPLATE = string.Template(""" """) 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