def get_volume_group_list(self):
        """Get a list of all the volume groups."""

        return self.client.request(constants.GET,
                                   constants.GET_VOLUME_GROUP_LIST_URL.format(
                                       self.server_ip),
                                   payload=None,
                                   querystring=helpers.prepare_querystring(
                                       constants.SELECT_ID_AND_NAME))
    def get_volume_group_by_name(self, volume_group_name):
        """Get details of a volume group by name.

        :param volume_group_name: The name of the volume group
        """
        return self.client.request(
            constants.GET,
            constants.GET_VOLUME_GROUP_BY_NAME_URL.format(self.server_ip),
            payload=None,
            querystring=helpers.prepare_querystring(
                constants.SELECT_ALL_VOL_GROUP,
                name=constants.EQUALS + volume_group_name))
    def get_host_volume_mapping(self, volume_id):
        """Get Host volume mapping details.

        :param volume_id: The Volume ID
        """

        return self.client.request(
            constants.GET,
            constants.HOST_VOLUME_MAPPING_URL.format(self.server_ip),
            payload=None,
            querystring=helpers.prepare_querystring(
                constants.SELECT_ALL_HOST_VOLUME_MAPPING,
                volume_id=constants.EQUALS + volume_id))
    def get_host_group_by_name(self, host_group_name):
        """Get details of a Host Group with its name.

        :param host_group_name: The Host Group name
        :return: Host Group details
        """
        return self.client.request(
            constants.GET,
            constants.GET_HOST_GROUP_BY_NAME_URL.format(self.server_ip),
            payload=None,
            querystring=helpers.prepare_querystring(
                constants.SELECT_ALL_HOST_GROUP,
                name=constants.EQUALS + host_group_name))
    def get_hosts_from_host_group(self, host_group_name):
        """Get list of hosts which belong to Host Group.

        :param host_group_name: The Host Group name
        :return: Host List which are part of Host Group
        """
        return self.client.request(constants.GET,
                                   constants.GET_HOSTS_BY_HOST_GROUP.format(
                                       self.server_ip, host_group_name),
                                   payload=None,
                                   querystring=helpers.prepare_querystring(
                                       name=constants.EQUALS + host_group_name,
                                       select='hosts(name,id)'))
Exemple #6
0
    def get_protection_policies(self):
        """Get all protection policies.

        :return: Protection policies.
        :rtype: list[dict]
        """
        return self.rest_client.request(
            constants.GET,
            constants.PROTECTION_POLICY_LIST_URL.format(self.server_ip),
            querystring=helpers.prepare_querystring(
                PROTECTION_POLICY_FILTER, constants.SELECT_ID_AND_NAME
            )
        )
Exemple #7
0
    def get_snapshot_rules(self):
        """Get all snapshot rules.

        :return: Snapshot rules.
        :rtype: list[dict]
        """
        return self.rest_client.request(
            constants.GET,
            constants.SNAPSHOT_RULE_LIST_URL.format(self.server_ip),
            querystring=helpers.prepare_querystring(
                SNAPSHOT_RULE_FILTER, constants.SELECT_ID_AND_NAME
            )
        )
    def get_volume_group_details(self, volume_group_id):
        """Get details of a volume group.

        :param volume_group_id: The volume group ID
        :return: Details of the volume group
        """

        return self.client.request(
            constants.GET,
            constants.GET_VOLUME_GROUP_DETAILS_URL.format(
                self.server_ip, volume_group_id),
            payload=None,
            querystring=helpers.prepare_querystring(
                constants.SELECT_ALL_VOL_GROUP))
    def get_volumes_from_volume_group(self, vol_group_name):
        """Get a list of volumes which belong to Volume Group.

        :param vol_group_name: The Volume group name
        :return: Vol list which are part of Volume Group
        """
        return self.client.request(
            constants.GET,
            constants.GET_VOLUMES_FROM_VOLUME_GROUP.format(
                self.server_ip, vol_group_name),
            payload=None,
            querystring=helpers.prepare_querystring(name=constants.EQUALS +
                                                    vol_group_name,
                                                    select='volumes(name)'))
    def get_volume_by_name(self, volume_name):
        """Get details of a volume by name."""

        resp = self.client.request(constants.GET,
                                   constants.GET_VOLUME_BY_NAME_URL.format(
                                       self.server_ip),
                                   payload=None,
                                   querystring=helpers.prepare_querystring(
                                       constants.SELECT_ALL_VOLUME,
                                       name=constants.EQUALS + volume_name))

        hlu_details = self.get_host_volume_mapping(volume_id=resp[0]['id'])
        resp[0]['hlu_details'] = hlu_details

        return resp
Exemple #11
0
    def get_snapshot_rule_by_name(self, name):
        """Get a snapshot rule by name.

        :param name: Snapshot rule name.
        :type name: str
        :return: Snapshot rule with corresponding name.
        :rtype: list[dict]
        """
        LOG.info("Getting snapshot_rule details by name: '%s'" % name)
        return self.rest_client.request(
            constants.GET,
            constants.SNAPSHOT_RULE_LIST_URL.format(self.server_ip),
            querystring=helpers.prepare_querystring(
                SNAPSHOT_RULE_FILTER, constants.SELECT_ID_AND_NAME,
                name=constants.EQUALS + name))
Exemple #12
0
    def get_protection_policy_by_name(self, name):
        """Get a protection policy by name.

        :param name: Protection policy name.
        :type name: str
        :return: Protection policy with corresponding name.
        :rtype: list[dict]
        """
        return self.rest_client.request(
            constants.GET,
            constants.PROTECTION_POLICY_LIST_URL.format(self.server_ip),
            querystring=helpers.prepare_querystring(
                PROTECTION_POLICY_FILTER, constants.SELECT_ID_AND_NAME,
                name=constants.EQUALS + name
            )
        )
Exemple #13
0
    def get_volume_snapshots(self, volume_id):
        """Get snapshots of a volume.

        :param volume_id: Volume unique identifier.
        :type volume_id: str
        :return: Volume snapshots.
        :rtype: list[dict]
        """
        filter_by_source = {
            'protection_data->>source_id': constants.EQUALS + volume_id
        }
        return self.rest_client.request(
            constants.GET,
            constants.GET_VOLUME_LIST_URL.format(self.server_ip),
            querystring=helpers.prepare_querystring(
                constants.SELECT_ID_AND_NAME, filter_by_source,
                type=constants.EQUALS + VOLUME_TYPE.snapshot
            )
        )
Exemple #14
0
    def get_snapshot_rules(self, filter_dict=None, all_pages=False):
        """Get all snapshot rules.

        :param filter_dict: (optional) Filter detail
        :type filter_dict: dict
        :param all_pages: (optional) Indicates whether to return all element
                          or not
        :type all_pages: bool
        :return: Snapshot rules.
        :rtype: list[dict]
        """
        LOG.info("Getting snapshot_rules with filter: '%s' and all_pages: '%s'"
                 % (filter_dict, all_pages))
        querystring = helpers.prepare_querystring(
            SNAPSHOT_RULE_FILTER, constants.SELECT_ID_AND_NAME, filter_dict)
        LOG.info("Querystring: '%s'" % querystring)
        return self.rest_client.request(
            constants.GET,
            constants.SNAPSHOT_RULE_LIST_URL.format(self.server_ip),
            querystring=querystring, all_pages=all_pages)
Exemple #15
0
    def get_protection_policies(self, filter_dict=None, all_pages=False):
        """Get all protection policies.

        :param filter_dict: (optional) Filter detail
        :type filter_dict: dict
        :param all_pages: (optional) Indicates whether to return all element
                          or not
        :type all_pages: bool
        :return: Protection policies.
        :rtype: list[dict]
        """
        LOG.info("Getting policies with filter: '%s' and all_pages: '%s'"
                 % (filter_dict, all_pages))
        querystring = helpers.prepare_querystring(
            PROTECTION_POLICY_FILTER,
            constants.SELECT_ID_AND_NAME,
            filter_dict)
        LOG.info("Querystring: %s" % querystring)
        return self.rest_client.request(
            constants.GET,
            constants.PROTECTION_POLICY_LIST_URL.format(self.server_ip),
            querystring=querystring, all_pages=all_pages)
Exemple #16
0
    def get_filesystem_snapshot_details_by_name(
            self, snapshot_name, filesystem_id=None, nas_server_id=None):
        """Get details of a particular filesystem snapshot.

        :param snapshot_name: The name of the filesystem snapshot
        :type snapshot_name: str
        :param filesystem_id: (optional) The ID of the filesystem
        :type filesystem_id: str
        :param nas_server_id: (optional) The ID of the NAS server
        :type nas_server_id: str
        :return: Filesystem snapshot details
        :rtype: list
        """

        if filesystem_id is None and nas_server_id is None:
            raise ValueError('Provide filesystem_id or nas_server_id.')

        if filesystem_id is not None and nas_server_id is not None:
            raise ValueError('Provide filesystem_id or nas_server_id, '
                             'but not both.')

        if filesystem_id:
            LOG.info("Getting filesystem snapshot: '%s' details by fs_id: '%s'"
                     % (snapshot_name, filesystem_id))
            return self.rest_client.request(
                constants.GET,
                constants.GET_FILESYSTEM_DETAILS_BY_NAME_URL.format(
                    self.server_ip),
                querystring=helpers.prepare_querystring(
                    constants.SELECT_ALL_FILESYSTEM,
                    name=constants.EQUALS + snapshot_name,
                    parent_id=constants.EQUALS + filesystem_id))
        else:
            LOG.info("Getting filesystem snapshot: '%s' details by "
                     "nasserver id: '%s'" % (snapshot_name, nas_server_id))
            return self.provisioning.get_filesystem_by_name(
                filesystem_name=snapshot_name, nas_server_id=nas_server_id)