services/migration_service/run_script.py (45 lines of code) (raw):
from subprocess import Popen
import os
import sys
def setup_env(version_value: str):
_env = os.environ
virtual_env_path = '/opt/' + version_value
_env['VIRTUAL_ENV'] = virtual_env_path
path = _env['PATH']
_env['PATH'] = virtual_env_path + "/bin:" + path
return _env
if __name__ == "__main__":
try:
migration_server_process = Popen(
"PYTHONPATH=/ python3 -m services.migration_service.migration_server",
shell=True,
close_fds=True,
env=setup_env('latest')
)
get_env_version = Popen(
"python3 -m services.migration_service.get_virtual_env",
shell=True,
close_fds=True
)
if get_env_version.wait() != 0:
print("Failed to get env version", file=sys.stderr)
sys.exit(1)
# read in version of metadata service to load
version_value_file = open('/root/services/migration_service/config', 'r')
version_value = str(version_value_file.read()).strip()
# start proper version of metadata service
metadata_server_process = Popen(
"metadata_service",
shell=True,
close_fds=True,
env=setup_env(version_value)
)
rc = metadata_server_process.wait()
if rc != 0:
print("Metadata server exited with non zero status")
sys.exit(rc)
rc = migration_server_process.wait()
if rc != 0:
print("Migration server exited with non zero status")
sys.exit(rc)
except Exception as e:
print(e)
sys.exit(1)