Egyszerű módot nem találtam rá.
Lehetne a wbemcli-vel példányt létrehozni (van példa a manualban a végén):
wbemcli ci 'http://meres:LaborImage@localhost:5988/root/cimv2:Linux_Fan.SystemCreationClassName="Linux_ComputerSystem",SystemName="irfserver.irf.local",CreationClassName="Linux_Fan",DeviceID="TestFan1"' SystemCreationClassName="Linux_ComputerSystem",SystemName="irfserver.irf.local",CreationClassName="Linux_Fan",DeviceID="TestFan1"
Erre ez a válasz:
*
* wbemcli: Cim: (7) CIM_ERR_NOT_SUPPORTED: The requested operation is not supported
*
Ugyanezt kapjuk, hogy a YAWN felületéről próbálnánk létrehozni:
http://localhost/yawn/CreateInstancePrep?url=https%3A%2F%2Flocalhost&className=Linux_Fan&ns=root%2Fcimv2
Van-e megoldás akkor?
HACK MODE ON
A HACK megoldás az lenne, hogy mivel egy MOF definícióban meg lehet adni példányokat is, közvetlenül az osztálydefiníciókkal együtt egy statikus példánytdefiníciót is megadunk.
Az sblim-sfcb a /var/lib/sfcb/registration
könyvtárban tárolja a CIM adatbázist bináris formában. A /var/lib/sfcb/stage
könyvtárban vannak a MOF fájlok (amik a lehetséges osztályokat adják meg) és a provider-ek leírói (adott osztályt milyen provider milyen lib-ben valósít meg). Itt kell megkeresni a Linux_Fan-t definiáló MOF-ot:
cd /var/lib/sfcb/stage/mofs/root/cimv2/
nano linux-fan-profile.mof
Írjuk be a végére a következőt:
instance of Linux_Fan
{
SystemCreationClassName = "Linux_ComputerSystem";
SystemName="irfserver.irf.local";
CreationClassName="Linux_Fan";
DeviceID="TestFan1";
};
Ez ugye egy konkrét példány statikus definíciója.
Ezután csak annyi kell, hogy kivenni, hogy a Linux_Fan-hoz ne legyen provider, mert akkor az visszaadná a szokásos FAN-okat.
cd /var/lib/sfcb/stage/regs/
nano linux-fan-profile.reg
Itt kommentezzük ki a következő sorokat (a # a komment jele):
[Linux_Fan]
provider: Linux_Fan
location: linux_fanprovider
type: instance method
namespace: root/cimv2
Hozzuk létre újra a mof és reg fájlokból az sfcb adatbázisát:
sfcbrepos
Ezek után már le tudjuk kérdezni a Linux_Fan példányait, és visszakapjuk a TestFan1 példányt. Azért a módszer még nem tökéletes, mert például a FanRedundancySet kapcsolóosztályai még visszaadnak FAN0 példányokat (amik nem léteznek), de ez már a többi provider implementációs hibája.
Természetesen az ilyen teszt FAN-nal való tesztelés nem elvárás, ezt csak érdekességként írtam le:)
HACK MODE OFF