Example #1
0
def getBinary(binaryID, name):
    logger.info('Getting binary in c8y')
    url = "https://%s/inventory/binaries/%s" % (auth.get().tenant, binaryID)
    logger.debug('Requesting the following url: ' + str(url))
    response = requests.request("GET",
                                url,
                                headers=auth.get().headers,
                                data=auth.get().payload)
    logger.debug('Response from request with code : ' +
                 str(response.status_code))
    if response.status_code == 200:
        logger.info('Managed object exists in C8Y')
        try:
            file = './binary/' + str(name)
            with open(file, "wb") as code:
                code.write(response.content)
        except Exception as e:
            logger.error('Writing to disc failed due to: ' + str(e))
        logger.debug('File written')
        logger.debug('Returning True')
        return True
    else:
        logger.error('Receiving following status code %s' %
                     (str(response.status_code)))
        raise Exception
def getInternalID(externalID):
    try:
        logger.info(
            'Checking against indentity service what is internalID in C8Y')
        url = "https://%s/identity/externalIds/c8y_Serial/%s" % (
            auth.get().tenant, externalID)
        response = requests.request("GET",
                                    url,
                                    headers=auth.get().headers,
                                    data=auth.get().payload)
        logger.debug('Response from request: ' + str(response.text))
        logger.debug('Response from request with code : ' +
                     str(response.status_code))
        if response.status_code == 200:
            logger.info('Managed object exists in C8Y')
            json_data = json.loads(response.text)
            internalID = json_data['managedObject']['id']
            logger.info("The interalID for " + str(externalID) + " is " +
                        str(internalID))
            logger.debug('Returning the internalID')
            return internalID
        else:
            logger.warning('Response from request: ' + str(response.text))
            logger.warning('Got response with status_code: ' +
                           str(response.status_code))
            return False
    except Exception as e:
        logger.error('The following error occured: %s' % (str(e)))
        return False
def main():
    try:
        logger.debug(
            'Setting prefix within MQTT broker for machine from config file')
        logger.debug(
            'Initialising MQTT client with loaded credentials for listener')
        logger.info(utils.settings.basics()['deviceID'])
        client = mqtt.Client(client_id=utils.settings.basics()['deviceID'])
        logger.info('MQTT client with loaded credentials was initialised')
        client.username_pw_set(username=auth.get().MqttUser,
                               password=auth.get().MqttPwd)
        logger.info('Listening for callback on s/ds')
        client.message_callback_add('s/ds', on_message_msgs)
        client.message_callback_add('s/dc/c8y_ThinEdge', on_message_msgs)
        logger.info('Connecting to MQTT Broker')
        client.connect(auth.get().tenant, 1883, 60)
        topics = [("s/ds", 0), ("s/dc/c8y_ThinEdge", 0)]
        client.subscribe(topics)
        logger.info('Start Loop forever and listening')
        client.loop_forever()
    except Exception as e:
        logger.error('The following error occured: ' + str(e))
        client.stop_loop()
        logger.warning('Loop forever stopped, disconnecting')
        client.disconnect()
        logger.debug('disconnected')
def createExternalID(deviceID, internalID, type):
    logger.info('Create an external id for an existing managed object')
    try:
        url = "https://%s/identity/globalIds/%s/externalIds" % (
            auth.get().tenant, internalID)
        payload = "{\n\t\"externalId\": \"%s\",\n    \"type\": \"%s\"\n}" % (
            deviceID, type)
        response = requests.request("POST",
                                    url,
                                    headers=auth.get().headers,
                                    data=payload)
        logger.debug('Response from request: ' + str(response.text))
        logger.debug('Response from request with code : ' +
                     str(response.status_code))
        if response.status_code == 200 or response.status_code == 201:
            logger.info('Serial nummer entered')
            logger.debug('Receiving the following response %s' %
                         (str(response.text)))
            return True
        else:
            logger.warning('Response from request: ' + str(response.text))
            logger.warning('Got response with status_code: ' +
                           str(response.status_code))
            return False
    except Exception as e:
        logger.error('The following error occured: %s' % (str(e)))
def createEdgeDevice(externalID):
    try:
        logger.info('Checking for managed object in c8y with external ID %s' + externalID)
        url = "https://%s/inventory/managedObjects"%(auth.get().tenant)
        with open('./config/device.txt') as f:
            payload = f.read()
        payload = json.loads(payload)
        payload['name'] = "Gateway_%s"%(externalID)
        response = requests.request("POST", url, headers=auth.get().headers, data = json.dumps(payload))
        logger.debug('Requesting the following url: ' + str(url))
        logger.debug('Response from request: ' + str(response.text))
        logger.debug('Response from request with code : ' + str(response.status_code))
        if response.status_code == 200 or 201:
            logger.info('Device created')
            json_data = json.loads(response.text)
            API.identity.createExternalID(utils.settings.basics()[
                                        'deviceID'], json_data['id'], "c8y_Serial")
            logger.debug('Returning the managed Object')
            return True
        else:
            logger.warning('Response from request: ' + str(response.text))
            logger.warning('Got response with status_code: ' + str(response.status_code))
            return False
    except Exception as e:
        logger.error('The following error occured: %s' % (str(e)))
def createSmartRestTemplate():
    try:
        url = "https://%s/inventory/managedObjects" % (auth.get().tenant)
        with open('./config/smartRestTemplate.json') as f:
            payload = f.read()
        payload = json.loads(payload)
        response = requests.request("POST",
                                    url,
                                    headers=auth.get().headers,
                                    data=json.dumps(payload))
        logger.debug('Requesting the following url: ' + str(url))
        logger.debug('Response from request: ' + str(response.text))
        logger.debug('Response from request with code : ' +
                     str(response.status_code))
        if response.status_code == 200 or response.status_code == 201:
            logger.info('Device created')
            json_data = json.loads(response.text)
            API.identity.createExternalID("c8y_ThinEdge", json_data['id'],
                                          "c8y_SmartRest2DeviceIdentifier")
            logger.debug('Returning the managed Object')
            return True
        else:
            logger.warning('Response from request: ' + str(response.text))
            logger.warning('Got response with status_code: ' +
                           str(response.status_code))
            return False
    except Exception as e:
        logger.error('The following error occured: %s' % (str(e)))
Example #7
0
def getExternalID(internalID):
    logger.info(
        'Checking against indentity service what are the externalID´s for the device ID in C8Y'
    )
    url = "https://%s/identity/globalIds/%s/externalIds" % (auth.get().tenant,
                                                            internalID)
    response = requests.request("GET",
                                url,
                                headers=auth.get().headers,
                                data=auth.get().payload)
    logger.debug('Response from request: ' + str(response.text))
    logger.debug('Response from request with code : ' +
                 str(response.status_code))
    if response.status_code == 200:
        json_data = json.loads(response.text)
        if json_data['externalIds']:
            logger.info('Managed object exists in C8Y')
            externalID = {}
            for i in json_data:
                externalID[json_data['externalIds'][i]['type']] = json_data[
                    'externalIds'][i]['externalId']
            logger.info("The externalID´s for " + str(internalID) + "are " +
                        str(externalID))
            logger.debug('Returning the externalID')
            return externalID
        else:
            logger.warning('Managed object does not exist in C8Y')
    else:
        logger.error('Receiving following status code %s' %
                     (str(response.status_code)))
        raise Exception
def getPendingOperations(internalID):
    try:
        url = "https://%s/devicecontrol/operations?status=PENDING&deviceId=%s" % (
            auth.get().tenant, internalID)
        response = requests.request("GET",
                                    url,
                                    headers=auth.get().headers,
                                    data=auth.get().payload)
        logger.info('Response from request: ' + str(response.text))
        logger.info('Response from request with code : ' +
                    str(response.status_code))
        if response.status_code == 200:
            logger.info('Valid request')
            json_data = json.loads(response.text)
            logger.debug('Json response: %s' % (str(json_data)))
            logger.info('Checking if operations is not empty')
            if not json_data['operations']:
                logger.debug('Operations is empty, returns False')
                return False
            logger.info('Operation is not empty')
            logger.debug('Looping through operations')
            for operation in json_data['operations']:
                logger.debug('Current item: %s' % (str(operation)))
                operationsHandlerThread = threading.Thread(
                    target=deviceControl.operationsHandler.start,
                    kwargs=dict(internalID=auth.get().internalID,
                                operation=operation),
                    daemon=True)
                operationsHandlerThread.start()
        else:
            logger.warning('Got response with status_code: ' +
                           str(response.status_code))
            return False
    except Exception as e:
        logger.error('The following error occured: %s' % (str(e)))
def setOperationMode(operationID, status, text=''):
    try:
        mode = status
        url = "https://%s/devicecontrol/operations/%s" % (auth.get().tenant,
                                                          operationID)
        if mode == 'EXECUTING' or 'SUCCESSFUL' or 'FAILED':
            logger.info('Operation ' + str(mode))
            data = {}
            data['status'] = str(status)
            if mode == 'FAILED':
                data['failureReason'] = str(text)
            response = requests.request("PUT",
                                        url,
                                        headers=auth.get().headers,
                                        data=json.dumps(data))
        else:
            logger.error('Mode not known')
            return False
        logger.info('Response from request with code : ' +
                    str(response.status_code))
        if response.status_code == 200:
            logger.info('Operation successfully set to Executing')
            return True
        else:
            logger.error('Operation not successfully set to Executing')
            return False
    except Exception as e:
        logger.error('The following error occured: %s' % (str(e)))
Example #10
0
def updateManageObject(internalID, payload):
    logger.info('Update of managed Object')
    url = "https://%s/inventory/managedObjects/%s"%(auth.get().tenant, internalID)
    response = requests.request("PUT", url, headers=auth.get().headers, data = payload)
    logger.debug('Response from request: ' + str(response.text))
    logger.debug('Response from request with code : ' + str(response.status_code))
    if response.status_code == 200:
        logger.info('Managed object updated in C8Y')
        return True
    else:
        logger.warning('Managed object not updated in C8Y')
        raise Exception
Example #11
0
def getSpezificManagedObject(internalID):
    logger.info('Checking for managed object in c8y')
    url = "https://%s/inventory/managedObjects/%s"%(auth.get().tenant, internalID)
    logger.debug('Requesting the following url: ' + str(url))
    response = requests.request("GET", url, headers=auth.get().headers, data = auth.get().payload)
    logger.debug('Response from request: ' + str(response.text))
    logger.debug('Response from request with code : ' + str(response.status_code))
    if response.status_code == 200:
        logger.info('Managed object exists in C8Y')
        json_data = json.loads(response.text)
        return json_data
    else:
        logger.error('Receiving following status code %s'%(str(response.status_code)))
        raise Exception
def updateManageObject(internalID, payload):
    logger.info('Update of managed Object')
    try:
        url = "https://%s/inventory/managedObjects/%s"%(auth.get().tenant, internalID)
        response = requests.request("PUT", url, headers=auth.get().headers, data = payload)
        logger.debug('Response from request: ' + str(response.text))
        logger.debug('Response from request with code : ' + str(response.status_code))
        if response.status_code == 200 or response.status_code == 201:
            logger.info('Managed object updated in C8Y')
            return True
        else:
            logger.warning('Managed object not updated in C8Y')
            return False
    except Exception as e:
        logger.error('The following error occured: %s' % (str(e)))
def checkSmartRestTemplateExists():
    try:
        logger.info('Checking against indentity service')
        url = "https://%s/identity/externalIds/c8y_SmartRest2DeviceIdentifier/c8y_ThinEdge" % (
            auth.get().tenant)
        response = requests.request("GET", url, headers=auth.get().headers)
        logger.debug('Response from request: ' + str(response.text))
        logger.debug('Response from request with code : ' +
                     str(response.status_code))
        if response.status_code == 404:
            logger.info('SmartRule does not exist in C8Y')
            createSmartRestTemplate()
        else:
            logger.debug('Skippung because SmartRest Template exist')
    except Exception as e:
        logger.error('The following error occured: %s' % (str(e)))
Example #14
0
def event(topic, payload):
    message = {}
    message['type'] = "c8y_PLC_Data"
    message['source'] = {"id": str(auth.get().internalID)}
    message['time'] = datetime.datetime.strptime(
        str(datetime.datetime.utcnow()),
        '%Y-%m-%d %H:%M:%S.%f').isoformat() + "Z"
    try:
        print(payload)
        list = payload.decode('utf-8').replace("\"", "").split(',')
        print(list)
        if "Schichtdickensensor" in topic:
            series = {}
            series["Qualitaet"] = {"value": float(list[0])}
            series["Schichtdicke"] = {"value": float(list[1])}
            series["Inkrementalgeber"] = {"value": float(list[2])}
            message[str(topic)] = series
            logger.info(json.dumps(message))
            API.measurement.createMeasurement(json.dumps(message))
        elif "Laserscanner" in topic:
            series = {}
            measurement = {}
            series["Drahtseite kurz"] = {"value": list[0]}
            series["Drahtseite lang"] = {"value": list[1]}
            series["Drahtposition 1"] = {"value": list[2]}
            series["Drahtposition 2"] = {"value": list[3]}
            series["Inkrementalgeber"] = {"value": list[4]}
            measurement[str(topic)] = series
            API.measurement.createMeasurement(json.dumps(message))
        else:
            raise ValueError
    except ValueError as e:
        return logger.error('Not valid json or valid structure')
    except Exception as e:
        logger.error('The following error occured: ' + str(e))
def createMeasurement(payload):
    logger.info('Creating measurements in c8y')
    try:
        url = "https://%s/measurement/measurements"%(auth.get().tenant)
        response = requests.request("POST", url, headers=auth.get().headers, data = payload)
        logger.debug('Sending data to the following url: ' + str(url))
        logger.debug('Response from request: ' + str(response.text))
        logger.debug('Response from request with code : ' + str(response.status_code))
        if response.status_code == 200 or 201:
            logger.info('Measurment send')
            return True
        else:
            logger.warning('Response from request: ' + str(response.text))
            logger.warning('Got response with status_code: ' +
                           str(response.status_code))
    except Exception as e:
        logger.error('The following error occured: %s' % (str(e)))
def triggerPendingOPerations():
    try:
        threadEvent = threading.Thread(
            target=API.operations.getPendingOperations,
            kwargs=dict(internalID=str(auth.get().internalID)),
            daemon=True)
        threadEvent.start()
    except Exception as e:
        logger.error('The following error occured: ' + str(e))
Example #17
0
def createMeasurement(payload):
    logger.debug('Creating measurements in c8y')
    url = "https://%s/measurement/measurements" % (auth.get().tenant)
    response = requests.request("POST",
                                url,
                                headers=auth.get().headers,
                                data=payload)
    logger.debug('Sending data to the following url: ' + str(url))
    logger.debug('Response from request: ' + str(response.text))
    logger.debug('Response from request with code : ' +
                 str(response.status_code))
    if response.status_code == 200 or 201:
        logger.debug('Measurment send')
        return True
    else:
        logger.error('Receiving following status code %s' %
                     (str(response.status_code)))
        raise Exception
Example #18
0
def getEventsFromManagedObject(internalID,
                               pageSize=2500,
                               days=0,
                               currentPage=1):
    logger.info('Checking for events of managed object in c8y')
    try:
        if days != 0:
            dateFrom = date.today()
            dateTo = date.today() - timedelta(days)
            url = "https://%s/event/events?pageSize=%s&source=%s&dateFrom=%s&dateTo=%s&currentPage=%s&withTotalPages=True" % (
                auth.get().tenant,
                pageSize,
                internalID,
                dateFrom,
                dateTo,
                currentPage,
            )
        else:
            url = "https://%s/event/events?pageSize=%s&source=%s&currentPage=%s&withTotalPages=True" % (
                auth.get().tenant,
                pageSize,
                internalID,
                currentPage,
            )
        logger.debug('Requesting the following url: ' + str(url))
        response = requests.request("GET",
                                    url,
                                    headers=auth.get().headers,
                                    data=auth.get().payload)
        logger.debug('Response from request: ' + str(response.text))
        logger.debug('Response from request with code : ' +
                     str(response.status_code))
        if response.status_code == 200:
            logger.info('Received events')
            json_data = json.loads(response.text)
            logger.debug('Receiving the following response %s' %
                         (str(response.text)))
            return json_data
        else:
            logger.warning('Response from request: ' + str(response.text))
            logger.warning('Got response with status_code: ' +
                           str(response.status_code))
    except Exception as e:
        logger.error('The following error occured: %s' % (str(e)))
def start(operation, operationID):
    try:
        API.operations.setOperationMode(operationID, 'EXECUTING')
        configEvent = {}
        configEvent['c8y_Configuration'] = operation['c8y_Configuration']
        logger.debug('Created the following config: %s' % (str(configEvent)))
        API.inventory.updateManageObject(auth.get().internalID,
                                         json.dumps(configEvent))
    except Exception as e:
        logger.error('The following error occured: %s' % (str(e)))
Example #20
0
def getEvents(pageSize=2500, days=0, currentPage=1):
    logger.info('Checking for events in c8y')
    if days != 0:
        dateFrom = date.today()
        dateTo = date.today() - timedelta(days)
        url = "https://%s/event/events?pageSize=%s&dateFrom=%s&dateTo=%s&currentPage=%s&withTotalPages=True"%(auth.get().tenant, pageSize, dateFrom, dateTo, currentPage, )
    else:
        url = "https://%s/event/events?pageSize=%s&currentPage=%s&withTotalPages=True"%(auth.get().tenant, pageSize, currentPage, )
    logger.debug('Requesting the following url: ' + str(url))
    response = requests.request("GET", url, headers=auth.get().headers, data = auth.get().payload)
    logger.debug('Response from request: ' + str(response.text))
    logger.debug('Response from request with code : ' + str(response.status_code))
    if response.status_code == 200:
        logger.info('Received events')
        json_data = json.loads(response.text)
        return json_data
    else:
        logger.error('Receiving following status code %s'%(str(response.status_code)))
        raise Exception
Example #21
0
def setOperationMode(operationID, status):
    mode = status
    url = "https://%s/devicecontrol/operations/%s" % (auth.get().tenant,
                                                      operationID)
    if mode == 'EXECUTING' or 'SUCCESSFUL' or 'FAILED':
        logger.info('Operation ' + str(mode))
        response = requests.request("PUT",
                                    url,
                                    headers=auth.get().headers,
                                    data='''{ "status": "''' + str(status) +
                                    '''"}''')
    else:
        logger.error('Mode not known')
        raise Exception
    logger.info('Response from request with code : ' +
                str(response.status_code))
    if response.status_code == 200:
        logger.info('Operation successfully set to Executing')
        return True
    else:
        logger.error('Operation not successfully set to Executing')
        raise Exception
Example #22
0
def createExternalID(deviceID, internalID):
    logger.info('Create an external id for an existing managed object')
    url = "https://%s/identity/globalIds/%s/externalIds" % (auth.get().tenant,
                                                            internalID)
    payload = "{\n\t\"externalId\": \"%s\",\n    \"type\": \"c8y_Serial\"\n}" % (
        deviceID)
    response = requests.request("POST",
                                url,
                                headers=auth.get().headers,
                                data=payload)
    logger.debug('Response from request: ' + str(response.text))
    logger.debug('Response from request with code : ' +
                 str(response.status_code))
    if response.status_code == 200:
        logger.info('Serial nummer entered')
        json_data = json.loads(response.text)
        logger.debug('Receiving the following response %s' %
                     (str(response.text)))
        return True
    else:
        logger.error('Receiving following status code %s' %
                     (str(response.status_code)))
        return False
Example #23
0
def device():
    device = {}
    try:
        managedDeviceObject = API.inventory.getSpezificManagedObject(
            auth.get().internalID)['c8y_Configuration']['config'].replace(
                '\n', '').split(';')
        for counter, value in enumerate(managedDeviceObject):
            if len(value) > 0:
                device[str(value.split('=')[0])] = value.split('=')[1]
            else:
                pass
        return device
    except Exception as e:
        logger.error('The following error occured: %s' % (str(e)))
        return device
Example #24
0
def getCPUStats():
    payload = {}
    try:
        payload['source'] = {"id": str(auth.get().internalID)}
        payload['type'] = "c8y_ThinEdge_Device_Stats"
        payload['time'] = datetime.datetime.strptime(
            str(datetime.datetime.utcnow()),
            '%Y-%m-%d %H:%M:%S.%f').isoformat() + "Z"
        cpu = {}
        cpu['load'] = {'value': psutil.cpu_percent(0)}
        payload['CPU'] = cpu
        return payload
    except Exception as e:
        logger.error('The following error occured: %s' % (str(e)))
        return payload
def start():
    logger.info('Checking for credentials')
    if not path.exists('./config/credentials.key'):
        logger.info('No credentials found, starting registration')
        deviceRegistration.registrationProcess.start()
    logger.info('Credentials available')
    logger.info('Starting checking of existing device')
    if API.identity.getInternalID(
            utils.settings.basics()['deviceID']) is False:
        logger.info('No device found in c8y, starting edge device creation.')
        deviceRegistration.newDeviceRegistration.createEdgeDevice(
            utils.settings.basics()['deviceID'])
    auth.get().internalID = API.identity.getInternalID(
        utils.settings.basics()['deviceID'])
    utils.settings.device()
    deviceControl.smartRest.checkSmartRestTemplateExists()
    logger.info('Finishing start sequency')
Example #26
0
def getDiskStats():
    payload = {}
    try:
        payload['source'] = {"id": str(auth.get().internalID)}
        payload['type'] = "c8y_ThinEdge_Device_Stats"
        payload['time'] = datetime.datetime.strptime(
            str(datetime.datetime.utcnow()),
            '%Y-%m-%d %H:%M:%S.%f').isoformat() + "Z"
        disk = {}
        disk['total'] = {'value': psutil.disk_usage('/').total}
        disk['used'] = {'value': psutil.disk_usage('/').used}
        disk['free'] = {'value': psutil.disk_usage('/').free}
        disk['percent'] = {'value': psutil.disk_usage('/').percent}
        payload['Disk'] = disk
        return payload
    except Exception as e:
        logger.error('The following error occured: %s' % (str(e)))
        return payload
Example #27
0
def getMemoryStats():
    payload = {}
    try:
        payload['source'] = {"id": str(auth.get().internalID)}
        payload['type'] = "c8y_ThinEdge_Device_Stats"
        payload['time'] = datetime.datetime.strptime(
            str(datetime.datetime.utcnow()),
            '%Y-%m-%d %H:%M:%S.%f').isoformat() + "Z"
        memory = {}
        memory['free'] = {"value": psutil.virtual_memory().free}
        memory['used'] = {"value": psutil.virtual_memory().used}
        memory['total'] = {"value": psutil.virtual_memory().total}
        memory['percent'] = {"value": psutil.virtual_memory().percent}
        payload['Virtual Memory'] = memory
        return payload
    except Exception as e:
        logger.error('The following error occured: %s' % (str(e)))
        return payload
Example #28
0
def operationClassification(operation, operationID):
    try:
        if 'c8y_Restart' in str(operation):
            logger.info('Found c8y_Restart operation')
            time.sleep(randint(0,2))
            API.operations.setOperationMode(operationID, 'EXECUTING')
            time.sleep(randint(0,5))
            choice=random.choice(['SUCCESSFUL','FAILED'])
            API.operations.setOperationMode(operationID, choice)
        elif 'c8y_Configuration' in str(operation):
            logger.info('Found c8y_Configuration operation')
            try:
                deviceControl.configurationUpdate.start(operation, operationID)
                API.operations.setOperationMode(operationID, 'SUCCESSFUL')
            except Exception as e:
                logger.error('The following error occured: %s'%(str(e)))
                API.operations.setOperationMode(operationID, 'FAILED')
        elif 'c8y_Software' in str(operation):
            logger.info('Found c8y_Software operation')
            time.sleep(randint(0,2))
            API.operations.setOperationMode(operationID, 'EXECUTING')
            time.sleep(randint(0,5))
            choice=random.choice(['SUCCESSFUL','FAILED'])
            logger.debug('Choice is %s'%(str(choice)))
            API.operations.setOperationMode(operationID, choice)
        elif 'c8y_Firmware' in str(operation):
            logger.info('Found c8y_Firmware operation')
            time.sleep(randint(0,2))
            API.operations.setOperationMode(operationID, 'EXECUTING')
            time.sleep(randint(0,5))
            choice=random.choice(['SUCCESSFUL','FAILED'])
            logger.debug('Choice is %s'%(str(choice)))
            API.operations.setOperationMode(operationID, choice)
        elif 'c8y_Command' in str(operation):
            logger.info('Found c8y_Command operation')
            API.operations.setOperationMode(operationID, 'EXECUTING')
            time.sleep(randint(0,5))
            choice=random.choice(['SUCCESSFUL','FAILED'])
            API.operations.setOperationMode(operationID, choice)
        elif 'c8y_RemoteAccessConnect' in str(operation):
            logger.info('Found c8y_RemoteAccessConnect operation')
            API.operations.setOperationMode(operationID, 'EXECUTING')
            connect = operation['c8y_RemoteAccessConnect']
            device_proxy = DeviceProxy(connect['hostname'], connect['port'], None, connect['connectionKey'], auth.get().tenantInstance, auth.get().tenantID, utils.settings.credentials()['c8yUser'],utils.settings.credentials()['c8yPassword'], None)
            try:
                device_proxy.connect()
                API.operations.setOperationMode(operationID, 'SUCCESSFUL')
            except Exception as e:
                logger.error('The following error occured: %s'%(str(e)))
                API.operations.setOperationMode(operationID, 'FAILED')
        else:
            logger.warning('Unknown operation type')
    except Exception as e:
        logger.error('The following error occured: ' + str(e))
Example #29
0
def start():
    auth.get().internalID = API.identity.getInternalID(utils.settings.basics()['deviceID'])
    logger.info('Finishing start sequency')