Added passenger_manager commands
This commit is contained in:
@@ -132,11 +132,40 @@ class PassengerWorker < Kernel::ModuleCoreWorker
|
|||||||
ACTION_OK
|
ACTION_OK
|
||||||
end
|
end
|
||||||
when "set_user_ruby"
|
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]
|
domain = args[1]
|
||||||
if domain.nil?
|
if domain.nil?
|
||||||
log_return("Domain should be specified. #{args}")
|
log_return("Domain should be specified. #{args}")
|
||||||
else
|
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
|
end
|
||||||
else
|
else
|
||||||
log_return("Unknown commands. #{args}")
|
log_return("Unknown commands. #{args}")
|
||||||
|
|||||||
@@ -246,3 +246,52 @@ def hestia_read_config_with_lock(config_file)
|
|||||||
end
|
end
|
||||||
arr
|
arr
|
||||||
end
|
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
|
// Data
|
||||||
exec(HESTIA_CMD . "v-ext-modules list json", $output, $return_var);
|
exec(HESTIA_CMD . "v-ext-modules-run passenger_manager get_rubys json", $output, $return_var);
|
||||||
$data = json_decode(implode("", $output), true);
|
$rubys = json_decode(implode("", $output), true);
|
||||||
ksort($data);
|
ksort($rubys);
|
||||||
|
|
||||||
unset($output);
|
unset($output);
|
||||||
|
|
||||||
// Render page
|
// Render page
|
||||||
render_page($user, $TAB, "extmodules");
|
render_page($user, $TAB, "extmodules_passenger_manager");
|
||||||
|
|
||||||
// Back uri
|
// Back uri
|
||||||
$_SESSION["back"] = $_SERVER["REQUEST_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