Comparison

plugins/mod_admin_shell.lua @ 13128:38582771b593

mod_admin_shell: Warn when (un-)loading module would be undone by restart Reminder to update the configuration if the change is to be permanent.
author Kim Alvefur <zash@zash.se>
date Tue, 06 Jun 2023 22:00:54 +0200
parent 13117:7eb6244b4984
child 13132:5bfcfd12c423
comparison
equal deleted inserted replaced
13127:f45a29b32f7a 13128:38582771b593
597 hosts = get_hosts_with_module(hosts); 597 hosts = get_hosts_with_module(hosts);
598 598
599 -- Load the module for each host 599 -- Load the module for each host
600 local ok, err, count, mod = true, nil, 0; 600 local ok, err, count, mod = true, nil, 0;
601 for host in hosts do 601 for host in hosts do
602 local configured_modules, component = modulemanager.get_modules_for_host(host);
603
602 if (not modulemanager.is_loaded(host, name)) then 604 if (not modulemanager.is_loaded(host, name)) then
603 mod, err = modulemanager.load(host, name); 605 mod, err = modulemanager.load(host, name);
604 if not mod then 606 if not mod then
605 ok = false; 607 ok = false;
606 if err == "global-module-already-loaded" then 608 if err == "global-module-already-loaded" then
611 end 613 end
612 self.session.print(err or "Unknown error loading module"); 614 self.session.print(err or "Unknown error loading module");
613 else 615 else
614 count = count + 1; 616 count = count + 1;
615 self.session.print("Loaded for "..mod.module.host); 617 self.session.print("Loaded for "..mod.module.host);
618
619 if not (configured_modules:contains(name) or name == component) then
620 self.session.print("Note: Module will not be loaded after restart unless enabled in configuration");
621 end
616 end 622 end
617 end 623 end
618 end 624 end
619 625
620 return ok, (ok and "Module loaded onto "..count.." host"..(count ~= 1 and "s" or "")) or ("Last error: "..tostring(err)); 626 return ok, (ok and "Module loaded onto "..count.." host"..(count ~= 1 and "s" or "")) or ("Last error: "..tostring(err));
624 hosts = get_hosts_with_module(hosts, name); 630 hosts = get_hosts_with_module(hosts, name);
625 631
626 -- Unload the module for each host 632 -- Unload the module for each host
627 local ok, err, count = true, nil, 0; 633 local ok, err, count = true, nil, 0;
628 for host in hosts do 634 for host in hosts do
635 local configured_modules, component = modulemanager.get_modules_for_host(host);
636
629 if modulemanager.is_loaded(host, name) then 637 if modulemanager.is_loaded(host, name) then
630 ok, err = modulemanager.unload(host, name); 638 ok, err = modulemanager.unload(host, name);
631 if not ok then 639 if not ok then
632 ok = false; 640 ok = false;
633 self.session.print(err or "Unknown error unloading module"); 641 self.session.print(err or "Unknown error unloading module");
634 else 642 else
635 count = count + 1; 643 count = count + 1;
636 self.session.print("Unloaded from "..host); 644 self.session.print("Unloaded from "..host);
645
646 if configured_modules:contains(name) or name == component then
647 self.session.print("Note: Module will be loaded after restart unless disabled in configuration");
648 end
637 end 649 end
638 end 650 end
639 end 651 end
640 return ok, (ok and "Module unloaded from "..count.." host"..(count ~= 1 and "s" or "")) or ("Last error: "..tostring(err)); 652 return ok, (ok and "Module unloaded from "..count.." host"..(count ~= 1 and "s" or "")) or ("Last error: "..tostring(err));
641 end 653 end