Added passenger_manager commands
This commit is contained in:
@@ -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"];
|
||||
25
web/templates/pages/extmodules_passenger_manager.php
Normal file
25
web/templates/pages/extmodules_passenger_manager.php
Normal file
@@ -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>
|
||||
Reference in New Issue
Block a user