def post(self): try: form = request.form #the form submitted SID = form["sessionId"] #gets SID from cookie session = AuthenticationService.getSession( SID) #uses SID to get session from db user = session["user"] #gets user from session # found user, remove their datasets try: Dataset.objects(author=user).delete() except: return Response("Error deleting datasets.", status=403) # once datasets have been removed, remove user from users try: # log out before deletion sessionId = request.form["sessionId"] AuthenticationService.logout(sessionId) # remove user with query by email user.delete() except: return Response("Error deleting user.", status=403) return Response("Account deleted.", status=200) except: return Response("Error getting user from session.", status=403)
def addInstance(cluster_id, instance_id, write_DB=True): cluster = ClusterManager.getCluster(cluster_id) message = "" if not cluster: message = "ClusterManager--Add the instance to cluster failed. The cluster is not found. (cluster_id = %s)" % cluster_id # result = {"code": "1", "clusterId":cluster_id, "message":message} result = Response(code="failed", message=message, data={"clusterId": cluster_id}) return result else: try: if not ClusterManager._checkInstanceNOTOverlappingForAllCluster(instance_id): return Response(code="failed", message="instance %s is already being protected" % instance_id, data={"instance": instance_id}) result = cluster.addInstance(instance_id) if write_DB: ClusterManager.syncToDatabase() logging.info( "ClusterManager--Add instance success , instance_id : %s , cluster_id : %s" % ( instance_id, cluster_id)) return result except Exception as e: print str(e) message = "ClusterManager --add the instacne fail.instance_id : %s , cluster_id : %s" % ( instance_id, cluster_id) + str(e) logging.error(message) # result = {"code": "1", "clusterId": cluster_id, "message": message} result = Response(code="failed", message=message, data={"clusterId": cluster_id}) return result
def _addToClusterList(cluster_name, cluster_id=None): try: # result = None if cluster_id: cluster = Cluster(id=cluster_id, name=cluster_name) ClusterManager._cluster_dict[cluster_id] = cluster message = "ClusterManager -syncofromDB-- createCluster._addToCluster success,cluster id = %s" % cluster_id logging.info(message) # result = {"code": "0", "clusterId":cluster_id,"message": message} result = Response(code="succeed", message=message, data={"clusterId": cluster_id}) return result else: # start add to cluster list cluster_id = str(uuid.uuid4()) cluster = Cluster(id=cluster_id, name=cluster_name) ClusterManager._cluster_dict[cluster_id] = cluster message = "ClusterManager - createCluster._addToClusterList success,cluster id = %s" % cluster_id logging.info(message) # result = {"code": "0","clusterId":cluster_id, "message":message} result = Response(code="succeed", message=message, data={"clusterId": cluster_id}) return result except Exception as e: message = "ClusterManager - createCluster._addToCluster fail,cluster id : %s" % cluster_id + str(e) logging.error(message) # result = {"code": "1","clusterId":cluster_id, "message": message} result = Response(code="failed", message=message, data={"clusterId": cluster_id}) return result
def addNode(self, node_name_list): # create node list message = "" try: if node_name_list == []: raise Exception for node_name in node_name_list: if self._isInComputePool(node_name): # print node_name_list node = Node(name=node_name, cluster_id=self.id) self.node_list.append(node) node.startDetectionThread() message = "Cluster--The node %s is added to cluster." % self.getAllNodeStr( ) logging.info(message) # result = {"code": "0","clusterId": self.id,"node":node_name, "message": message} result = Response(code="succeed", message=message, data={ "cluster_id": self.id, "node": node_name }) else: message += "the node %s is illegal. " % node_name logging.error(message) except Exception as e: print str(e) message = "Cluster-- add node fail , some node maybe overlapping or not in compute pool please check again! The node list is %s." % ( self.getAllNodeStr()) logging.error(message) # result = {"code": "1", "clusterId": self.id, "message": message} result = Response(code="failed", message=message, data={"cluster_id": self.id}) finally: return result
def addNode(cluster_id, node_name_list, write_DB=True): message = "" tmp = list(set(node_name_list)) # remove duplicate for node_name in tmp[:]: if not ClusterManager._checkNodeOverlappingForAllCluster(node_name): print "%s is already in a HA cluster. " % node_name message += "%s is overlapping node" % node_name tmp.remove(node_name) if tmp == []: return Response(code="failed", message="node overlapping %s" % (str(node_name_list)), data={"overlapping_node":node_name_list}) cluster = ClusterManager.getCluster(cluster_id) if not cluster: message += "ClusterManager--Add the node to cluster failed. The cluster is not found. (cluster_id = %s)" % cluster_id # result = {"code": "1", "clusterId":cluster_id, "message":message} result = Response(code="failed", message=message, data={"clusterId": cluster_id}) return result else: try: result = cluster.addNode(tmp) logging.info("ClusterManager--add node success.cluster id is %s ,node is %s " % (cluster_id, tmp)) if result.code == "succeed" and write_DB: ClusterManager.syncToDatabase() return result except Exception as e: message += "add node fail. node not found. (node_name = %s)" % tmp +str(e) logging.error(message) # result = {"code": "1", "clusterId": cluster_id, "message": message} result = Response(code="failed", message=message, data={"clusterId": cluster_id}) return result
def get(pageNumber): retList = [] datasets = [] user = AuthenticationService.verifySessionAndReturnUser( request.cookies["SID"]) allDatasets = Dataset.objects.filter(Q(public=True) | Q( author=user)).order_by('-dateCreated') if pageNumber == "all": datasets = allDatasets elif pageNumber == "0": datasets = allDatasets[:16] else: datasetIndex = 16 + 12 * (int(pageNumber) - 1) datasets = allDatasets[datasetIndex:datasetIndex + 12] if len(datasets) == 0: return Response("No datasets matching the query were found", status=400) for dataset in datasets: retList.append(DatasetService.createDatasetInfoObject(dataset)) return Response(retList)
def send_message(self, message: str) -> tuple: try: self.client.sendall(bytearray([1, 125]) + bytes(message, 'utf-8')) return Response(ResponseType.CLIENT_MESSAGE_SENT).message() except BrokenPipeError: self.stop_client() return Response(ResponseType.CLIENT_CONNECTION_LOST).message()
def _add_to_cluster_list(cluster_name, layers_string): try: cluster = Cluster(cluster_name, layers_string) ResourceManager._cluster_dict[cluster_name] = cluster message = "ResourceManager -sync to db -- create_cluster._add_to_cluster_list success, cluster_name : %s , protected_layers_string : %s" % ( cluster_name, layers_string) logging.info(message) result = Response(code="succeed", message=message, data={ "cluster_name": cluster_name, "protected_layers_string": layers_string }) return result except Exception as e: message = "ResourceManager - create_cluster._add_to_cluster_list fail,cluster_name : %s, protected_layers_string : %s" % ( cluster_name, layers_string) + str(e) logging.error(message) # result = {"code": "1","cluster_name":cluster_name, "message": message} result = Response(code="failed", message=message, data={ "cluster_name": cluster_name, "protected_layers_string": layers_string }) return result
def send_frame_to_neighbours( out_frame: Frame, timetables: dict, outstanding_frames: dict ) -> None: orig_src = out_frame.src for port, name in NEIGHBOURS.items(): if out_frame.src == name or out_frame.origin == name: # Don't forward frames to senders print(f"{NAME} skipping sending a frame to {name}") continue try: neighbour_tt = timetables[name] except KeyError: print( f"Couldn't find {name} in neighbours," f"skipping sending a frame to them" ) continue out_frame.src = NAME out_frame.time = calc_arrival_time(neighbour_tt) UDP_SOCKET.sendto(out_frame.to_bytes(), (HOST, port)) out_frame.src = orig_src if out_frame.origin not in outstanding_frames.keys(): outstanding_frames[out_frame.origin] = [] if out_frame.origin == NAME: # This is our request outstanding_frames[NAME].append( Response(len(NEIGHBOURS), out_frame, -1) ) else: # We are forwarding a request outstanding_frames[out_frame.origin].append( Response(len(NEIGHBOURS) - 1, out_frame, -1) )
def delete_instance(cluster_name, instance_id): cluster = ResourceManager.get_cluster(cluster_name) if not cluster: message = "delete the instance to cluster failed. The cluster is not found. (cluster_name = %s)" % cluster_name # result = {"code": "1", "cluster_name": cluster_name, "instance id ": instance_id, "message": message} result = Response(code="failed", message=message, data={ "cluster_name": cluster_name, "instance id": instance_id }) return result else: try: result = cluster.delete_instance(instance_id) ResourceManager.sync_to_database() #logging.info("ResourceManager--delete instance success") return result except Exception as e: message = "ResourceManager--delete instance failed. this instance is not being protected (instance_id = %s)" % instance_id + str( e) logging.error(message) # result = {"code": "1", "cluster_name":cluster_name, "message":message} result = Response(code="failed", message=message, data={"cluster_name": cluster_name}) return result
def update_instance_host(cluster_name, instance_id): cluster = ResourceManager.get_cluster(cluster_name) if not cluster: message = "ResourceManager--Update the instance to cluster failed. The cluster is not found. (cluster_name = %s)" % cluster_name # result = {"code": "1", "cluster_name":cluster_name, "message":message} result = Response(code="failed", message=message, data={"cluster_name": cluster_name}) return result else: try: result = cluster.update_instance_host(instance_id) if result.code == 'failed': return result ResourceManager.sync_to_database() #logging.info("ResourceManager--Update instance success , instance_id : %s , cluster_name : %s" % (instance_id, cluster_name)) return result except Exception as e: message = "ResourceManager--Update the instacne fail.instance_id : %s , cluster_name : %s " % ( instance_id, cluster_name) + str(e) logging.error(message) # result = {"code": "1", "cluster_name": cluster_name, "message": message} result = Response(code="failed", message=message, data={"cluster_name": cluster_name}) return result
def add_instance(cluster_name, instance_id): cluster = ResourceManager.get_cluster(cluster_name) message = "" if not cluster: message = "ResourceManager--Add the instance to cluster failed. The cluster is not found. (cluster_name = %s)" % cluster_name # result = {"code": "1", "cluster_name":cluster_name, "message":message} result = Response(code="failed", message=message, data={"cluster_name": cluster_name}) return result else: try: if not ResourceManager._check_instance_not_overlapping_for_all_cluster( instance_id): return Response( code="failed", message="instance %s is already being protected" % instance_id, data={"instance": instance_id}) result = cluster.add_instance(instance_id) if result.code == 'failed': return result ResourceManager.sync_to_database() #logging.info("ResourceManager--Add instance success , instance_id : %s , cluster_name : %s" % (instance_id, cluster_name)) return result except Exception as e: print str(e) message = "ResourceManager --add the instacne fail.instance_id : %s , cluster_name : %s " % ( instance_id, cluster_name) + str(e) logging.error(message) # result = {"code": "1", "cluster_name": cluster_name, "message": message} result = Response(code="failed", message=message, data={"cluster_name": cluster_name}) return result
def list_node(cluster_name): try: cluster = ResourceManager.get_cluster(cluster_name) if not cluster: message = "list the node failed. The cluster is not found. (cluster_name = %s)" % cluster_name # result = {"code": "1", "cluster_name":cluster_name, "message":message} result = Response(code="failed", message=message, data={"cluster_name": cluster_name}) return result nodelist = cluster.get_all_node_info() message = "ResourceManager-list_node--get all node info finish" result = Response(code="succeed", message=message, data={ "cluster_name": cluster_name, "nodeList": nodelist }) return result except Exception as e: message = "ResourceManager--list_node-- get all node info fail" + str( e) logging.error(message) result = Response(code="failed", message=message, data={"cluster_name": cluster_name}) return result
def delete_node(cluster_name, node_name): cluster = ResourceManager.get_cluster(cluster_name) if not cluster: message = "delete the node failed. The cluster is not found. (cluster_name = %s)" % cluster_name # result = {"code": "1", "cluster_name":cluster_name, "message":message} result = Response(code="failed", message=message, data={"cluster_name": cluster_name}) return result else: try: result = cluster.delete_node(node_name) #logging.info("ResourceManager-- delete node success ,cluster name is %s node is %s" % (cluster_name, node_name)) ResourceManager.sync_to_database() return result except Exception as e: # code = "1" message = "delete node fail. node not found. (node_name = %s)" % node_name + str( e) logging.error(message) # result = {"code": "1", "cluster_name":cluster_name, "message":message} result = Response(code="failed", message=message, data={"cluster_name": cluster_name}) return result
def deleteInstance(self, instance_id, send_flag=True): result = None for instance in self.instance_list: host = instance.host if instance.id == instance_id: self.instance_list.remove(instance) if send_flag: self.sendUpdateInstance(host) message = "Cluster--delete instance success. this instance is deleted (instance_id = %s)" % instance_id logging.info(message) # result = {"code": "0", "clusterId": self.id, "instance id": instance_id, "message": message} result = Response(code="succeed", message=message, data={ "cluster_id": self.id, "instance_id": instance_id }) # if instanceid not in self.instacne_list: if result == None: message = "Cluster--delete instance fail ,please check again! The instance id is %s." % instance_id logging.error(message) # result = {"code": "1", "cluster id": self.id, "instance id": instance_id, "message": message} result = Response(code="failed", message=message, data={ "cluster_id": self.id, "instance_id": instance_id }) return result
def get(self, datasetId): try: return Response(Dataset.objects.get(id=datasetId)["filters"]) except Dataset.DoesNotExist: return Response("Invalid dataset requested.", status=400) except Exception as e: return Response(e, status=500)
def delete_instance(self, instance_id): result = None for instance in self.instance_list: host = instance.host if instance.id == instance_id: self.instance_list.remove(instance) # send instance deletion information to node detection thread update_action = InstanceQueueConfig.REMOVE_INSTANCE instance_name = instance.get_name() host = self.get_node_by_name(host) host.send_update_instance(update_action, instance_name) message = "Cluster--delete instance success. this instance is deleted (instance_id = %s)" % instance_id logging.info(message) # result = {"code": "0", "cluster_name": self.name, "instance id": instance_id, "message": message} result = Response(code="succeed", message=message, data={ "cluster_name": self.name, "instance_id": instance_id }) # if instanceid not in self.instacne_list: if result == None: message = "Cluster--delete instance fail ,please check again! The instance id is %s." % instance_id logging.error(message) # result = {"code": "1", "cluster id": self.name, "instance id": instance_id, "message": message} result = Response(code="failed", message=message, data={ "cluster_name": self.name, "instance_id": instance_id }) return result
def closeMeeting(meetingID): print("Hello2") active = MeetingService.closeMeeting(meetingID) if (not active): return Response({"active": active}, status=200) else: return Response("Meeting not found", status=400)
def getDatasetObjectsPrimary(dataset_id): user = AuthenticationService.verifySessionAndReturnUser( request.cookies["SID"]) if (Dataset.objects.get( Q(id=dataset_id) & (Q(public=True) | Q(author=user))) != None): filename = dataset_id + ".csv" fileFromS3 = s3.get_object(Bucket="agriworks-user-datasets", Key=filename) dataset = pd.read_csv(fileFromS3["Body"], dtype=str) else: return Response("You do not have access to that dataset.", status=403) if (len(dataset) <= 1000): return Response({ "datasetObjects": DatasetService.buildDatasetObjectsList(dataset) }) else: cacheId = str(uuid4()) DatasetCache[cacheId] = dataset[1000:] return Response({ "datasetObjects": DatasetService.buildDatasetObjectsList(dataset[:1000]), "cacheId": cacheId })
def getMeeting(meetingID): dict = getMeetingDict(meetingID) if (meeting == None): return Response("No meeting", status=400) print(dict) print("Id: " + dict["meetingID"]) return Response(dict, status=200)
def logout(): try: sessionId = request.form["sessionId"] AuthenticationService.logout(sessionId) return Response("Successfully logged out.", status=200) except: return Response("Unable to process request. Please reload and try again later.", status=400)
def handleGet(self, request, transport): if self.checkVersion(request): fpath = self.getResource(request.resourceUrl) if fpath == '': blob = [ResponseCode.NotFound, ''] resp = Response(blob, 0) transport.interface.reply(resp) else: tsz = os.path.getsize(fpath) step = transport.interface.datarate count = 0 f = open(fpath, 'rb') while count < tsz: count += step buff = f.read(step) if count < tsz: blob = [ResponseCode.Continue, buff] resp = Response(blob, tsz - count) transport.interface.reply(resp) else: blob = [ResponseCode.OK, buff] resp = Response(blob, 0) transport.interface.reply(resp) else: blob = [ResponseCode.BadRequest, ''] resp = Response(blob, 0) transport.interface.reply(resp)
def deleteNode(self, node_name): try: node = self.getNodeByName(node_name) # stop Thread node.deleteDetectionThread() self.deleteInstanceByNode(node) self.node_list.remove(node) # ret = self.getAllNodeInfo() for node in self.node_list: if node.name == node_name: raise Exception message = "Cluster delete node success! node is %s , node list is %s,cluster id is %s." % ( node_name, self.getAllNodeStr(), self.id) logging.info(message) # result = {"code": "0","clusterId": self.id, "node":node_name, "message": message} result = Response(code="succeed", message=message, data={ "cluster_id": self.id, "node": node_name }) except Exception as e: print str(e) message = "Cluster delete node fail , node maybe not in compute pool please check again! node is %s The node list is %s." % ( node_name, self.getAllNodeStr()) logging.error(message) # result = {"code": "1", "node":node_name,"clusterId": self.id, "message": message} result = Response(code="failed", message=message, data={ "cluster_id": self.id, "node": node_name }) finally: return result
def addNode(cluster_id, node_name_list, write_DB=True): message = "" for node_name in node_name_list[:]: if not ClusterManager._checkNodeOverlappingForAllCluster(node_name): print "%s is already in a HA cluster. " % node_name message += "%s is overlapping node" % node_name node_name_list.remove(node_name) if node_name_list == []: raise Exception("all node in node list are(is) illegal") cluster = ClusterManager.getCluster(cluster_id) if not cluster: message += "ClusterManager--Add the node to cluster failed. The cluster is not found. (cluster_id = %s)" % cluster_id # result = {"code": "1", "clusterId":cluster_id, "message":message} result = Response(code="failed", message=message, data={"cluster_id": cluster_id}) return result else: try: result = cluster.addNode(node_name_list) logging.info( "ClusterManager--add node success.cluster id is %s ,node is %s " % (cluster_id, node_name_list)) if result.code == "succeed" and write_DB: ClusterManager.syncToDatabase() return result except: message += "add node fail. node not found. (node_name = %s)" % node_name_list logging.error(message) # result = {"code": "1", "clusterId": cluster_id, "message": message} result = Response(code="failed", message=message, data={"cluster_id": cluster_id}) return result
def deleteNode(cluster_id, node_name, write_DB=True): cluster = ClusterManager.getCluster(cluster_id) if not cluster: message = "delete the node failed. The cluster is not found. (cluster_id = %s)" % cluster_id # result = {"code": "1", "clusterId":cluster_id, "message":message} result = Response(code="failed", message=message, data={"clusterId": cluster_id}) return result else: try: result = cluster.deleteNode(node_name) logging.info( "ClusterManager-- delete node success ,cluster id is %s node is %s" % (cluster_id, node_name)) if write_DB: ClusterManager.syncToDatabase() return result except Exception as e: # code = "1" message = "delete node fail. node not found. (node_name = %s)" % node_name + str(e) logging.error(message) # result = {"code": "1", "clusterId":cluster_id, "message":message} result = Response(code="failed", message=message, data={"clusterId": cluster_id}) return result
def listInstance(cluster_id, send_flag=True): cluster = ClusterManager.getCluster(cluster_id) try: if not cluster: raise Exception( "ClusterManager--listInstance,get instance list fail , not find the cluster %s" % cluster_id) instance_list, illegal_instance = cluster.getAllInstanceInfo() # delete illegal instance if illegal_instance != []: for instance in illegal_instance: ClusterManager.deleteInstance(cluster_id, instance[0], send_flag=False) # send upadte host of legal instacne and prev_host of illegal instance if send_flag == True: for instance in instance_list[:]: cluster.sendUpdateInstance(instance[2]) # info[2] for instance in illegal_instance[:]: cluster.sendUpdateInstance(instance[1]) # prev_host message = "ClusterManager--listInstance,getInstanceList success,instanceList is %s" % instance_list logging.info(message) # result = {"code": "0", "instanceList": instance_list} result = Response(code="succeed", message=message, data={"instance_list": instance_list}) return result except Exception as e: # print str(e) # result = {"code": "1", "instanceList": []} message = "ClusterManager--listInstance,getInstanceList fail" + str(e) logging.error(message) result = Response(code="failed", message=message, data={"instance_list": []}) return result
def deleteInstance(cluster_id, instance_id, send_flag=True, write_DB=True): cluster = ClusterManager.getCluster(cluster_id) if not cluster: message = "delete the instance to cluster failed. The cluster is not found. (cluster_id = %s)" % cluster_id # result = {"code": "1", "clusterId": cluster_id, "instance id ": instance_id, "message": message} result = Response(code="failed", message=message, data={"clusterId": cluster_id, "instance id": instance_id}) return result else: try: result = cluster.deleteInstance(instance_id, send_flag) if write_DB: ClusterManager.syncToDatabase() logging.info("ClusterManager--delete instance success") return result except Exception as e: #logging.error(str(e)) print str(e) message = "ClusterManager--delete instance failed. this instance is not being protected (instance_id = %s)" % instance_id +str(e) logging.error(message) # result = {"code": "1", "clusterId":cluster_id, "message":message} result = Response(code="failed", message=message, data={"clusterId": cluster_id}) return result
def shutOffNode(self, node_name): message = "" # result =None if self._checkNodeIPMI(node_name) and self._checkNodeNotInCluster( node_name): try: ipmi_result = self.ipmi_module.shutOffNode(node_name) # check power status in IPMIModule if ipmi_result.code == "succeed": message += "shut off node success.The node is %s." % node_name logging.info(message) # result = {"code": "0", "node_name": node_name, "message": message} result = Response(code="succeed", message=message, data={"node_name": node_name}) else: raise Exception("IpmiModule shut off node fail") except Exception as e: # shut off fail message += "IPMIOperator--shut off node fail.The node is %s.%s" % ( node_name, e) logging.error(message) # result = {"code": "1", "node_name": node_name, "message": message} result = Response(code="failed", message=message, data={"node_name": node_name}) else: message += " IPMIOperator--node is not in compute pool or is not a IPMI PC or is already be protected. The node is %s." % node_name logging.error(message) # result = {"code": "1", "node_name": node_name, "message": message} result = Response(code="failed", message=message, data={"node_name": node_name}) return result
def gui_command_cb(self, command): '''Callback for when a GUI command is received''' if (not self.arms.is_executing()): if (self.session.n_actions() > 0): if (command.command == GuiCommand.SWITCH_TO_ACTION): action_no = command.param self.session.switch_to_action(action_no, self.world.get_frame_list()) response = Response(Interaction.empty_response, [RobotSpeech.SWITCH_SKILL + str(action_no), GazeGoal.NOD]) response.respond() elif (command.command == GuiCommand.SELECT_ACTION_STEP): step_no = command.param self.session.select_action_step(step_no) rospy.loginfo('Selected action step ' + str(step_no)) else: rospy.logwarn('\033[32m This command (' + command.command + ') is unknown. \033[0m') else: response = Response(Interaction.empty_response, [RobotSpeech.ERROR_NO_SKILLS, GazeGoal.SHAKE]) response.respond() else: rospy.logwarn('Ignoring GUI command during execution: ' + command.command)
def post(self): flow = app.flow flow.redirect_uri = request.form["redirect_uri"] authCode = request.form["code"] flow.fetch_token(code=authCode) credentials = flow.credentials req_url = "https://www.googleapis.com/oauth2/v1/userinfo?access_token=" + credentials.token user_info = requests.get(req_url).json() user = AuthenticationService.getUser(email=user_info['email']) if user: if not user.password: sessionId = uuid4() session = Session(user=user, sessionId=sessionId) session.save() ret = make_response(user_info) ret.set_cookie("SID", str(session.sessionId), expires=session.dateExpires) return ret return Response("Email already registered with our service", status=403) else: ret = {} ret['message'] = "Redirect to complete sign up" ret['user'] = user_info return Response(ret, status=200)