Poll Trusted Advisor (Support) API for limit checks.

        Return a dict of service name (string) keys to nested dict vals, where
        each key is a limit name and each value the current numeric limit.

        e.g.:
        ::

            {
                'EC2': {
                    'SomeLimit': 10,
                }
            }

def _poll(self):
        """
        Poll Trusted Advisor (Support) API for limit checks.

        Return a dict of service name (string) keys to nested dict vals, where
        each key is a limit name and each value the current numeric limit.

        e.g.:
        ::

            {
                'EC2': {
                    'SomeLimit': 10,
                }
            }

        """
        logger.info("Beginning TrustedAdvisor poll")
        tmp = self._get_limit_check_id()
        if not self.have_ta:
            logger.info('TrustedAdvisor.have_ta is False; not polling TA')
            return {}
        if tmp is None:
            logger.critical("Unable to find 'Service Limits' Trusted Advisor "
                            "check; not using Trusted Advisor data.")
            return
        check_id, metadata = tmp
        checks = self._get_refreshed_check_result(check_id)
        region = self.ta_region or self.conn._client_config.region_name
        res = {}
        if checks['result'].get('status', '') == 'not_available':
            logger.warning(
                'Trusted Advisor returned status "not_available" for '
                'service limit check; cannot retrieve limits from TA.'
            )
            return {}
        if 'flaggedResources' not in checks['result']:
            logger.warning(
                'Trusted Advisor returned no results for '
                'service limit check; cannot retrieve limits from TA.'
            )
            return {}
        for check in checks['result']['flaggedResources']:
            if 'region' in check and check['region'] != region:
                continue
            data = dict(zip(metadata, check['metadata']))
            if data['Service'] not in res:
                res[data['Service']] = {}
            try:
                val = int(data['Limit Amount'])
            except ValueError:
                val = data['Limit Amount']
                if val != 'Unlimited':
                    logger.error('TrustedAdvisor returned unknown Limit '
                                 'Amount %s for %s - %s', val, data['Service'],
                                 data['Limit Name'])
                    continue
                else:
                    logger.debug('TrustedAdvisor setting explicit "Unlimited" '
                                 'limit for %s - %s', data['Service'],
                                 data['Limit Name'])
            res[data['Service']][data['Limit Name']] = val
        logger.info("Finished TrustedAdvisor poll")
        return res