'When we find a directory with a valid kernel/initrd in it, create the distribution objects
as appropriate and save them.  This includes creating xen and rescue distros/profiles
if possible.'

def add_entry(self, dirname, kernel, initrd):

    proposed_name = self.get_proposed_name(dirname, kernel)
    archs = self.learn_arch_from_tree()
    if ((not archs) and self.arch):
        archs.append(self.arch)
    elif (self.arch and (self.arch not in archs)):
        utils.die(self.logger, ('Given    arch    (%s)    not    found    on    imported    tree    %s' % (self.arch, self.path)))
    if (len(archs) == 0):
        self.logger.error(('No    arch    could    be    detected    in    %s,    and    none    was    specified    via    the    --arch    option' % dirname))
        return []
    elif (len(archs) > 1):
        self.logger.warning(('-    Warning    :    Multiple    archs    found    :    %s' % archs))
    distros_added = []
    for pxe_arch in archs:
        name = ((proposed_name + '-') + pxe_arch)
        existing_distro = self.distros.find(name=name)
        if (existing_distro is not None):
            self.logger.warning(('skipping    import,    as    distro    name    already    exists:    %s' % name))
            continue
        else:
            self.logger.info(('creating    new    distro:    %s' % name))
            distro = item_distro.Distro(self.collection_mgr)
        if (name.find('-autoboot') != (-1)):
            continue
        distro.set_name(name)
        distro.set_kernel(kernel)
        distro.set_initrd(initrd)
        distro.set_arch(pxe_arch)
        distro.set_breed(self.breed)
        distro.set_os_version(self.os_version)
        distro.set_kernel_options(self.signature.get('kernel_options', ''))
        distro.set_kernel_options_post(self.signature.get('kernel_options_post', ''))
        distro.set_template_files(self.signature.get('template_files', ''))
        supported_distro_boot_loaders = utils.get_supported_distro_boot_loaders(distro, self.api)
        distro.set_supported_boot_loaders(supported_distro_boot_loaders)
        distro.set_boot_loader(supported_distro_boot_loaders[0])
        boot_files = ''
        for boot_file in self.signature['boot_files']:
            boot_files += ('$local_img_path/%s=%s/%s    ' % (boot_file, self.path, boot_file))
        distro.set_boot_files(boot_files.strip())
        self.configure_tree_location(distro)
        self.distros.add(distro, save=True)
        distros_added.append(distro)
        existing_profile = self.profiles.find(name=name)
        if (existing_profile is None):
            self.logger.info(('creating    new    profile:    %s' % name))
            profile = item_profile.Profile(self.collection_mgr)
        else:
            self.logger.info(('skipping    existing    profile,    name    already    exists:    %s' % name))
            continue
        profile.set_name(name)
        profile.set_distro(name)
        profile.set_autoinstall(self.autoinstall_file)
        if (name.find('-xen') != (-1)):
            profile.set_virt_type('xenpv')
        elif (name.find('vmware') != (-1)):
            profile.set_virt_type('vmware')
        else:
            profile.set_virt_type('kvm')
        self.profiles.add(profile, save=True)
    return distros_added
