echo "domena.cz" > /setup/apache/add_virtualhost echo 1 > /setup/apache/reload if cat /setup/apache/virtualhosts | grep "domena.cz"; then echo ok ; else echo fail;Totéž by mohl provést člověk přes konzoli, GUI i TUI aplikace. Pokud by bylo možné připojit virtuální systém po síti, pak i na dálku. Vůbec bychom nemuseli vědět, že na jednom stroji bylo provedeno deset fyzických akcí, na jiném dvacet - záleželo by na použitém modulu, cesty ve virtuálním filesystému by byly identické. Daemon konfiguračního systému, by byl velice jednoduchým frameworkem, který by na základě registrovaných modulů pouze vyráběl virtuální filesystém a staral by se o vzájemnou komunikaci, řešil zachycování chyb, logování a podobně. Zejména to unifikované logování by bylo velkým přínosem.
# mkdir /setup/apache/virtualdomains/domena.cz # ls /setup/apache/virtualdomains/domena.cz aliases ip rewrite_rules access_rights
cat postgresql/default/mojedb/current_locksPrakticky si pod tímhle představuji, že daemon spustí nějaký skript z modulu, který je registrován pod klíčem "postgresql". Skript získá informace a vráti je daemonu zpět. Daemon je pak vystaví jako soubor current_locks na virtuálním FS. Ještě hezčí přístup by byl
# ls postgresql/default/mojedb/current_locks/ # lock1 lock2 lock3 lock4 # cat postgresql/default/mojedb/current_locks/lock2Pak je ovšem nutné vyřešit, aby šlo pracovat nejen s jednorázovými požadavky typu "zápis do souboru - čtení souboru", ale i se streamem, tj. stálým propojením vstupu a výstupu nějakého toho skriptu s položkou ve virtuálním FS. Taktéž je nutné vyřešit zamykání, protože při přístupu "zápis do souboru - čtení ze souboru" se může stát, že v mezidobí přijde jiný proces, který data přečte. Možností je víc, třeba uchovávat, který proces zapsal a jen ten by mohl přečíst (pak je ale problém s vlákny, to už by si asi proces musel řešit sám). Nebo duplikovat výstup pro víc "čtenářů", atd. Nebo by daemon mohl vyrobit unixový socket, ale to není úplně user-friendly a navíc by pak takový virtuální FS nešlo používat vzdáleně.
SCR agenty AFAIK nejsou objektové. V podstatě se jedná o několik funkčních volání, z nichž některá přijímají cesty podobné CIMu. Nevidím kupříkladu zásadní problém v tom, aby z Bashe šlo přistupovat přímo k SCR. V úplně nejhorším případě se do Bashe dá načíst malá dynamická knihovna, ale samotné SCR agenty by měly být samostatné programy, které lze patřičným způsobem spustit z čehokoli. (Z hlavy tohle bohužel přesně neřeknu, musel bych se podívat, od které úrovně je standardizované jejich rozhraní, ale jak říkám, malá knihovna v Cčku načítaná do Bashe to jistí, to rozhraní nemůže být nijak složité.) Jak vidíte na uvedené stránce, po objektech (ve smyslu OOP) ani památky - zavoláte funkci a případně jí předáte nějaké ty parametry. :-) Pravda je, že na některých místech mohou nastat problémy, hlavně proto, že Bash nemá například hash tables. Některá SCR volání nevracejí jen skalární hodnoty, třeba agent pro .etc.passwd vrací "seznam slovníků" (v pythoní terminologii).
V současnosti je SCR agentů poměrně dost. Něco jsou věci specifické pro SUSE, ale spousta by jich asi fungovala všude out-of-the-box nebo jen s mírnými úpravami. V případě potřeby se dají dopsat další. Co agenty neošetřují, to je transakční vrstva. Ta je v hierarchii vrstev YaSTu trošku výše. Nicméně i tak mi přijde, že je to přinejmenším docela zajímavá inspirace. :-)