Пример #1
0
def connect():
    """
	connects to the database;
	"""

    try:
        conn = psycopg2.connect(
            "dbname=base user='******' host='localhost' password='******'")
        conn.autocommit = True
    except:
        logger.log("Unable to connect to the database")

    return conn
Пример #2
0
def getObjectById(objId):
    """
	gets object from the database;
	:- objId: type = str;
	:- return: type = tuple, info = (bool, result dict);
	"""

    logger.log('Searching for object %s in the database...' % objId)

    # init connection to the database
    conn = connect()

    # define cursor
    cur = conn.cursor()

    try:
        cur.execute("select * from graph.nodes where id = '%s'" % objId)
        dbAnswer = cur.fetchall()
        cur.close()
        conn.close()

        logger.log('Object has %s been found.' % objId)
    except:
        logger.log('Failed to find object %s' % objId, logType='error')
        return (False, None)

    # converting result to dict
    coulumns = ['id', 'name', 'type', 'initial', 'final', 'way']
    result = []
    for row in dbAnswer:
        result.append(dict(zip(coulumns, row)))

    return (True, result)
def uploadSuccess(request, model_pk, weight_pk):

    model_file = get_object_or_404(ModelFile, pk=model_pk)
    weight_file = get_object_or_404(WeightFile, pk=weight_pk)

    context = {
        'model_file': model_file,
        'weight_file': weight_file,
    }

    err = kl.load(str(model_file.model_file), str(weight_file.weight_file))
    #Some Errors in this code
    # err value is 1 when weight file fail to load also.
    if err == 1:
        log(request.user,
            "Model file : {0} fail to load".format(str(model_file.model_file)),
            important=True)
        messages.add_message(request, messages.ERROR,
                             'Model file fail to load')
        return HttpResponseRedirect(reverse('upload'))
    elif err == 2:
        log(request.user,
            "Weight file : {0} fail to load".format(
                str(weight_file.weight_file)),
            important=True)
        messages.add_message(request, messages.ERROR,
                             'Weight file fail to load')
        return HttpResponseRedirect(reverse('upload'))

    else:
        log(
            request.user,
            "Model file : {0}, Weight file : {1} successfully loaded".format(
                str(model_file.model_file), str(weight_file.weight_file)))
        return render(request, 'upload_success.html', context)
Пример #4
0
def addNode(nodeId, name, initial, final):
    """
	adds node to the database;
	:- nodeId: type=str;
	:- name: type=str;
	:- initial: type=list;
	:- final: type=list;
	:- return: type=bool;
	"""

    logger.log('Adding node %s to the database...' % nodeId)
    objType = 'node'

    # init connection to the database
    conn = connect()

    # define cursor
    cur = conn.cursor()

    # change format for postgres syntax
    initial = str(initial).replace("'", '')
    initial = str(initial)[1:-1]
    final = str(final).replace("'", '')
    final = str(final)[1:-1]

    try:
        cur.execute(
            "insert into graph.nodes values('%s','%s','%s','{%s}','{%s}',%s)" %
            (nodeId, name, objType, initial, final, 'default'))
        cur.close()
        conn.close()

        logger.log('Node %s has been successfully added to the database.' %
                   nodeId)
        return True
    except:
        logger.log('Node %s addition to the database has failed.' % nodeId,
                   logType='error')
        return False
def uploadFile(request):

    storage = messages.get_messages(request)
    storage.used = True

    if request.method == 'POST':

        weight_file = WeightFile()
        model_file = ModelFile()

        weight_file.uploader = request.user
        model_file.uploader = request.user

        weight_file_form = WeightFileUploadForm(request.POST,
                                                request.FILES,
                                                instance=weight_file)
        model_file_form = ModelFileUploadForm(request.POST,
                                              request.FILES,
                                              instance=model_file)

        if weight_file_form.is_valid() and model_file_form.is_valid():

            weight_file_form.save()
            model_file_form.save()

            model_file_objects = ModelFile.objects.exclude(pk=model_file.pk)
            weight_file_objects = WeightFile.objects.exclude(pk=weight_file.pk)

            print("Uploader : ", str(weight_file.uploader))
            log(
                weight_file.uploader,
                "Weight file : {0} successfully uploaded".format(
                    weight_file.weight_file))
            log(
                model_file.uploader,
                "Model file : {0} successfully uploaded".format(
                    model_file.model_file))
            for model_files in model_file_objects:
                log(
                    weight_file.uploader,
                    "Weight file id : {0}(File : {1}) Deleted.".format(
                        str(model_files.id), model_files.model_file))
                model_files.delete()

            for weight_files in weight_file_objects:
                log(
                    weight_file.uploader,
                    "Weight file id : {0}(File : {1}) Deleted.".format(
                        str(weight_files.id), weight_files.weight_file))
                weight_files.delete()

            messages.add_message(request, messages.SUCCESS, 'Upload Success!')

            return HttpResponseRedirect(
                reverse('upload-success',
                        args=(str(model_file.pk), str(weight_file.pk))))

        elif not model_file_form.is_valid() and not weight_file_form.is_valid(
        ):
            messages.add_message(request, messages.ERROR,
                                 'Weight File and Model File Upload Failed')
            log(weight_file.uploader,
                'Weight file and Model file Upload Failed',
                important=True)
        elif not model_file_form.is_valid():
            messages.add_message(request, messages.ERROR,
                                 'Model file Upload Failed')
            log(weight_file.uploader,
                'Model file Upload Failed',
                important=True)
        elif not weight_file_form.is_valid():
            messages.add_message(request, messages.ERROR,
                                 'Weight file Upload Failed')
            log(weight_file.uploader,
                'Weight file Upload Failed',
                important=True)

    weight_form = WeightFileUploadForm()
    model_form = ModelFileUploadForm()
    context = {
        'weight_form': weight_form,
        'model_form': model_form,
    }
    return render(request, 'weight_upload.html', context)