Python platformfüggetlenség

+1 vote
asked Apr 4, 2013 in IRF tantárgy by anonymous  
edited Apr 5, 2013 by micskeiz

Python házi feladatomban meg kell valósítanom WS-Management-el a távoli lekérdezést mind Linux-ra, mind Windows-ra.

  1. Sajnos a wsman lekérdezések nem mindig ugyanolyan formátumban adják vissza az xml-eket a két platformok esetén (kicsit más elnevezésű tag-ek).
    Például linuxnál kapok egy ilyen tag-et XML elemet: <n1:Name>eth0</n1:Name>
    Ugyanez windowsnál: <p:Name>lan</p:Name>
    Ami egy pythonos string kivágásnál problémát okoz [9:-9]

  2. Némely osztályok különböző namespacekben vannak a két platform esetén.
    (root/cimv2 -root/standardcimv2)

Probléma lehet e házi feladat javításkor, ha én úgy írom meg a szkriptemet, hogy az elején elágazok a szerint, hogy windowsról vagy linuxról kell lekérdeznem (így a szkript egy részét duplikálom)? Meg szabad ezt tenni?

Vagy mindenképp úgy kell elkészíteni a szkriptet, hogy egybe működjön mindkét platformon?

1 Answer

0 votes
answered Apr 5, 2013 by micskeiz (2,681 points)  

A HF-ben törekedni kell a platform-függetlenségre, de sajnos ezt néha sehogy sem lehet megoldani (pl. más névtérben lévő osztályok). Érdemes az elején közösen haladni, aztán valahol elágazni. De itt is célszerű valami szebb megoldást használni, pl. hasonló felépítésű kódrészek, közös függvényt bevezetni (ha lehet). A cél az, hogy kerüljük a teljes kód duplikálását, mert ez általában probléma lesz később.

  1. XML feldolgozás: itt azzal lehetne segíteni, ha valami XML feldolgozó modult használsz, és nem stringet darabolsz. Akkor lehet kezelni, hogy a Name elemet kéred vissza, és a névtér prefix részével nem foglalkozol.

  2. Más CIM névtér: Erre sajnos jó megoldás nincs, mivel nem definiált a szabványban, hogy milyen névtérbe kell rakni ezeket az osztályokat, ezért ezt a gyártók szabadon választják (itt például pont különbözőt választottak sajnos).

asked Apr 5, 2013 in IRF tantárgy by anonymous  
retagged Apr 6, 2013 by micskeiz
Platformfüggetlenség, NetworkPort kapcsolódó osztályok
...