'Get dedupe attributes needed for the storage service catalog.'

def get_flexvol_dedupe_info(self, flexvol_name):

    api_args = {'query': {'sis-status-info': {'path': ('/vol/%s' % flexvol_name)}}, 'desired-attributes': {'sis-status-info': {'state': None, 'is-compression-enabled': None, 'logical-data-size': None, 'logical-data-limit': None}}}
    no_dedupe_response = {'compression': False, 'dedupe': False, 'logical-data-size': 0, 'logical-data-limit': 1}
    try:
        result = self.send_iter_request('sis-get-iter', api_args)
    except netapp_api.NaApiError as e:
        if (e.code == netapp_api.EAPIPRIVILEGE):
            LOG.debug('Dedup    info    for    volume    %(name)s    will    not    be    collected.    This    API    requires    cluster-scoped    credentials.', {'name': flexvol_name})
        else:
            LOG.exception('Failed    to    get    dedupe    info    for    volume    %s.', flexvol_name)
        return no_dedupe_response
    if (self._get_record_count(result) != 1):
        return no_dedupe_response
    attributes_list = (result.get_child_by_name('attributes-list') or netapp_api.NaElement('none'))
    sis_status_info = (attributes_list.get_child_by_name('sis-status-info') or netapp_api.NaElement('none'))
    logical_data_size = (sis_status_info.get_child_content('logical-data-size') or 0)
    logical_data_limit = (sis_status_info.get_child_content('logical-data-limit') or 1)
    sis = {'compression': strutils.bool_from_string(sis_status_info.get_child_content('is-compression-enabled')), 'dedupe': na_utils.to_bool(sis_status_info.get_child_content('state')), 'logical-data-size': int(logical_data_size), 'logical-data-limit': int(logical_data_limit)}
    return sis
