VMware {code} Community
r134ss
Contributor
Contributor
Jump to solution

GuestProcessManager C#

Hi, I tested WebService SDK 5.1.0 , but it didn't work.

The code is below.   I think  GuestProcessManager TYPE and VALUE is wrong.

I can't find the TYPE and VALUE character string in any resource.

(The character string in the below code is copied from JAVA code.)

In JAVA the GuestProcessManager CLASS exist , but in C#  I could not found that.

Please teach me the TYPE and VALUE caracter string or other any cause.

    public void displayNewProperties() {
            _service = ecb.getServiceConnectionV25().Service;
            _sic = ecb.getServiceConnectionV25().ServiceContent;
            String vmName = ecb.get_option("vmname");
            ManagedObjectReference vmmor = ecb.getServiceUtilV25().GetDecendentMoRef(null,
                                             "VirtualMachine", vmName);

            if (_sic.guestOperationsManager != null && vmmor.type == "VirtualMachine")
            {

                NamePasswordAuthentication nAuth = new NamePasswordAuthentication();
                nAuth.username = "ad\\administrator";
                nAuth.password = "passwordxxxxx";
                nAuth.interactiveSession = false;

                ManagedObjectReference prRef = new ManagedObjectReference();
                prRef.type = "GuestProcessManager";
                prRef.Value = "guestOperationsProcessManager";
               

                long[] pids = new long[] {};

                    GuestProcessInfo[] intervals
                        = ecb.getServiceConnectionV25()._service.ListProcessesInGuest(prRef,vmmor ,nAuth , null);

        foreach(GuestProcessInfo gpi in intervals )   {
                        Console.WriteLine(gpi.owner.ToString() + "," + gpi.pid.ToString() + "," + gpi.cmdLine.ToString());
                    }


            }
                if (vmmor != null)
                {
                ArrayList supportedVersions = VersionUtil.getSupportedVersions(ecb.get_option("url"));

                Object[] vmProps = getProperties(vmmor, new String[] { "name" });
                String serverName = (String)vmProps[0];
                Console.WriteLine("Virtual Machine Name " + serverName);

                vmProps = getProperties(vmmor, new String[] { "config.uuid" });
                String uuid = (String)vmProps[0];
                Console.WriteLine("Config UUID " + uuid);

                vmProps = getProperties(vmmor, new String[] { "config.guestId" });
                String guestId = (String)vmProps[0];
                Console.WriteLine("Guest Id " + guestId);

                if (VersionUtil.isApiVersionSupported(supportedVersions, "2.5"))
                {
                    vmProps = getProperties(vmmor, new String[] { "name" });
                   
                    Boolean bootOptionsSupported = (Boolean)getObjectProperty(vmmor, "capability.bootOptionsSupported");
                    Console.WriteLine("Boot Options Supported " + bootOptionsSupported);

                    Boolean diskSharesSupported = (Boolean)getObjectProperty(vmmor, "capability.diskSharesSupported");
                    Console.WriteLine("Disk Shares Supported " + diskSharesSupported);

                    Boolean flag = VersionUtil.isApiVersionSupported(supportedVersions, "4.0");
                    Console.WriteLine("Is API Supported  " + flag);
                    if (flag)
                    {
                        Console.WriteLine("\nProperties added in vSphere API 4.0\n");
                        Boolean changeTrackingSupported = (Boolean)getObjectProperty(vmmor, "capability.changeTrackingSupported");
                        Console.WriteLine("Change Tracking Supported " + changeTrackingSupported);

                        Boolean recordReplaySupported = (Boolean)getObjectProperty(vmmor, "capability.recordReplaySupported");
                        Console.WriteLine("Record Replay Supported " + recordReplaySupported);

                        VirtualMachineFaultToleranceState faultToleranceState
                           = (VirtualMachineFaultToleranceState)getObjectProperty(vmmor, "runtime.faultToleranceState");
                        Console.WriteLine("Fault Tolerance State " + faultToleranceState);
                    }
                }
            }
            else
            {
                Console.WriteLine("Virtal Machine Not Found");
            }
        }

Below is Result message.

[ 2013/06/05 16:29:51 ] Begin Log.
Started
There were one or more problems with the server certificate:

* A certification chain processed correctly, but terminated in a root certificat
e which isn't trusted by the trust provider.

* The certificate's CN name does not match the passed value.


Failure : The object has already been deleted or has not been completely created

Press enter to exit.

0 Kudos
1 Solution

Accepted Solutions
ABar
Contributor
Contributor
Jump to solution

Hello.

I obtained this moref as:

ManagedObjectReference  _guestOpManger = _ecb.getServiceConnectionV25().ServiceContent.guestOperationsManager;

ManagedObjectReference  _processManagerRef = (ManagedObjectReference)_ecb.getServiceUtilV25().GetDynamicProperty(_guestOpManger, "processManager");

Best Regards

Alexey Barabash

View solution in original post

0 Kudos
2 Replies
ABar
Contributor
Contributor
Jump to solution

Hello.

I obtained this moref as:

ManagedObjectReference  _guestOpManger = _ecb.getServiceConnectionV25().ServiceContent.guestOperationsManager;

ManagedObjectReference  _processManagerRef = (ManagedObjectReference)_ecb.getServiceUtilV25().GetDynamicProperty(_guestOpManger, "processManager");

Best Regards

Alexey Barabash

0 Kudos
r134ss
Contributor
Contributor
Jump to solution

Dear Alexey

You are a genius!

That work correctly.

Thank you so much. 

H.Nishi


0 Kudos