def delete(self, _id): try: project = yield dbapi.find_one_by_id("projects", _id) project = projectmanager.Project(project) logging.info(project.value) #remove registered boards from broker if "boards" in project.value.keys(): for board in project.value["boards"]: apiresult = yield brokerapi.delete_user(board["ID"]) #remove over the air fw repo path: fwdir = os.path.join(settings.FIRMWARE_DIR, str(_id)) if os.path.exists(fwdir): shutil.rmtree(fwdir) #remove installer: installerdir = os.path.join( settings.DEVICE_INSTALLERS_REPO_PATH, settings.DEVICE_INSTALLER_NAME_TEMPLATE.format(str(_id))) if os.path.exists(installerdir): os.remove(installerdir) delete_result = yield dbapi.remove_by_id('projects', _id) logging.info(delete_result) self.set_status(200) except Exception as e: logging.error(e) self.set_status(500) error = {'error': '{}'.format(e)} self.write(json.dumps(error, default=json_util.default)) self.set_header("Content-Type", "application/json")
def delete(self, _id, macaddress): try: project = yield dbapi.find_one_by_id("projects", _id) project = projectmanager.Project(project) logging.info(project.value) #delete board ID board = project.remove_board(macaddress) logging.info('remove board: {}'.format(board)) apiresult = yield brokerapi.delete_user(board["ID"]) write_result = yield dbapi.update_by_id('projects', _id, {"boards": project.value["boards"]}) logging.info(write_result) except Exception as e: logging.error(e) self.set_status(500) error = {'error': '{}'.format(e)} self.write(json.dumps(error, default=json_util.default)) self.set_header("Content-Type", "application/json")