Example #1
0
    def test_task_package_names_are_case_sensitive(self):
        test_package_name = '/distribution/beaker/dummy_for_bz681143'

        # There is a pre-existing TaskPackage in all lowercase...
        with session.begin():
            TaskPackage.lazy_create(package=u'opencryptoki')

        # But the task we are uploading has RunFor: openCryptoki, 
        # with uppercase C
        sel = self.selenium
        sel.open('')
        sel.click('link=New Task')
        sel.wait_for_page_to_load('30000')
        sel.type('task_task_rpm',
                pkg_resources.resource_filename(self.__module__,
                'tmp-distribution-beaker-dummy_for_bz681143-1.0-1.noarch.rpm'))
        sel.click('//input[@value="Submit Data"]')
        sel.wait_for_page_to_load('30000')
        self.assert_task_upload_flash_OK(test_package_name)
        sel.type('simplesearch', test_package_name)
        sel.click('search')
        sel.wait_for_page_to_load('30000')
        sel.click('link=%s' % test_package_name)
        sel.wait_for_page_to_load('30009')
        # Should have openCryptoki in correct case:
        self.assertEqual(self.get_task_info_field('Run For'), 'openCryptoki')
Example #2
0
    def test_task_package_names_are_case_sensitive(self):
        test_package_name = '/distribution/beaker/dummy_for_bz681143'

        # There is a pre-existing TaskPackage in all lowercase...
        with session.begin():
            TaskPackage.lazy_create(package=u'opencryptoki')

        # But the task we are uploading has RunFor: openCryptoki,
        # with uppercase C
        b = self.browser
        b.get(get_server_base() + 'tasks/new')
        b.find_element_by_id('task_task_rpm').send_keys(
            pkg_resources.resource_filename(
                'bkr.inttest.server',
                'task-rpms/tmp-distribution-beaker-dummy_for_bz681143-1.0-1.noarch.rpm'
            ))
        b.find_element_by_xpath('//button[text()="Upload"]').click()
        self.addCleanup(
            unlink_ignore,
            os.path.join(
                turbogears.config.get('basepath.rpms'),
                'tmp-distribution-beaker-dummy_for_bz681143-1.0-1.noarch.rpm'))
        self.assert_task_upload_flash_OK(test_package_name)
        b.find_element_by_name('simplesearch').send_keys(test_package_name)
        b.find_element_by_id('simpleform').submit()
        b.find_element_by_link_text(test_package_name).click()
        # Should have openCryptoki in correct case:
        self.assertEqual(self.get_task_info_field('Run For'), 'openCryptoki')
Example #3
0
def create_task(name=None,
                exclude_arch=None,
                exclude_osmajor=None,
                version=u'1.0-1',
                uploader=None,
                owner=None,
                priority=u'Manual',
                valid=None,
                path=None,
                description=None,
                requires=None,
                runfor=None,
                type=None):
    if name is None:
        name = unique_name(u'/distribution/test_task_%s')
    if path is None:
        path = u'/mnt/tests/%s' % name
    if description is None:
        description = unique_name(u'description%s')
    if uploader is None:
        uploader = create_user(user_name=u'task-uploader%s' %
                               name.replace('/', '-'))
    if owner is None:
        owner = u'*****@*****.**' % name.replace('/', '-')
    if valid is None:
        valid = True
    rpm = u'example%s-%s.noarch.rpm' % (name.replace('/', '-'), version)

    task = Task.lazy_create(name=name)
    task.rpm = rpm
    task.version = version
    task.uploader = uploader
    task.owner = owner
    task.priority = priority
    task.valid = valid
    task.path = path
    task.description = description
    task.avg_time = 1200
    if type:
        for t in type:
            task.types.append(TaskType.lazy_create(type=t))
    if exclude_arch:
        for arch in exclude_arch:
            task.excluded_arch.append(
                TaskExcludeArch(arch_id=Arch.by_name(arch).id))
    if exclude_osmajor:
        for osmajor in exclude_osmajor:
            task.excluded_osmajor.append(
                TaskExcludeOSMajor(osmajor=OSMajor.lazy_create(
                    osmajor=osmajor)))
    if requires:
        for require in requires:
            tp = TaskPackage.lazy_create(package=require)
            task.required.append(tp)
    if runfor:
        for run in runfor:
            task.runfor.append(TaskPackage.lazy_create(package=run))
    return task
Example #4
0
def create_task(name=None, exclude_arches=None, exclusive_arches=None,
        exclude_osmajors=None, exclusive_osmajors=None, version=u'1.0-1',
        uploader=None, owner=None, priority=u'Manual', valid=None, path=None, 
        description=None, requires=None, runfor=None, type=None, avg_time=1200):
    if name is None:
        name = unique_name(u'/distribution/test_task_%s')
    if path is None:
        path = u'/mnt/tests/%s' % name
    if description is None:
        description = unique_name(u'description%s')
    if uploader is None:
        uploader = create_user(user_name=u'task-uploader%s' % name.replace('/', '-'))
    if owner is None:
        owner = u'*****@*****.**' % name.replace('/', '-')
    if valid is None:
        valid = True
    rpm = u'example%s-%s.noarch.rpm' % (name.replace('/', '-'), version)

    task = Task(name=name)
    task.rpm = rpm
    task.version = version
    task.uploader = uploader
    task.owner = owner
    task.priority = priority
    task.valid = valid
    task.path = path
    task.description = description
    task.avg_time = avg_time
    task.license = u'GPLv99+'
    if type:
        for t in type:
            task.types.append(TaskType.lazy_create(type=t))
    if exclude_arches:
       for arch in exclude_arches:
           task.excluded_arches.append(Arch.by_name(arch))
    if exclusive_arches:
        for arch in exclusive_arches:
            task.exclusive_arches.append(Arch.by_name(arch))
    if exclude_osmajors:
        for osmajor in exclude_osmajors:
            task.excluded_osmajors.append(OSMajor.lazy_create(osmajor=osmajor))
    if exclusive_osmajors:
        for osmajor in exclusive_osmajors:
            task.exclusive_osmajors.append(OSMajor.lazy_create(osmajor=osmajor))
    if requires:
        for require in requires:
            tp = TaskPackage.lazy_create(package=require)
            task.required.append(tp)
    if runfor:
        for run in runfor:
            task.runfor.append(TaskPackage.lazy_create(package=run))
    session.add(task)
    session.flush()
    log.debug('Created task %s', task.name)
    return task
Example #5
0
    def test_task_package_names_are_case_sensitive(self):
        test_package_name = '/distribution/beaker/dummy_for_bz681143'

        # There is a pre-existing TaskPackage in all lowercase...
        with session.begin():
            TaskPackage.lazy_create(package=u'opencryptoki')

        # But the task we are uploading has RunFor: openCryptoki, 
        # with uppercase C
        b = self.browser
        b.get(get_server_base() + 'tasks/new')
        b.find_element_by_id('task_task_rpm').send_keys(
            pkg_resources.resource_filename('bkr.inttest.server',
                                            'task-rpms/tmp-distribution-beaker-dummy_for_bz681143-1.0-1.noarch.rpm'))
        b.find_element_by_xpath('//button[text()="Upload"]').click()
        self.assert_task_upload_task_header(test_package_name)
        # Should have openCryptoki in correct case:
        self.assertEqual(self.get_task_info_field('Run For'), 'openCryptoki')
Example #6
0
def create_task(name=None, exclude_arch=None, exclude_osmajor=None, version=u'1.0-1',
        uploader=None, owner=None, priority=u'Manual', valid=None, path=None, 
        description=None, requires=None, runfor=None, type=None):
    if name is None:
        name = unique_name(u'/distribution/test_task_%s')
    if path is None:
        path = u'/mnt/tests/%s' % name
    if description is None:
        description = unique_name(u'description%s')
    if uploader is None:
        uploader = create_user(user_name=u'task-uploader%s' % name.replace('/', '-'))
    if owner is None:
        owner = u'*****@*****.**' % name.replace('/', '-')
    if valid is None:
        valid = True
    rpm = u'example%s-%s.noarch.rpm' % (name.replace('/', '-'), version)

    task = Task.lazy_create(name=name)
    task.rpm = rpm
    task.version = version
    task.uploader = uploader
    task.owner = owner
    task.priority = priority
    task.valid = valid
    task.path = path
    task.description = description
    if type:
        for t in type:
            task.types.append(TaskType.lazy_create(type=t))
    if exclude_arch:
       for arch in exclude_arch:
           task.excluded_arch.append(TaskExcludeArch(arch_id=Arch.by_name(arch).id))
    if exclude_osmajor:
        for osmajor in exclude_osmajor:
            task.excluded_osmajor.append(TaskExcludeOSMajor(osmajor=OSMajor.lazy_create(osmajor=osmajor)))
    if requires:
        for require in requires:
            tp = TaskPackage.lazy_create(package=require)
            task.required.append(tp)
    if runfor:
        for run in runfor:
            task.runfor.append(TaskPackage.lazy_create(package=run))
    return task
Example #7
0
 recipe.ks_meta = xmlrecipe.ks_meta
 recipe.kernel_options = xmlrecipe.kernel_options
 recipe.kernel_options_post = xmlrecipe.kernel_options_post
 # try parsing install options to make sure there is no syntax error
 try:
     InstallOptions.from_strings(recipe.ks_meta, recipe.kernel_options,
                                 recipe.kernel_options_post)
 except Exception as e:
     raise BX(_('Error parsing ks_meta: %s' % e))
 recipe.role = xmlrecipe.role
 if xmlrecipe.reservesys:
     recipe.reservation_request = RecipeReservationRequest(
         xmlrecipe.reservesys.duration)
 custom_packages = set()
 for xmlpackage in xmlrecipe.packages():
     package = TaskPackage.lazy_create(package='%s' % xmlpackage.name)
     custom_packages.add(package)
 for installPackage in xmlrecipe.installPackages():
     package = TaskPackage.lazy_create(package='%s' % installPackage)
     custom_packages.add(package)
 recipe.custom_packages = list(custom_packages)
 for xmlrepo in xmlrecipe.iter_repos():
     recipe.repos.append(RecipeRepo(name=xmlrepo.name, url=xmlrepo.url))
 for xmlksappend in xmlrecipe.iter_ksappends():
     recipe.ks_appends.append(RecipeKSAppend(ks_append=xmlksappend))
 xmltasks = []
 invalid_tasks = []
 for xmltask in xmlrecipe.iter_tasks():
     if hasattr(xmltask, 'fetch'):
         # If fetch URL is given, the task doesn't need to exist.
         xmltasks.append(xmltask)
Example #8
0
     # try evaluating the host_requires, to make sure it's valid
     recipe.distro_tree.systems_filter(user, recipe.host_requires)
 except StandardError, e:
     raise BX(_('Error in hostRequires: %s' % e))
 recipe.whiteboard = xmlrecipe.whiteboard or None #'' -> NULL for DB
 recipe.kickstart = xmlrecipe.kickstart
 if xmlrecipe.autopick:
     recipe.autopick_random = xmlrecipe.autopick.random
 if xmlrecipe.watchdog:
     recipe.panic = xmlrecipe.watchdog.panic
 recipe.ks_meta = xmlrecipe.ks_meta
 recipe.kernel_options = xmlrecipe.kernel_options
 recipe.kernel_options_post = xmlrecipe.kernel_options_post
 recipe.role = xmlrecipe.role
 for xmlpackage in xmlrecipe.packages():
     package = TaskPackage.lazy_create(package='%s' % xmlpackage.name)
     recipe.custom_packages.append(package)
 for installPackage in xmlrecipe.installPackages():
     package = TaskPackage.lazy_create(package='%s' % installPackage)
     recipe.custom_packages.append(package)
 for xmlrepo in xmlrecipe.iter_repos():
     recipe.repos.append(RecipeRepo(name=xmlrepo.name, url=xmlrepo.url))
 for xmlksappend in xmlrecipe.iter_ksappends():
     recipe.ks_appends.append(RecipeKSAppend(ks_append=xmlksappend))
 xmltasks = []
 invalid_tasks = []
 for xmltask in xmlrecipe.iter_tasks():
     if hasattr(xmltask, 'fetch'):
         # If fetch URL is given, the task doesn't need to exist.
         xmltasks.append(xmltask)
     elif Task.exists_by_name(xmltask.name, valid=True):