docs: def _get_service(name):
      '''
      Get information about a service.  If the service is not found, raise an
      error
  
      :param str name: Service label, file name, or full path
  
      :return: The service information for the service, otherwise an Error
      :rtype: dict
      '''
      services = __utils__['mac_utils.available_services']()
      name = name.lower()
  
      service = _name_in_services(name, services)
  
      # if we would the service we can return it
      if service:
          return service
  
      # if we got here our service is not available, now we can check to see if
      # we received a cached batch of services, if not we did a fresh check
      # so we need to raise that the service could not be found.
      try:
          if not __context__['using_cached_services']:
              raise CommandExecutionError('Service not found: {0}'.format(name))
      except KeyError:
          pass
  
      # we used a cached version to check, a service could have been made
      # between now and then, we should refresh our available services.
      services = __utils__['mac_utils.available_services'](refresh=True)
  
      # check to see if we found the service we are looking for.
      service = _name_in_services(name, services)
  
      if not service:
          # Could not find the service after refresh raise.
          raise CommandExecutionError('Service not found: {0}'.format(name))
  
      # found it :)
      return service