def executeCommand(self, request, context):
        blueprint_id = utils.blueprint_name_version_uuid(request)
        extra = utils.getExtraLogData(request)
        self.logger.info(
            "{} - Received executeCommand request".format(blueprint_id),
            extra=extra)
        if os.environ.get('CE_DEBUG', 'false') == "true":
            self.logger.info(request, extra=extra)

        handler = CommandExecutorHandler(request)
        exec_cmd_response = handler.execute_command(request)
        if exec_cmd_response[utils.CDS_IS_SUCCESSFUL_KEY]:
            self.logger.info(
                "{} - Execution finished successfully.".format(blueprint_id),
                extra=extra)
        else:
            self.logger.info("{} - Failed to executeCommand. {}".format(
                blueprint_id, exec_cmd_response[utils.RESULTS_LOG_KEY]),
                             extra=extra)

        ret = utils.build_grpc_response(request.requestId, exec_cmd_response)
        self.logger.info("Payload returned : {}".format(exec_cmd_response),
                         extra=extra)

        return ret
Exemple #2
0
def serve():
    port = sys.argv[1]
    basic_auth = sys.argv[2] + ' ' + sys.argv[3]

    header_validator = RequestHeaderValidatorInterceptor(
        'authorization', basic_auth, grpc.StatusCode.UNAUTHENTICATED,
        'Access denied!')

    server = grpc.server(
        futures.ThreadPoolExecutor(max_workers=15),
        interceptors=(header_validator,))

    CommandExecutor_pb2_grpc.add_CommandExecutorServiceServicer_to_server(
        CommandExecutorServer(), server)

    server.add_insecure_port('[::]:' + port)
    server.start()

    logger.info("Command Executor Server started on %s" % port, extra=utils.getExtraLogData())

    try:
        while True:
            time.sleep(_ONE_DAY_IN_SECONDS)
    except KeyboardInterrupt:
        server.stop(0)
 def uploadBlueprint(self, request, context):
     # handler for 'uploadBluleprint' call - extracts compressed cbaData to a  bpname/bpver/bpuuid dir.
     blueprint_name_version_uuid = utils.blueprint_name_version_uuid(
         request)
     extra = utils.getExtraLogData(request)
     self.logger.info("{} - Received uploadBlueprint request".format(
         blueprint_name_version_uuid),
                      extra=extra)
     handler = CommandExecutorHandler(request)
     return handler.uploadBlueprint(request)
    def prepareEnv(self, request, context):
        blueprint_id = utils.get_blueprint_id(request)
        extra = utils.getExtraLogData(request)
        self.logger.info("{} - Received prepareEnv request".format(blueprint_id), extra=extra)
        self.logger.info(request, extra=extra)

        handler = CommandExecutorHandler(request)
        prepare_env_response = handler.prepare_env(request)
        if prepare_env_response[utils.CDS_IS_SUCCESSFUL_KEY]:
            self.logger.info("{} - Package installation logs {}".format(blueprint_id, prepare_env_response[utils.RESULTS_LOG_KEY]), extra=extra)
        else:
            self.logger.info("{} - Failed to prepare python environment. {}".format(blueprint_id, prepare_env_response[utils.ERR_MSG_KEY]), extra=extra)
        self.logger.info("Prepare Env Response returned : %s" % prepare_env_response, extra=extra)
        return utils.build_grpc_response(request.requestId, prepare_env_response)
Exemple #5
0
 def __init__(self, request):
     self.request = request
     self.logger = logging.getLogger(self.__class__.__name__)
     self.blueprint_name = utils.get_blueprint_name(request)
     self.blueprint_version = utils.get_blueprint_version(request)
     self.uuid = utils.get_blueprint_uuid(request)
     self.request_id = utils.get_blueprint_requestid(request)
     self.sub_request_id = utils.get_blueprint_subRequestId(request)
     self.blueprint_name_version_uuid = utils.blueprint_name_version_uuid(
         request)
     self.execution_timeout = utils.get_blueprint_timeout(request)
     # onap/blueprints/deploy will be ephemeral now
     self.blueprint_dir = self.BLUEPRINTS_DEPLOY_DIR + self.blueprint_name_version_uuid
     self.blueprint_tosca_meta_file = self.blueprint_dir + '/' + self.TOSCA_META_FILE
     self.extra = utils.getExtraLogData(request)
     self.installed = self.blueprint_dir + '/.installed'
Exemple #6
0
 def __init__(self, request):
     self.request = request
     self.logger = logging.getLogger(self.__class__.__name__)
     self.blueprint_name = utils.get_blueprint_name(request)
     self.blueprint_version = utils.get_blueprint_version(request)
     self.uuid = utils.get_blueprint_uuid(request)
     self.request_id = utils.get_blueprint_requestid(request)
     self.sub_request_id = utils.get_blueprint_subRequestId(request)
     self.blueprint_name_version = utils.blueprint_name_version(
         request)  #for legacy SR7 support
     self.blueprint_name_version_uuid = utils.blueprint_name_version_uuid(
         request)
     self.execution_timeout = utils.get_blueprint_timeout(request)
     # onap/blueprints/deploy will be ephemeral now
     self.blueprint_dir = self.BLUEPRINTS_DEPLOY_DIR + self.blueprint_name_version_uuid
     # if the command matches “/opt/app/onap/blueprints/deploy/$cba_name/$cba_version/stuff_that_is_not_cba_uuid/”
     # then prepend the $cba_uuid before “stuff_that_is_not_cba_uuid”
     self.blueprint_tosca_meta_file = self.blueprint_dir + '/' + self.TOSCA_META_FILE
     self.extra = utils.getExtraLogData(request)
     self.installed = self.blueprint_dir + '/.installed'
     self.prometheus_histogram = self.get_prometheus_histogram()
     self.prometheus_counter = self.get_prometheus_counter()
     self.start_prometheus_server()