Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!

SDK Fragen

Alles zum Virtualisierungsmanagement und Servermanagement, was nicht direkt in ein festes Version-Schema paßt.

Moderatoren: irix, continuum, Dayworker

Member
Beiträge: 4
Registriert: 30.04.2010, 12:49

SDK Fragen

Beitragvon vHarald » 30.04.2010, 12:54

Hallo

Ich habe folgende Fragen zum SDK:
- Wie kann man die Privilegien auf einem Managedobject auslesen?
Beispiel: Kann der User die VM ausschalten?
- Wie setze ich beim klonen einer VM die Netzwerkkarte?
- Kann man den Netbiosnamen einer VM über das SDK auslesen?


Ich benutze das SDK mit .Net. Wäre nett wenn mir jemand helfen könnte.

Benutzeravatar
Moderator
Beiträge: 3476
Registriert: 23.02.2005, 09:14
Wohnort: Burgberg im Allgäu
Kontaktdaten:

Beitragvon Tschoergez » 30.04.2010, 14:22

Mahlzeit!

Passend zum Wochenende noch knackige Fragen, so is fein :grin: ...

Aaaalso:
Benutzerberechtigungen gehen über den AuthorizationManager, evtl. hilft Dir das weiter:
http://vmware-forum.de/viewtopic.php?t=13796
Zum Auslesen gibts die Mehtode RetrieveEntityPermission()..

Netzwerkkarte beim Clonen is a bisserl schwieriger:
Man gibt dem cloneVM_Task() eine VirtualMachineCloneSpec mit, die hat (seit API4.0 glaub ich) eine VirtualMachineConfigSpec , in der man unter deviceChange änderungen an der virtuellen HArdware der Ziel-VM mitgeben kann.
Hier mal mein Script zum ändern der MAC-Adresse in der Ziel-VM (unter Java im VMware Orchestrator, sollte aber mit.net ähnlich funktionieren:

Code: Alles auswählen

System.log("start changeMac");

var devicearr = new Array();

//Neues Portgruppen-Objekt erstellen
var nic = new VcVirtualEthernetCardNetworkBackingInfo();
nic.deviceName = newNetwork;

var devicespec = new VcVirtualDeviceConfigSpec();
var devices = vm.config.hardware.device;
var connectInfo = new VcVirtualDeviceConnectInfo();
connectInfo.startConnected = true;
for( var i in devices) {
   //System.log("Loop through devicearray...: "  + i);
   var curDevice = devices[i];
   //System.log("current Device: " + curDevice);
   
   if(curDevice instanceof VcVirtualPCNet32 || curDevice instanceof VcVirtualE1000 || curDevice instanceof VcVirtualVmxnet2 || curDevice instanceof VcVirtualVmxnet3) {
      //System.log("Current Device is Network Card...");
         devicespec.device = curDevice;
         devicespec.operation = VcVirtualDeviceConfigSpecOperation.edit;
         devicespec.device.addressType = "Manual";
         devicespec.device.macAddress = newMAC;
         devicespec.device.connectable = connectInfo;
         devicespec.device.backing = nic;
         devicearr[0] = devicespec;
      //   System.log("First Network Card changed, breaking loop.");
         break;
   }
}

System.log("end changeMac");
return devicearr;



Netbiosnamen: Da muss ich passen! Die Tools lesen ja den DNS-Namen aus, der steht dann via API unter VirtualMachine.Guest.hostname zur Verfügung.
Evtl. kann man über die VIX-Api was auslesen....


Viele Grüße,
Jörg

Member
Beiträge: 4
Registriert: 30.04.2010, 12:49

Beitragvon vHarald » 03.05.2010, 09:06

Hallo Jörg

Danke für die schnelle Hilfe.
Die Methode RetrieveEntityPermission habe ich schon entdeckt.
Aber wie kann ich damit ein Privileg ermitteln?
Ich möchte prüfen ob z.B. vor dem PowerOn der Benutzer das Privileg "VirtualMachine.Interact.PowerOn" hat.
Hintergrund ist der, das ich nicht in einen AuthorizationError laufen möchte.

Gruß
Harald


Zurück zu „vCenter / VMware VirtualCenter“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast