Example #1
0
def real_main(release_url=None,
              casefile_path=None,
              upload_build_id=None,
              upload_release_name=None):
    """Runs diff_my_images."""
    coordinator = workers.get_coordinator()
    fetch_worker.register(coordinator)
    coordinator.start()

    json_write(FLAGS.casefile_path)
    tests_json_path = FLAGS.casefile_path + "/tests_case.json"
    data = open(tests_json_path).read()
    tests = load_tests(data)

    item = DiffMyImages(release_url,
                        tests,
                        upload_build_id,
                        upload_release_name,
                        heartbeat=workers.PrintWorkflow)
    item.root = True

    coordinator.input_queue.put(item)
    coordinator.wait_one()
    coordinator.stop()
    coordinator.join()
Example #2
0
 def setUp(self):
     """Sets up the test harness."""
     FLAGS.queue_idle_poll_seconds = 0.01
     FLAGS.queue_busy_poll_seconds = 0.01
     self.coordinator = workers.get_coordinator()
     fetch_worker.register(self.coordinator)
     timer_worker.register(self.coordinator)
     self.coordinator.start()
Example #3
0
 def setUp(self):
     """Sets up the test harness."""
     FLAGS.queue_idle_poll_seconds = 0.01
     FLAGS.queue_busy_poll_seconds = 0.01
     self.coordinator = workers.get_coordinator()
     fetch_worker.register(self.coordinator)
     timer_worker.register(self.coordinator)
     self.coordinator.start()
Example #4
0
def run_workers():
    coordinator = workers.get_coordinator()
    capture_worker.register(coordinator)
    fetch_worker.register(coordinator)
    pdiff_worker.register(coordinator)
    timer_worker.register(coordinator)
    coordinator.start()
    logging.info('Workers started')
    return coordinator
Example #5
0
def run_workers():
    coordinator = workers.get_coordinator()
    capture_worker.register(coordinator)
    fetch_worker.register(coordinator)
    pdiff_worker.register(coordinator)
    timer_worker.register(coordinator)
    coordinator.start()
    logging.info('Workers started')
    return coordinator
Example #6
0
def real_main(start_url=None, ignore_prefixes=None, upload_build_id=None, upload_release_name=None):
    """Runs the site_diff."""
    coordinator = workers.get_coordinator()
    fetch_worker.register(coordinator)
    coordinator.start()

    item = SiteDiff(
        start_url=start_url,
        ignore_prefixes=ignore_prefixes,
        upload_build_id=upload_build_id,
        upload_release_name=upload_release_name,
        heartbeat=PrintWorkflow,
    )
    item.root = True

    coordinator.input_queue.put(item)
    coordinator.wait_one()
Example #7
0
def real_main(start_url=None,
              ignore_prefixes=None,
              upload_build_id=None,
              upload_release_name=None):
    """Runs the site_diff."""
    coordinator = workers.get_coordinator()
    fetch_worker.register(coordinator)
    coordinator.start()

    item = SiteDiff(start_url=start_url,
                    ignore_prefixes=ignore_prefixes,
                    upload_build_id=upload_build_id,
                    upload_release_name=upload_release_name,
                    heartbeat=PrintWorkflow)
    item.root = True

    coordinator.input_queue.put(item)
    coordinator.wait_one()
Example #8
0
def real_main(new_url=None,
              baseline_url=None,
              upload_build_id=None,
              upload_release_name=None):
    """Runs the ur_pair_diff."""
    coordinator = workers.get_coordinator()
    fetch_worker.register(coordinator)
    coordinator.start()

    item = UrlPairDiff(new_url,
                       baseline_url,
                       upload_build_id,
                       upload_release_name=upload_release_name,
                       heartbeat=PrintWorkflow)
    item.root = True

    coordinator.input_queue.put(item)
    coordinator.wait_one()
Example #9
0
def real_main(new_url=None,
              baseline_url=None,
              upload_build_id=None,
              upload_release_name=None):
    """Runs the ur_pair_diff."""
    coordinator = workers.get_coordinator()
    fetch_worker.register(coordinator)
    coordinator.start()

    item = UrlPairDiff(
        new_url,
        baseline_url,
        upload_build_id,
        upload_release_name=upload_release_name,
        heartbeat=PrintWorkflow)
    item.root = True

    coordinator.input_queue.put(item)
    coordinator.wait_until_interrupted()
Example #10
0
def real_main(release_url=None,
              tests_json_path=None,
              upload_build_id=None,
              upload_release_name=None):
    """Runs diff_my_images."""
    coordinator = workers.get_coordinator()
    fetch_worker.register(coordinator)
    coordinator.start()

    data = open(FLAGS.tests_json_path).read()
    tests = load_tests(data)

    item = DiffMyImages(
        release_url,
        tests,
        upload_build_id,
        upload_release_name,
        heartbeat=workers.PrintWorkflow)
    item.root = True

    coordinator.input_queue.put(item)
    coordinator.wait_one()
Example #11
0
def real_main(upload_build_id=None,
              upload_release_name=None,
              old_endpoint=None,
              new_endpoint=None,
              path='',
              prepend_old='',
              prepend_new='',
              run_name_depth=2):

    """Runs pair diffs between URL pairs in the given config file"""

    print "Gathering URLs from %s" % old_endpoint
    old_images = parse_urls(json_str=get_url(old_endpoint),
                            json_path=path,
                            url_append=prepend_old)

    print "Gathering URLs from %s" % new_endpoint
    new_images = parse_urls(json_str=get_url(new_endpoint),
                            json_path=path,
                            url_append=prepend_new)

    print 'Pairing images ...'
    data = map_urls(base_urls=old_images,
                    new_urls=new_images)

    coordinator = workers.get_coordinator()
    fetch_worker.register(coordinator)
    coordinator.start()

    item = UrlPairSetDiff(
        image_pairs=data['pairs'],
        upload_build_id=upload_build_id,
        upload_release_name=upload_release_name,
        heartbeat=PrintWorkflow,
        run_name_depth=run_name_depth)
    item.root = True

    coordinator.input_queue.put(item)
    coordinator.wait_one()
Example #12
0
def real_main(upload_build_id=None,
              upload_release_name=None,
              old_endpoint=None,
              new_endpoint=None,
              path='',
              prepend_old='',
              prepend_new='',
              run_name_depth=2):
    """Runs pair diffs between URL pairs in the given config file"""

    print "Gathering URLs from %s" % old_endpoint
    old_images = parse_urls(json_str=get_url(old_endpoint),
                            json_path=path,
                            url_append=prepend_old)

    print "Gathering URLs from %s" % new_endpoint
    new_images = parse_urls(json_str=get_url(new_endpoint),
                            json_path=path,
                            url_append=prepend_new)

    print 'Pairing images ...'
    data = map_urls(base_urls=old_images, new_urls=new_images)

    coordinator = workers.get_coordinator()
    fetch_worker.register(coordinator)
    coordinator.start()

    item = UrlPairSetDiff(image_pairs=data['pairs'],
                          upload_build_id=upload_build_id,
                          upload_release_name=upload_release_name,
                          heartbeat=PrintWorkflow,
                          run_name_depth=run_name_depth)
    item.root = True

    coordinator.input_queue.put(item)
    coordinator.wait_one()
Example #13
0
def release_and_run():

    passed_key = request.form.get('G5_DPXDT_API_KEY', default=None, type=str)
    if passed_key != os.environ['G5_DPXDT_API_KEY']:
        return flask.jsonify(error="invalid or missing API key")

    build = request.form.get('build', default=None, type=int)
    url = request.form.get('url', default=None, type=str)
    name = request.form.get('name', default=None, type=str)
    depth = request.form.get('depth', default=1, type=int)

    #name supercedes build
    if name:

        msg = "Build determined via name: %s. " % name
        bd = models.Build.query.filter_by(name=name).first()

        if not bd:
            bd = _create_build(name)
            msg += " Build did not exist, created it. "
            # return flask.jsonify(error="build by that name does not exist.")

        build = bd.id

    else:
        msg = "Build id taken from passed arg: %s. " % build

    #however we determined the build, make sure we have a url
    if not url:

        rel = models.Release.query.filter_by(build_id=build)\
        .order_by(models.Release.created.desc()).first()

        if not rel:
            return flask.jsonify(error="no url provided and no previous releases to extrapolate from.")

        url = rel.url
        msg += "url determined via last release in the build: %s. " % url

    else:
        msg += "url taken from passed arg: %s. " % url

    utils.jsonify_assert(build, 'must supply a build or a name')
    utils.jsonify_assert(url, 'must supply a url or a name')

    FLAGS.crawl_depth = depth

    pull_inject_code()

    coordinator = workers.get_coordinator()
    fetch_worker.register(coordinator)
    coordinator.start()

    sd = SiteDiff(
        start_url=url,
        ignore_prefixes=None,
        upload_build_id=build,
        upload_release_name=url,
        heartbeat=workers.PrintWorkflow)
    sd.root = True

    coordinator.input_queue.put(sd)

    msg += "Job(s) started."

    return flask.jsonify(
            success=True,
            msg=msg,
            )