# See the License for the specific language governing permissions and
# limitations under the License.
-from builtins import KeyboardInterrupt
-from concurrent import futures
import logging
+import os
import time
-import grpc
+import yaml
+from builtins import KeyboardInterrupt
+from concurrent import futures
from pathlib import Path, PurePath
-from blueprints_grpc import BluePrintProcessing_pb2_grpc
-from blueprints_grpc.request_header_validator_interceptor import RequestHeaderValidatorInterceptor
+
+import grpc
+from manager.servicer import ArtifactManagerServicer
+from proto.BluePrintManagement_pb2_grpc import add_BluePrintManagementServiceServicer_to_server
+
+from blueprints_grpc import BluePrintProcessing_pb2_grpc, ScriptExecutorConfiguration
from blueprints_grpc.blueprint_processing_server import BluePrintProcessingServer
-from blueprints_grpc import ScriptExecutorConfiguration
+from blueprints_grpc.request_header_validator_interceptor import RequestHeaderValidatorInterceptor
logger = logging.getLogger("Server")
# create server
server = grpc.server(futures.ThreadPoolExecutor(max_workers=int(maxWorkers)))
BluePrintProcessing_pb2_grpc.add_BluePrintProcessingServiceServicer_to_server(
- BluePrintProcessingServer(configuration), server)
+ BluePrintProcessingServer(configuration), server
+ )
+ add_BluePrintManagementServiceServicer_to_server(ArtifactManagerServicer(), server)
# add secure port using credentials
server.add_secure_port('[::]:' + port, server_credentials)
server = grpc.server(futures.ThreadPoolExecutor(max_workers=int(maxWorkers)),
interceptors=(header_validator,))
BluePrintProcessing_pb2_grpc.add_BluePrintProcessingServiceServicer_to_server(
- BluePrintProcessingServer(configuration), server)
+ BluePrintProcessingServer(configuration), server
+ )
+ add_BluePrintManagementServiceServicer_to_server(ArtifactManagerServicer(), server)
server.add_insecure_port('[::]:' + port)
server.start()
if __name__ == '__main__':
- config_file = str(PurePath(Path().absolute())) + '/configuration.ini'
+ default_configuration_file = str(PurePath(Path().absolute(), "../../configuration.ini"))
+ supplied_configuration_file = os.environ.get("CONFIGURATION")
+ config_file = str(os.path.expanduser(Path(supplied_configuration_file or default_configuration_file)))
+
configuration = ScriptExecutorConfiguration(config_file)
- logging_formater = '%(asctime)s - %(name)s - %(threadName)s - %(levelname)s - %(message)s'
- logging.basicConfig(filename=configuration.script_executor_property('logFile'),
- level=logging.DEBUG,
+ log_file_name = configuration.script_executor_property('logFile')
+ log_file = os.path.join(os.path.dirname(os.path.abspath(os.path.dirname(__file__))), "logging.yaml")
+ print(log_file)
+ with open(log_file) as log:
+ log_config = yaml.safe_load(log)
+ print(log_config)
+ logging_formater = log_config["formatters"]["default"]["format"]
+ print(log_config["loglevel"])
+ if log_config["loglevel"] == "debug":
+ loglevel = logging.DEBUG
+ elif log_config["loglevel"] == "info":
+ loglevel = logging.INFO
+ elif log_config["loglevel"] == "error":
+ loglevel = logging.ERROR
+ logging.basicConfig(filename=log_file_name,
+ level=loglevel,
format=logging_formater)
- console = logging.StreamHandler()
- console.setLevel(logging.INFO)
+ console = logging.handlers.RotatingFileHandler(log_file_name, maxBytes=log_config["logfilesize"],
+ backupCount=log_config["rollovercount"])
+
+ console.setLevel(loglevel)
formatter = logging.Formatter(logging_formater)
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)
serve(configuration)
+