-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathoptimizer.py
46 lines (40 loc) · 1.5 KB
/
optimizer.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import argparse
import logging, logging.config
import opt_utils
import opt_rest
def launch_optimizer():
args = parse_arguments()
config = opt_utils.read_yaml(args.config_path)
create_logger(config)
opt_utils.create_dirs(config.get('directories', ['data', 'log', 'outputs']).values())
opt_rest.init_service(config)
opt_rest.app.run(debug=True,
host=args.host,
port=args.port)
def create_logger(config):
try:
logging.config.dictConfig(config.get('logging'))
logger = logging.getLogger('optimizer')
except Exception as e:
print(f'ERROR: Cannot process configuration file: {e}')
else:
logger.info('Optimizer initialized successfully.')
def parse_arguments():
parser = argparse.ArgumentParser(
description='MiCADO component to realize optimization of scaling decisions')
parser.add_argument('--cfg',
dest='config_path',
default='./config/config.yaml',
help='path to configuration file')
parser.add_argument('--host',
type=str,
default='127.0.0.1',
help='host to bind service to')
parser.add_argument('--port',
type=int,
default='5000',
help='port to bind service to')
args = parser.parse_args()
return args
if __name__ == '__main__':
launch_optimizer()