in python-cli/mft_cli/airavata_mft_cli/bootstrap.py [0:0]
def start_mft():
print("Setting up MFT Services")
required_java_version = 11
if platform == "linux" or platform == "linux2":
consul_url = "https://releases.hashicorp.com/consul/1.7.1/consul_1.7.1_linux_amd64.zip"
validate_java_availability(required_java_version)
elif platform == "darwin":
consul_url = "https://releases.hashicorp.com/consul/1.7.1/consul_1.7.1_darwin_amd64.zip"
validate_java_availability(required_java_version)
elif platform == "win32":
print("Windows support is not available yet")
raise typer.Exit()
else:
print("Un supported platform: " + platform)
raise typer.Exit()
mft_dir = os.path.join(os.path.expanduser('~'), ".mft")
if not os.path.exists(mft_dir):
os.makedirs(mft_dir)
path = os.path.join(os.path.expanduser('~'), ".mft/consul")
if not os.path.exists(path):
print("Downloading Consul...")
zip_path = os.path.join(os.path.expanduser('~'), ".mft/consul.zip")
download_and_unarchive(consul_url, zip_path, os.path.join(os.path.expanduser('~'), ".mft/"))
current_dir = os.getcwd()
try:
os.chdir(os.path.join(os.path.expanduser('~'), ".mft"))
os.chmod("consul", 0o744)
if os.path.exists("consul.pid"):
pid = Path('consul.pid').read_text()
call(["kill", "-9", pid])
consul_process = Popen(['nohup', './consul', "agent", "-dev"],
stdout=open('consul.log', 'w'),
stderr=open('consul.err.log', 'a'),
preexec_fn=os.setpgrp)
print("Consul process id: " + str(consul_process.pid))
with open("consul.pid", "w") as consul_pid:
consul_pid.write(str(consul_process.pid))
finally:
os.chdir(current_dir)
path = os.path.join(os.path.expanduser('~'), ".mft/Standalone-Service-0.01")
if not os.path.exists(path):
url = "https://github.com/apache/airavata-mft/releases/download/v0.0.1/Standalone-Service-0.01-bin.zip"
print("Downloading MFT Server...")
zip_path = os.path.join(os.path.expanduser('~'), ".mft/Standalone-Service-0.01-bin.zip")
download_and_unarchive(url, zip_path)
restart_service(path + "/bin", "standalone-service-daemon.sh")
print("MFT Started")