diff env/lib/python3.9/site-packages/bioblend/galaxy/quotas/__init__.py @ 0:4f3585e2f14b draft default tip

"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author shellac
date Mon, 22 Mar 2021 18:12:50 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/env/lib/python3.9/site-packages/bioblend/galaxy/quotas/__init__.py	Mon Mar 22 18:12:50 2021 +0000
@@ -0,0 +1,211 @@
+"""
+Contains possible interactions with the Galaxy Quota
+"""
+from bioblend.galaxy.client import Client
+
+
+class QuotaClient(Client):
+
+    def __init__(self, galaxy_instance):
+        self.module = 'quotas'
+        super().__init__(galaxy_instance)
+
+    def get_quotas(self, deleted=False):
+        """
+        Get a list of quotas
+
+        :type deleted: bool
+        :param deleted: Only return quota(s) that have been deleted
+
+        :rtype: list
+        :return: A list of dicts with details on individual quotas.
+          For example::
+
+            [{'id': '0604c8a56abe9a50',
+              'model_class': 'Quota',
+              'name': 'test ',
+              'url': '/api/quotas/0604c8a56abe9a50'},
+             {'id': '1ee267091d0190af',
+              'model_class': 'Quota',
+              'name': 'workshop',
+              'url': '/api/quotas/1ee267091d0190af'}]
+        """
+        return self._get(deleted=deleted)
+
+    def show_quota(self, quota_id, deleted=False):
+        """
+        Display information on a quota
+
+        :type quota_id: str
+        :param quota_id: Encoded quota ID
+
+        :type deleted: bool
+        :param deleted: Search for quota in list of ones already marked as deleted
+
+        :rtype: dict
+        :return: A description of quota.
+          For example::
+
+            {'bytes': 107374182400,
+             'default': [],
+             'description': 'just testing',
+             'display_amount': '100.0 GB',
+             'groups': [],
+             'id': '0604c8a56abe9a50',
+             'model_class': 'Quota',
+             'name': 'test ',
+             'operation': '=',
+             'users': []}
+        """
+        return self._get(id=quota_id, deleted=deleted)
+
+    def create_quota(self, name, description, amount, operation,
+                     default='no', in_users=None, in_groups=None):
+        """
+        Create a new quota
+
+        :type name: str
+        :param name: Name for the new quota. This must be unique within a Galaxy instance.
+
+        :type description: str
+        :param description: Quota description
+
+        :type amount: str
+        :param amount: Quota size (E.g. ``10000MB``, ``99 gb``, ``0.2T``, ``unlimited``)
+
+        :type operation: str
+        :param operation: One of (``+``, ``-``, ``=``)
+
+        :type default: str
+        :param default: Whether or not this is a default quota. Valid values
+                        are ``no``, ``unregistered``, ``registered``. None is
+                        equivalent to ``no``.
+
+        :type in_users: list of str
+        :param in_users: A list of user IDs or user emails.
+
+        :type in_groups: list of str
+        :param in_groups: A list of group IDs or names.
+
+        :rtype: dict
+        :return: A description of quota.
+          For example::
+
+            {'url': '/galaxy/api/quotas/386f14984287a0f7',
+             'model_class': 'Quota',
+             'message': "Quota 'Testing' has been created with 1 associated users and 0 associated groups.",
+             'id': '386f14984287a0f7',
+             'name': 'Testing'}
+        """
+        payload = {
+            'name': name,
+            'description': description,
+            'amount': amount,
+            'operation': operation,
+            'default': default
+        }
+        if in_users:
+            payload['in_users'] = in_users
+
+        if in_groups:
+            payload['in_groups'] = in_groups
+
+        return self._post(payload)
+
+    def update_quota(self, quota_id, name=None, description=None, amount=None, operation=None,
+                     default='no', in_users=None, in_groups=None):
+        """
+        Update an existing quota
+
+        :type quota_id: str
+        :param quota_id: Encoded quota ID
+
+        :type name: str
+        :param name: Name for the new quota. This must be unique within a Galaxy instance.
+
+        :type description: str
+        :param description: Quota description. If you supply this parameter,
+                            but not the name, an error will be thrown.
+
+        :type amount: str
+        :param amount: Quota size (E.g. ``10000MB``, ``99 gb``, ``0.2T``, ``unlimited``)
+
+        :type operation: str
+        :param operation: One of (``+``, ``-``, ``=``). If you wish to change this
+                          value, you must also provide the ``amount``,
+                          otherwise it will not take effect.
+
+        :type default: str
+        :param default: Whether or not this is a default quota. Valid values
+                        are ``no``, ``unregistered``, ``registered``.
+                        Calling this method with ``default="no"`` on a
+                        non-default quota will throw an error. Not
+                        passing this parameter is equivalent to passing ``no``.
+
+        :type in_users: list of str
+        :param in_users: A list of user IDs or user emails.
+
+        :type in_groups: list of str
+        :param in_groups: A list of group IDs or names.
+
+        :rtype: str
+        :return: A semicolon separated list of changes to the quota.
+          For example::
+
+            "Quota 'Testing-A' has been renamed to 'Testing-B'; Quota 'Testing-e' is now '-100.0 GB'; Quota 'Testing-B' is now the default for unregistered users"
+        """
+        payload = {
+            'default': default
+        }
+        if name:
+            payload['name'] = name
+
+        if description:
+            payload['description'] = description
+
+        if amount:
+            payload['amount'] = amount
+
+        if operation:
+            payload['operation'] = operation
+
+        if in_users:
+            payload['in_users'] = in_users
+
+        if in_groups:
+            payload['in_groups'] = in_groups
+
+        return self._put(id=quota_id, payload=payload)
+
+    def delete_quota(self, quota_id):
+        """
+        Delete a quota
+
+        Before a quota can be deleted, the quota must not be a default quota.
+
+        :type quota_id: str
+        :param quota_id: Encoded quota ID.
+
+        :rtype: str
+        :return: A description of the changes, mentioning the deleted quota.
+          For example::
+
+            "Deleted 1 quotas: Testing-B"
+        """
+        return self._delete(id=quota_id)
+
+    def undelete_quota(self, quota_id):
+        """
+        Undelete a quota
+
+        :type quota_id: str
+        :param quota_id: Encoded quota ID.
+
+        :rtype: str
+        :return: A description of the changes, mentioning the undeleted quota.
+          For example::
+
+            "Undeleted 1 quotas: Testing-B"
+        """
+        url = self._make_url(quota_id, deleted=True) + '/undelete'
+        return self._post(url=url, payload={'id': quota_id})