public RemoteConsole getConsole()
        {
            RemoteConsole rc = new RemoteConsole();


            VirtualMachineMksTicket ticket = testMks();

            //Console.WriteLine( "Ticket dump:" );
            //Console.WriteLine( "  host: " + ticket.host );
            //Console.WriteLine( "  port: " + ticket.port );
            //Console.WriteLine( "  port specified: " + ticket.portSpecified );
            //Console.WriteLine( "  ssl: " + ticket.sslThumbprint );
            //Console.WriteLine( "  ticket: " + ticket.ticket );
            //Console.WriteLine( "  cfgFile: " + ticket.cfgFile );
            //Console.WriteLine( "  string: " + ticket.ToString() );

            String hostname   = "192.168.1.3:9443";
            String serverGuid = "11111111-1111-1111-1111-111111111111";

            serverGuid = "22222222-2222-2222-2222-222222222222";       // TODO do this proceduraly :-|
            String host = "192.168.1.3:443";
            //debugAllProperties();
            String vmId          = vmmor.Value;
            String sessionTicket = "cst-VCT-" + ticket.ticket + "--tp-" + ticket.sslThumbprint.Replace(":", "-");  // TODO find/replace : with -
            String url           = "https://" + hostname + "/vsphere-client/webconsole.html?vmId=" + vmId + "&vmName=" + getName() + "&serverGuid=" + serverGuid + "&locale=en_US&host=" + host + "&sessionTicket=" + sessionTicket + "&thumbprint=" + ticket.sslThumbprint;


            //Console.WriteLine( url );

            rc.url = url;
            return(rc);
        }
 private VirtualMachineMksTicket testMks()
 {
     try
     {
         //ManagedObjectReference hostmor = cb.getServiceUtil().GetFirstDecendentMoRef( null, "HostSystem" );
         VirtualMachineMksTicket ticket = cb.getConnection().Service.AcquireMksTicket(vmmor);
         return(ticket);
     }
     catch (SoapException e)
     {
         Console.WriteLine(e.Detail);
         return(null);
     }
 }
예제 #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            bool boolError = true;

            if (Request.QueryString["name"] != null && Request.QueryString["name"] != "" & Request.QueryString["token"] != null && Request.QueryString["token"] != "")
            {
                Tokens oToken   = new Tokens(0, dsn);
                string strName  = Request.QueryString["name"];
                string strToken = Request.QueryString["token"];
                if (oToken.Get(strName, strToken) == true)
                {
                    // Delete Token
                    oToken.Update(strName, strToken);

                    // Render Preview
                    VMWare oVMWare = new VMWare(0, dsn);
                    //strName = "WDBIX103A";
                    string     strConnect = oVMWare.Connect(strName);
                    VimService _service   = oVMWare.GetService();
                    if (strConnect == "")
                    {
                        ManagedObjectReference vmRef = oVMWare.GetVM(strName);
                        if (vmRef.Value != null)
                        {
                            try
                            {
                                VirtualMachineMksTicket oTicket = _service.AcquireMksTicket(vmRef);
                                string strVMHost   = oTicket.host;
                                string strVMPort   = oTicket.port.ToString();
                                string strVMPath   = oTicket.cfgFile;
                                string strVMTicket = oTicket.ticket;
                                Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "start_count", "<script type=\"text/javascript\">window.onload = new Function(\"connect('" + strVMHost + "','" + strVMPath + "','" + strVMTicket + "','" + strVMPort + "');\");<" + "/" + "script>");
                                boolError = false;
                            }
                            catch { }
                        }
                    }
                    if (_service != null)
                    {
                        ServiceContent _sic = oVMWare.GetSic();
                        _service.Abort();
                        if (_service.Container != null)
                        {
                            _service.Container.Dispose();
                        }
                        try
                        {
                            _service.Logout(_sic.sessionManager);
                        }
                        catch { }
                        _service.Dispose();
                        _service = null;
                        _sic     = null;
                    }
                }
            }
            if (boolError == true)
            {
                Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "start_count", "<script type=\"text/javascript\">window.onload = new Function(\"window.parent.VMWareNoPreview();\");<" + "/" + "script>");
            }
        }