def METHOD_NAME(self):
    for sal_machine in self._make_get_query('/machines/'):
        machine_id = sal_machine['serial']  # serial number == machine_id in this client
        ct = {'reference': machine_id,
              'links': self._machine_links_from_id(machine_id),
              'serial_number': machine_id}
        # groups
        sal_group_id = sal_machine.get('machine_group', None)
        if sal_group_id:
            sal_group = self._make_get_query('/machine_groups/{}/'.format(sal_group_id))
            ct['groups'] = [{'reference': str(sal_group_id),
                             'name': sal_group['name'],
                             'links': self._group_links_from_id(sal_group_id)}]
            business_unit_id = int(sal_group['business_unit'])
            business_unit = self._make_get_query('/business_units/{}/'.format(business_unit_id))
            ct['business_unit'] = {'reference': str(business_unit_id),
                                   'name': business_unit['name'],
                                   'links': self._bu_links_from_id(business_unit_id)}
        # os version
        os_version = dict(zip(('major', 'minor', 'patch'),
                              (int(p) for p in sal_machine['operating_system'].split("."))))
        os_version['name'] = sal_machine['os_family']
        ct['os_version'] = os_version
        # system info
        ct['system_info'] = {'computer_name': sal_machine['hostname'].strip(),
                             'hardware_model': sal_machine['machine_model'],
                             'cpu_type': " @".join((s for s in (sal_machine.get(k)
                                                                for k in ('cpu_type', 'cpu_speed'))
                                                    if s)),
                             'physical_memory': sal_machine['memory_kb'] * 2**10}
        yield ct