Skip to content
Snippets Groups Projects
Commit 72a67e71 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Multiple changes:

Common:
- reorganized Database API to enable extension of Context API with entities (e.g. Service)
- solved minor bugs in Database API

Context and Device services:
- rearranged services and unit tests according to mentioned Context API changes

Service service:
- initial release (under development, this is just a backup of code)
parent 9cc44b30
No related branches found
No related tags found
1 merge request!54Release 2.0.0
import logging, os, signal, sys, threading
from prometheus_client import start_http_server
from common.database.Factory import get_database
from service.service.ServiceService import ServiceService
from service.Config import GRPC_SERVICE_PORT, GRPC_MAX_WORKERS, GRPC_GRACE_PERIOD, LOG_LEVEL, METRICS_PORT
terminate = threading.Event()
logger = None
def signal_handler(signal, frame):
global terminate, logger
logger.warning('Terminate signal received')
terminate.set()
def main():
global terminate, logger
service_port = os.environ.get('SERVICESERVICE_SERVICE_PORT_GRPC', GRPC_SERVICE_PORT)
max_workers = os.environ.get('MAX_WORKERS', GRPC_MAX_WORKERS )
grace_period = os.environ.get('GRACE_PERIOD', GRPC_GRACE_PERIOD)
log_level = os.environ.get('LOG_LEVEL', LOG_LEVEL )
metrics_port = os.environ.get('METRICS_PORT', METRICS_PORT)
logging.basicConfig(level=log_level)
logger = logging.getLogger(__name__)
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
logger.info('Starting...')
# Start metrics server
start_http_server(metrics_port)
# Get database instance
database = get_database()
# Starting service service
service = ServiceService(database, port=service_port, max_workers=max_workers, grace_period=grace_period)
service.start()
# Wait for Ctrl+C or termination signal
while not terminate.wait(0.1): pass
logger.info('Terminating...')
service.stop()
logger.info('Bye')
return(0)
if __name__ == '__main__':
sys.exit(main())
import logging, pytest
from common.database.Factory import get_database, DatabaseEngineEnum
from service.Config import GRPC_SERVICE_PORT, GRPC_MAX_WORKERS, GRPC_GRACE_PERIOD
from service.client.ServiceClient import ServiceClient
from service.service.ServiceService import ServiceService
LOGGER = logging.getLogger(__name__)
LOGGER.setLevel(logging.DEBUG)
@pytest.fixture(scope='session')
def service_database():
_database = get_database(engine=DatabaseEngineEnum.INMEMORY)
return _database
@pytest.fixture(scope='session')
def service_service(service_database):
_service = ServiceService(
service_database, port=GRPC_SERVICE_PORT, max_workers=GRPC_MAX_WORKERS, grace_period=GRPC_GRACE_PERIOD)
_service.start()
yield _service
_service.stop()
@pytest.fixture(scope='session')
def service_client(service_service):
_client = ServiceClient(address='127.0.0.1', port=GRPC_SERVICE_PORT)
yield _client
_client.close()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment