示例#1
0
def add_device(device_name):
    form = forms.AddNewDeviceForm(request.form)
    if form.validate():
        if len(running_context.Device.query.filter_by(name=device_name).all()) > 0:
            return json.dumps({"status": "device could not be added"})

        running_context.Device.add_device(name=device_name, username=form.username.data,
                                          password=form.pw.data, ip=form.ipaddr.data, port=form.port.data,
                                          app_server=g.app,
                                          extra_fields=form.extraFields.data)
        return json.dumps({"status": "device successfully added"})
    return json.dumps({"status": "device could not be added"})
示例#2
0
    def __func():
        form = forms.AddNewDeviceForm(request.form)
        if app_name in core.config.config.function_info['apps']:
            if len(
                    running_context.Device.query.filter_by(
                        name=device_name).all()) > 0:
                current_app.logger.error(
                    'Could not create device {0} for app {1}. '
                    'Device already exists.'.format(device_name, app_name))
                return {"error": "Device already exists."}, OBJECT_EXISTS_ERROR

            try:
                with open(core.config.paths.AES_key_path, 'rb') as key_file:
                    key = key_file.read()
            except (OSError, IOError) as e:
                current_app.logger.error(
                    'Error loading AES key from from {0}: {1}'.format(
                        core.config.paths.AES_key_path, e))

            if key:
                aes = pyaes.AESModeOfOperationCTR(key)
                pw = form.pw.data
                enc_pw = aes.encrypt(pw)
            else:
                current_app.logger.error(
                    'Could not create device {0} for app {1}. '
                    'Could not get key from AES key file'.format(
                        device_name, app_name))
                return {
                    "error": "Could not read key from AES key file."
                }, INVALID_INPUT_ERROR

            running_context.Device.add_device(
                name=device_name,
                username=form.username.data,
                password=enc_pw,
                ip=form.ipaddr.data,
                port=form.port.data,
                app_server=app_name,
                extra_fields=form.extraFields.data)
            return {}, OBJECT_CREATED
        else:
            current_app.logger.error(
                'Could not create device {0} for app {1}. '
                'App does not exist'.format(device_name, app_name))
            return {"error": "App does not exist."}, OBJECT_DNE_ERROR
示例#3
0
def devices():
    return {
        "apps": running_context.get_apps(),
        "form": forms.AddNewDeviceForm(),
        "editDeviceform": forms.EditDeviceForm()
    }