예제 #1
0
def task(task_id):

    # get data from task
    task_data = utils.get_task_data(task_id)

    return render_template(
        'task.html',
        task_data=task_data)
예제 #2
0
def add_task():
    if request.method == 'GET':
        data = {}
        task_id = request.args.get('id', None)
        if task_id:
            # get data from task
            data = utils.get_task_data(task_id)

        return render_template(
            'add_task.html',
            data=data)

    if request.method == 'POST':
        errors = []
        data = {}
        data['name'] = request.form.get('nameInput', None)
        data['project'] = request.form.get('projectInput', None)
        data['environment'] = request.form.get('environmentInput', '')
        data['url'] = request.form.get('urlInput', None)
        data['category'] = request.form.get('categorySelect', None)
        data['type'] = request.form.get('typeSelect', None)
        data['status_code'] = request.form.get('statusCodeInput', '')
        data['request_body'] = request.form.get('requestBodyInput', '')
        data['content'] = request.form.get('contentInput', '')
        data['interval'] = request.form.get('intervalInput', None)
        data['mail_recipients'] = request.form.get('recipientsInput', '')
        data['id'] = request.form.get('taskIdInput', None)

        print data['id']
        # validate name
        if not data['name']:
            errors.append('Name is required')
        elif len(data['name']) > 40:
            errors.append('Name must be shorter than 41 characters')
        # validate project
        if not data['project']:
            errors.append('Project is required')
        elif len(data['project']) > 40:
            errors.append('Project must be shorter than 41 characters')
        # validate environment
        if len(data['environment']) > 40:
            errors.append('Environment must be shorter than 41 characters')
        # validate url
        if not data['url']:
            errors.append('URL is required')
        elif len(data['url']) > 150:
            errors.append('URL must be shorter than 151 characters')
        # validate category
        if not data['category'] in ['service', 'web']:
            errors.append('Wrong category value')
            if data['category'] == 'service':
                # validate request body
                if not data['request_body']:
                    errors.append('Request Body is required')
                else:
                    if len(data['request_body']) > 3000:
                        errors.append('Request Body must be shorter than 3001 characters')
        # validate test type
        if not data['type'] in ['status_code', 'content']:
            errors.append('Wrong Test Type value')
        elif data['type'] == 'status_code':
            # validate status code
            if not data['status_code']:
                errors.append('Status Code is required')
            elif len(data['status_code']) > 10:
                errors.append('Status Code must be shorter than 11 characters')
            elif not data['status_code'].isdigit():
                errors.append('Status Code must be an integer') 
        elif data['type'] == 'content':
            # validate content
            if not data['content']:
                errors.append('Content is required')
            elif len(data['content']) > 100:
                errors.append('Content must be shorter than 101 characters')
        # validate interval
        if not data['interval']:
            errors.append('Interval is required')
        else:
            if len(data['interval']) > 4:
                errors.append('Interal must be shorter than 5 characters')
            else:
                if not data['interval'].isdigit():
                    errors.append('Interval must be an integer')
                else:
                    if int(data['interval']) > 9999:
                        errors.append('Interval must be shorter than 1000')
                    if int(data['interval']) < 30:
                        errors.append('Interval must be greater than or equal 30')
        if data['mail_recipients']:
            if len(data['mail_recipients']) > 3000:
                errors.append('Mail Recipients must be shorter than 3001 characters')
        if not errors:
            # create new task
            utils.create_update_task(data)
            return redirect('/')
            
        else:
            return render_template(
                'add_task.html', 
                errors=errors,
                data=data)
예제 #3
0
encoders = []
decoders = []

# train autoencoders
for task in range(5):
    # create autoencoder for the current new task
    autoencoder = utils.build_autoencoder(base_autoencoder_name, data_shape,
                                          mean_image, std_image,
                                          autoencoder_hidden_layer_size,
                                          int(n_classes / n_tasks),
                                          weight_decay)

    # get train and test data for the current task
    X_train_task, y_train_task, X_test_task, y_test_task = utils.get_task_data(
        task,
        int(n_classes / n_tasks) * n_train_samples_per_class,
        int(n_classes / n_tasks) * n_test_samples_per_class, X_train, y_train,
        X_test, y_test)

    # train the autoencoder for the current task
    print(
        "---------------- Training autoencoder for the task %d ----------------"
        % task)
    autoencoder.compile(optimizer='Adagrad',
                        loss='categorical_crossentropy',
                        metrics=['accuracy'])
    autoencoder.fit(X_train_task,
                    y_train_task,
                    batch_size,
                    epochs,
                    shuffle=True)