Esempio n. 1
0
def add_build():
    pool_id = request.get_json().get('pool')
    cards = request.get_json().get('cards')
    pool = Pool.query.filter_by(id=pool_id).first()
    build = Build(cards, pool)
    db.session.add(build)
    db.session.commit()
    return 'Build Added %s' % (build)
Esempio n. 2
0
def _create_build(branch, platform, builder, key_name='some-build'):
    build_key = Build(key_name=key_name,
                      branch=branch,
                      platform=platform,
                      builder=builder,
                      buildNumber=1,
                      revision=100,
                      timestamp=datetime.now()).put()
    return Build.get(build_key)
Esempio n. 3
0
def get_all_builds(subpath):
    path = "../h5ai/" + subpath
    build_list = []
    i = 0

    # Iterate through all builds & generate model list
    for filename in os.listdir(path):
        # Filter only APks, least like any other file type will appear, but still
        if filename.endswith(".apk"):
            relative_path = os.path.join(path, filename)
            timestamp = os.path.getmtime(relative_path)
            size = os.path.getsize(relative_path)

            # Remove letter chars for tag names
            if path.endswith("Nightly"):
                tag = re.sub("[^0-9]", "", filename)
            elif filename.startswith("AppWarden"):
                tag = re.search("_v(.*).apk", filename)[1]
            else:
                tag = re.search("_(.*).apk", filename)[1]

            # Calculate hashes
            md5 = hasher("md5", filename, path)
            sha256 = hasher("sha256", filename, path)

            # Get Gitlab releases url
            if filename.startswith("AuroraStore"):
                gitlab = constants.RELEASES_URL.format("AuroraStore", tag)
            if filename.startswith("AuroraDroid"):
                gitlab = constants.RELEASES_URL.format("AuroraDroid", tag)
            if filename.startswith("AppWarden"):
                gitlab = constants.RELEASES_URL.format("AppWarden", tag)
            if filename.startswith("AuroraWalls"):
                gitlab = constants.RELEASES_URL.format("AuroraWallpapers", tag)

            # Parse file as build
            build = Build(
                id=i,
                name=filename,
                tag_name=tag,
                timestamp=timestamp,
                size=size,
                md5_hash=md5,
                sha256_hash=sha256,
                download_url="{}/{}/{}".format(constants.DL_URL, subpath, filename),
                gitlab_url=gitlab,
            )

            i = i + 1

            # Add build to available build list
            build_list.append(build)

    if not build_list:
        return jsonify("List is empty!")
    else:
        return build_list
Esempio n. 4
0
 def create_build(build_number, revision):
     timestamp = datetime.now().replace(microsecond=0)
     build = Build(branch=branch,
                   platform=platform,
                   builder=builder,
                   buildNumber=build_number,
                   revision=revision,
                   timestamp=timestamp)
     build.put()
     return build
Esempio n. 5
0
 def _create_results(self, branch, platform, builder, test_name, values, timestamps=None, starting_revision=100):
     builds = []
     results = []
     for i, value in enumerate(values):
         build = Build(branch=branch, platform=platform, builder=builder,
             buildNumber=i, revision=starting_revision + i, timestamp=timestamps[i] if timestamps else datetime.now())
         build.put()
         result = TestResult(name=test_name, build=build, value=value)
         result.put()
         builds.append(build)
         results.append(result)
     return builds, results
Esempio n. 6
0
def test_release_builder_hiding(client):
    session = test_context._app.db.session(DB_DECLARATIVE_BASE)
    buildername = BUILDER_REL_PREFIX + 'test'
    release_build = Build(branch='branch',
                          builddir='test',
                          buildername=buildername)
    session.add(release_build)
    session.commit()
    rv = client.get('/clobberer/lastclobber/branch/by-builder/branch')
    eq_(rv.status_code, 200)
    clobbertimes = json.loads(rv.data)["result"]
    eq_(clobbertimes.get(buildername), None)
Esempio n. 7
0
def test_release_branch_hiding(client):
    session = test_context._app.db.session(DB_DECLARATIVE_BASE)
    # clear all the old branches
    session.query(Build).delete()
    session.commit()

    # users should not see this branch because it's associated with a release
    # builddir
    release_builddir = '{}builddir'.format(BUILDDIR_REL_PREFIX)
    session.add(Build(branch='see-no-evil', builddir=release_builddir))
    session.commit()

    rv = client.get('/clobberer/branches')
    eq_(json.loads(rv.data)['result'], [])
Esempio n. 8
0
def _create_results(branch, platform, builder, test_name, values):
    results = []
    for i, value in enumerate(values):
        build = Build(branch=branch,
                      platform=platform,
                      builder=builder,
                      buildNumber=i,
                      revision=100 + i,
                      timestamp=datetime.now())
        build.put()
        result = TestResult(name=test_name, build=build, value=value)
        result.put()
        Test.update_or_insert(test_name, branch, platform)
        results.append(result)
    return results
Esempio n. 9
0
def add_build(request, p_id):
    project = Project.objects.get(id=p_id)
    if request.POST:
        version = request.POST['version']
        description = request.POST['description']

        new_build = Build(version=version,
                          description=description,
                          project=project)

        new_build.save()
        return HttpResponseRedirect('/project/get/' + str(project.id) + '/')

    else:

        raise PermissionDenied
Esempio n. 10
0
def init_build():
    if request.method == 'POST':
        path = request.form['path']

        Logger.get().info("Pedido de testeo: %s" % (path, ))

        build = Build(path, g.user)
        build.save()

        datosjson = {"id": build.id, "path": build.path}

        Logger.get().info("Agregando pedido a cola de mensajes")
        beanstalk.put(json.dumps(datosjson))
    else:
        Logger.get().info("Pedido de builds por el usuario %s" %
                          (g.user.name, ))

        orderby = request.args.get('order', 'date')
        orderformat = request.args.get('list', 'desc')

        filterpath = request.args.get('path', None)
        filterfinished = request.args.get('finished', None)

        orderby = order_translate.get(orderby, Build.date)

        if orderformat == 'desc':
            orderby = orderby.desc()

        builds = Build.query.filter_by(user_id=g.user.id)

        if filterpath:
            builds = builds.filter_by(path=filterpath)
        if filterfinished:
            builds = builds.filter_by(finished=filterfinished)

        builds = builds.order_by(orderby).all()
        results = []

        for bid in builds:
            results.append(bid.jsonrep(True))

        return Response(json.dumps(results),
                        status=200,
                        mimetype="application/json")

    return jsonify(build.id)
Esempio n. 11
0
    def parse_build(xml_root):
        xml_build = xml_root.find('Build')
        xml_items = xml_root.find('Items')
        xml_skills = xml_root.find('Skills')
        xml_tree = xml_root.find('Tree')
        selected_tree = Parser.get_tree_link(xml_tree)

        # parse items
        item_slots = Parser.parse_item_slots(xml_items)
        skills = Parser.parse_skills(xml_skills)
        active_skill = xml_build.attrib['mainSocketGroup']

        build = Build(xml_build.attrib['level'],
                      xml_build.attrib['targetVersion'],
                      Parser.get_attrib_if_exists(xml_build, 'bandit'),
                      xml_build.attrib['className'],
                      xml_build.attrib['ascendClassName'], selected_tree,
                      skills, active_skill, item_slots)
        for player_stat in xml_build:
            if 'stat' in player_stat.attrib and 'value' in player_stat.attrib:
                build.append_stat(player_stat.attrib['stat'],
                                  player_stat.attrib['value'], player_stat.tag)
            else:
                log.info(
                    "Encountered unsupported player stat: k={}, v={}".format(
                        player_stat.tag, player_stat.attrib))

        # parse config
        for input in xml_root.find('Config'):
            if input.tag == "Input":
                extracted = [val for (key, val) in input.attrib.items()]
                if len(extracted) < 1:
                    continue
                build.append_conf(extracted[0], extracted[1])

        return build
Esempio n. 12
0
# given the build text, expect parsed items
from models import Build

trigger_details = """myusername
2016-09-13 10:43:13 CDT
DETAIL:
STACK: api
"""
execution_summary = """Status: SUCCEEDED
Duration: 11:13
"""

build = Build(trigger_details, execution_summary)
assert build.username == "myusername"
assert build.status == "SUCCEEDED"
assert build.status_is_valid()
assert build.duration == "11:13"
assert str(build.datetime_started) == "2016-09-13 10:43:13"