Пример #1
0
 def on_get(self, request, response, nffg_id):
     try :
         
         user_data = UserAuthentication().authenticateUserFromRESTRequest(request)
                
         controller = UpperLayerOrchestratorController(user_data)
         response.body = controller.getStatus(nffg_id)
         
         response.status = falcon.HTTP_200
         
     except NoResultFound:
         logging.exception("EXCEPTION - NoResultFound")
         raise falcon.HTTPNotFound()
     except requests.HTTPError as err:
         logging.exception(err.response.text)
         if err.response.status_code == 401:
             raise falcon.HTTPInternalServerError('Unauthorized.',err.message)
         elif err.response.status_code == 403:
             raise falcon.HTTPInternalServerError('Forbidden.',err.message)
         elif err.response.status_code == 404:
             raise falcon.HTTPInternalServerError('Resource Not found.',err.message)
         raise err
     except jsonschema.ValidationError as err:
         logging.exception(err.message)
         raise falcon.HTTPBadRequest('Bad Request',
                                     err.message)
     except sessionNotFound as err:
         logging.exception(err.message)
         raise falcon.HTTPNotFound()
     except ingoingFlowruleMissing as err:
         logging.exception(err.message)
         raise falcon.HTTPInternalServerError('ingoingFlowruleMissing',err.message)
     except ManifestValidationError as err:
         logging.exception(err.message)
         raise falcon.HTTPInternalServerError('ManifestValidationError',err.message)
     except unauthorizedRequest as err:
         logging.debug("Unauthorized access attempt from user "+request.get_header("X-Auth-User"))
         raise falcon.HTTPUnauthorized("Unauthorized", err.message)
     except Exception as ex:
         logging.exception(ex)
         raise falcon.HTTPInternalServerError('Contact the admin. ',ex.message)
    def get(self, nffg_id):
        """
        Get the status of a graph
        ---
        tags:
          - NF-FG
        produces:
          - application/json             
        parameters:
          - name: nffg_id
            in: path
            description: Graph ID to be retrieved
            type: string            
            required: true
          - name: X-Auth-User
            in: header
            description: Username
            required: true
            type: string
          - name: X-Auth-Pass
            in: header
            description: Password
            required: true
            type: string
          - name: X-Auth-Tenant
            in: header
            description: Tenant
            required: true
            type: string                        
                    
        responses:
          200:
            description: Status correctly retrieved       
          401:
            description: Unauthorized
          404:
            description: Graph not found
          500:
            description: Internal Error
        """            
        try:
            user_data = UserAuthentication().authenticateUserFromRESTRequest(request)
                   
            controller = UpperLayerOrchestratorController(user_data)
            resp = Response(response=controller.getStatus(nffg_id), status=200, mimetype="application/json")
            return resp

        except NoResultFound:
            logging.exception("EXCEPTION - NoResultFound")
            return ("EXCEPTION - NoResultFound", 404)
        except requests.HTTPError as err:
            logging.exception(err)
            return (str(err), 500)
        except sessionNotFound as err:
            logging.exception(err.message)
            return (err.message, 404)
        except (unauthorizedRequest, UserNotFound) as err:
            if request.headers.get("X-Auth-User") is not None:
                logging.debug("Unauthorized access attempt from user "+request.headers.get("X-Auth-User"))
            logging.debug(err.message)
            return ("Unauthorized", 401)
        except Exception as err:
            logging.exception(err)
            return ("Contact the admin: "+ str(err), 500)