def NFFG_Get(self, nffg_id):
        session = GraphSession().getActiveUserGraphSession(self.user_data.user_id, nffg_id, error_aware=True)
        if session is None:
            raise sessionNotFound("Get NF-FG: session not found, for graph " + str(nffg_id))

        self.__session_id = session.session_id
        logging.debug("Getting session: " + str(self.__session_id))
        return GraphSession().getNFFG(self.__session_id).getJSON()
 def get_active_user_session_by_nf_fg_id(self, service_graph_id, error_aware=True):
     session = get_session()
     if error_aware:
         session_ref = session.query(SessionModel).filter_by(service_graph_id = service_graph_id).filter_by(ended = None).filter_by(error = None).first()
     else:
         session_ref = session.query(SessionModel).filter_by(service_graph_id = service_graph_id).filter_by(ended = None).order_by(desc(SessionModel.started_at)).first()
     if session_ref is None:
         raise sessionNotFound("Session Not Found, for servce graph id: "+str(service_graph_id))
     return session_ref
 def get_active_user_session(self, user_id):
     '''
     returns if exists an active session of the user
     '''
     session = get_session()
     session_ref = session.query(SessionModel).filter_by(user_id = user_id).filter_by(ended = None).filter_by(error = None).first()
     if session_ref is None:
         raise sessionNotFound("Session Not Found")
     return session_ref
    def NFFG_Status(self, nffg_id):
        session = GraphSession().getActiveUserGraphSession(self.user_data.user_id, nffg_id, error_aware=False)
        if session is None:
            raise sessionNotFound("Status NF-FG: session not found, for graph " + str(nffg_id))

        self.__session_id = session.session_id
        percentage = 0

        if session.status != 'error':
            percentage = GraphSession().getFlowruleProgressionPercentage(self.__session_id, nffg_id)

        logging.debug("Status NF-FG: graph status: " + str(session.status) + " " + str(percentage) + "%")
        return session.status, percentage
    def NFFG_Delete(self, nffg_id):

        session = GraphSession().getActiveUserGraphSession(self.user_data.user_id, nffg_id, error_aware=False)
        if session is None:
            raise sessionNotFound("Delete NF-FG: session not found for graph " + str(nffg_id))
        self.__session_id = session.session_id

        try:
            instantiated_nffg = GraphSession().getNFFG(self.__session_id)
            logging.debug("Delete NF-FG: [session=" + str(
                self.__session_id) + "] we are going to delete: " + instantiated_nffg.getJSON())
            self.__NFFG_NC_deleteGraph()
            logging.debug("Delete NF-FG: session " + self.__session_id + " correctly deleted!")

            # Update the resource description .json
            ResourceDescription().updateAll()
            ResourceDescription().saveFile()

            Messaging().PublishDomainConfig()

        except Exception as ex:
            logging.error("Delete NF-FG: ", ex)
            raise ex