Added passenger_manager commands

devel
Alexey Berezhok 4 months ago
parent 4905975d79
commit 4a10c586e1

@ -132,11 +132,40 @@ class PassengerWorker < Kernel::ModuleCoreWorker
ACTION_OK
end
when "set_user_ruby"
domain = args[1]
ruby_ver = args[2]
if domain.nil? || ruby_ver.nil?
log_return("Domain or ruby version should be specified. #{args}")
else
if File.exist?(ruby_ver)
dom_file = get_module_conf("domains.conf")
hestia_save_file_key_pair(dom_file, domain, ruby_ver)
ACTION_OK
else
log_return("Ruby path doesn't exists. #{ruby_ver}")
end
end
when "disable_user"
domain = args[1]
if domain.nil?
log_return("Domain should be specified. #{args}")
else
#TODO
dom_file = get_module_conf("domains.conf")
hestia_save_file_key_pair(dom_file, domain, "")
ACTION_OK
end
when "get_user_ruby"
domain = args[1]
if domain.nil?
log_return("Domain should be specified. #{args}")
else
dom_file = get_module_conf("domains.conf")
format = (args[2].nil? ? "shell" : args[2].strip)
val = hestia_get_file_key_pair(dom_file, domain)
result = Hash.new
result["RUBY"] = val
hestia_print_array_of_hashes(result, format, "RUBY")
ACTION_OK
end
else
log_return("Unknown commands. #{args}")

@ -246,3 +246,52 @@ def hestia_read_config_with_lock(config_file)
end
arr
end
def hestia_get_file_key_pair(file, key)
value = ""
if File.exist?(file)
File.open(file, File::RDONLY) do |f|
f.flock(File::LOCK_SH)
f.each do |line|
result = line.strip.split("=", 2)
if result.length > 1
k = result[0].strip
v = result[1].strip
if k == key
value = v
break
end
end
end
end
end
value
end
def hestia_save_file_key_pair(file, key, value)
File.open(file, File::RDWR | File::CREAT, 0600) do |f|
f.flock(File::LOCK_EX)
f.rewind
storage = {}
f.each do |line|
result = line.strip.split("=", 2)
if result.length > 1
k = result[0].strip
v = result[1].strip
storage[k] = v
end
end
if value.strip == ""
if storage.key?(key.strip)
storage.delete(key.strip)
end
else
storage[key.strip] = value.strip
end
f.rewind
f.truncate(0)
storage.each do |k, v|
f.puts("#{k}=#{v}")
end
end
end

@ -11,14 +11,14 @@ if ($_SESSION["userContext"] != "admin") {
}
// Data
exec(HESTIA_CMD . "v-ext-modules list json", $output, $return_var);
$data = json_decode(implode("", $output), true);
ksort($data);
exec(HESTIA_CMD . "v-ext-modules-run passenger_manager get_rubys json", $output, $return_var);
$rubys = json_decode(implode("", $output), true);
ksort($rubys);
unset($output);
// Render page
render_page($user, $TAB, "extmodules");
render_page($user, $TAB, "extmodules_passenger_manager");
// Back uri
$_SESSION["back"] = $_SERVER["REQUEST_URI"];

@ -0,0 +1,25 @@
<!-- Begin toolbar -->
<div class="toolbar">
<div class="toolbar-inner">
<div class="toolbar-buttons">
<a class="button button-secondary button-back js-button-back" href="/list/extmodules/">
<i class="fas fa-arrow-left icon-blue"></i><?= _("Back") ?>
</a>
</div>
</div>
</div>
<!-- End toolbar -->
<div class="container">
<h1 class="u-text-center u-hide-desktop u-mt20 u-pr30 u-mb20 u-pl30"><?= _("Passenger manager") ?></h1>
</div>
<footer class="app-footer">
<div class="container app-footer-inner">
<p>
<?= _("Extended modules list") ?>
</p>
</div>
</footer>
Loading…
Cancel
Save