Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 38 additions & 14 deletions jvmctl/jvmctl/jvmctl.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
C_DeepSkyBlue4 = "\033[38;5;23m"
C_Purple = "\033[38;5;129m"
C_DarkGreen = "\033[38;5;22m"
F_UNDERLINED="\033[4m"
F_UNDERLINED = "\033[4m"

NODE = ""
DEFAULTS = """
Expand Down Expand Up @@ -86,6 +86,7 @@
systemctl_exe = shutil.which("systemctl")
fapolicyd_installed = shutil.which("fapolicyd") is not None


def cli_command(group=None):
if group not in groups:
groups[group] = groups.get(group, [])
Expand Down Expand Up @@ -126,6 +127,7 @@ def fapolicyd_running():
# Returns inactive even if fapolicyd is not installed
return status_result.stdout.decode().strip() == "active"


def manage_service(action, service_name=""):
"""
Manage systemd services.
Expand All @@ -141,7 +143,9 @@ def manage_service(action, service_name=""):
if not fapolicyd_installed:
return 0
# Don't try to manage fapolicyd if it's not enabled.
if not path.exists("/etc/systemd/system/multi-user.target.wants/fapolicyd.service"):
if not path.exists(
"/etc/systemd/system/multi-user.target.wants/fapolicyd.service"
):
return 0
# We want the assurity of seeing fapolicy actions, especially at the end of the process.
print(f"Running {systemctl_exe}", action, service_name)
Expand Down Expand Up @@ -354,8 +358,11 @@ def fetch_jetty(self):
url = (
self.node.config.get("jetty", "REPO")
+ self.node.config.get("jvm", "JETTY_PROJECT")
+ "/" + self.version
+ "/" + self.node.config.get("jvm", "JETTY_PROJECT") + "-"
+ "/"
+ self.version
+ "/"
+ self.node.config.get("jvm", "JETTY_PROJECT")
+ "-"
+ self.version
+ ".tar.gz"
)
Expand All @@ -369,7 +376,11 @@ def fetch_jetty(self):
finally:
os.remove(f)
os.rename(
path.join(self.cachedir, self.node.config.get("jvm", "JETTY_PROJECT") + "-" + self.version), self.home
path.join(
self.cachedir,
self.node.config.get("jvm", "JETTY_PROJECT") + "-" + self.version,
),
self.home,
)

def configure_jetty(self):
Expand Down Expand Up @@ -445,13 +456,21 @@ def configure_jetty12(self):
f.write(
"# Auto-generated by jvmctl. Edit " + node.config_file + " instead\n"
)
ee_version = node.config.get("jvm", "JETTY_EE_VERSION", fallback="EE10").upper()
ee_version = node.config.get(
"jvm", "JETTY_EE_VERSION", fallback="EE10"
).upper()
if ee_version == "EE8":
f.write("--module=server\n--module=ee8-webapp\n--module=ee8-servlet\n--module=forwarded\n--module=ee8-deploy\n")
f.write(
"--module=server\n--module=ee8-webapp\n--module=ee8-servlet\n--module=forwarded\n--module=ee8-deploy\n"
)
elif ee_version == "EE9":
f.write("--module=server\n--module=ee9-webapp\n--module=ee9-servlet\n--module=forwarded\n--module=ee9-deploy\n")
f.write(
"--module=server\n--module=ee9-webapp\n--module=ee9-servlet\n--module=forwarded\n--module=ee9-deploy\n"
)
else:
f.write("--module=server\n--module=ee10-webapp\n--module=ee10-servlet\n--module=forwarded\n--module=ee10-deploy\n")
f.write(
"--module=server\n--module=ee10-webapp\n--module=ee10-servlet\n--module=forwarded\n--module=ee10-deploy\n"
)
f.write("\n")
f.write("jetty.port=" + node.config.get("jvm", "PORT") + "\n")
f.write("jetty.http.port=" + node.config.get("jvm", "PORT") + "\n")
Expand Down Expand Up @@ -642,7 +661,7 @@ def spawnctl(self, command):
# Remove python error and allow spawnctl's error to be seen
return 1
else:
return manage_service(command, self.svc)
return manage_service(command, self.svc)

def autoregister(self):
systemd_register(self)
Expand Down Expand Up @@ -833,7 +852,9 @@ def new(node):
try:
f = open(node.config_file, "w")
except PermissionError:
print(f"Error: Cannot create node '{node.name}'. Permission denied. Try running with sudo permissions")
print(
f"Error: Cannot create node '{node.name}'. Permission denied. Try running with sudo permissions"
)
sys.exit(1)
try:
print("PORT=" + str(port), file=f)
Expand Down Expand Up @@ -1054,7 +1075,7 @@ def deploy(node, *args):
if arg == "-s":
os.environ["MAVEN_OPTS"] += " -Dmaven.test.skip=true"
elif arg == "-x":
os.environ["MAVEN_OPTS"] += " --debug"
os.environ["MAVEN_OPTS"] += " --debug"
else:
os.environ["MAVEN_OPTS"] += f" {arg}"
os.environ["HOME"] = pw.pw_dir
Expand Down Expand Up @@ -1107,8 +1128,10 @@ def deploy(node, *args):
print("")
status(node)


def unquote(s):
return s.replace("'","").replace('"','')
return s.replace("'", "").replace('"', "")


def quote(s):
if " " in s:
Expand Down Expand Up @@ -1256,6 +1279,7 @@ def systemd_unregister(node):
os.unlink("/etc/systemd/system/" + node.svc + ".service")
manage_service("daemon-reload")


@cli_command(group="Hidden")
def systemd_register(node):
post_config(node)
Expand Down Expand Up @@ -1323,7 +1347,7 @@ def systemd_register(node):

def fetch_hash(node):
node.ensure_valid()
_hash=""
_hash = ""
try:
_hash = subprocess.check_output(
["git", "log", "-n 1", "--pretty=format:%H", node.config_file]
Expand Down