HPE Morpheus VM Essentials
1843817 Members
3661 Online
110224 Solutions
New Discussion

Remote Console for Windows VM from custom Cloud provider

 
nolano
New Member

Remote Console for Windows VM from custom Cloud provider

Hello,

I am trying to bring up a remote console in Morpheus for windows VM's. These run in a Cloud, in which the Morpheus integration comes from a separate plugin.

The error message: "Ambiguous method overloading for method com.morpheus.provision.CloudPluginProvisioningService#getPluginProvisionProvider. Cannot resolve which method to invoke for [null] due to overlapping prototypes between: [class com.morpheus.ComputeServer] [class com.morpheus.Container] [class com.morpheus.Instance] [class com.morpheus.ProvisionType]"

I do not see any logs in guacd process, so I do not think it is a network issue. I think the issue is between Morpheus and the plugin.

Could I please get some info on what is needed in a Cloud Provider implementation for windows vm console access? So that I can try to determine what is missing in our plugin.

 

More specifics of our setup:

Morpheus 8.0.11

These are Windows VMs in containers running on rke2 using kubeVirt.

 

Full error and stack trace:

[http-nio-127.0.0.1-8080-exec-245] Closing session due to exception for StandardWebSocketSession[id=3569d1a2-1163-105b-958b-fe11f21bd78b, uri=ws://<redacted>/remote/socket?leaseToken=&clientOs=Windows&containerId=&consoleKeymap=en-us-qwerty&consoleMode=guest&serverId=533&allocationId=&remoteApp=&GUAC_ID=08d29fa7-07e4-4575-ba39-8f01388ea743&GUAC_AUDIO=audio%2FL8&GUAC_AUDIO=audio%2FL16&GUAC_WIDTH=1024&GUAC_HEIGHT=768&GUAC_IMAGE=image%2Fjpeg&GUAC_IMAGE=image%2Fpng&GUAC_IMAGE=image%2Fwebp] groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method com.morpheus.provision.CloudPluginProvisioningService#getPluginProvisionProvider. Cannot resolve which method to invoke for [null] due to overlapping prototypes between: [class com.morpheus.ComputeServer] [class com.morpheus.Container] [class com.morpheus.Instance] [class com.morpheus.ProvisionType] at com.morpheus.provision.AbstractProvisionService.getPluginProvisionProvider(AbstractProvisionService.groovy:4130) [10 skipped] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at com.morpheus.provision.CloudPluginProvisioningService.enableConsoleAccess(CloudPluginProvisioningService.groovy:2550) [7 skipped] at com.morpheus.provision.CloudPluginProvisioningService$enableConsoleAccess.call(Unknown Source) at com.morpheus.remote.GuacamoleTunnelBuilder$Trait$Helper$_getTunnel_closure1$_closure3.doCall(GuacamoleTunnelBuilder.groovy:196) [3 skipped] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at com.bertramlabs.plugins.Account.withNewSession(Account.groovy) [16 skipped] at com.bertramlabs.plugins.Account$withNewSession$1.call(Unknown Source) at com.morpheus.remote.GuacamoleTunnelBuilder$Trait$Helper$_getTunnel_closure1.doCall(GuacamoleTunnelBuilder.groovy:104) [3 skipped] at com.morpheus.remote.GuacamoleTunnelBuilder$Trait$Helper$_getTunnel_closure1.doCall(GuacamoleTunnelBuilder.groovy) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at jdk.internal.reflect.GeneratedMethodAccessor776.invoke(Unknown Source) [8 skipped] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at jdk.proxy3/jdk.proxy3.$Proxy221.subscribe(Unknown Source) [8 skipped] at io.reactivex.internal.operators.single.SingleCreate.subscribeActual(SingleCreate.java:39) at io.reactivex.Single.subscribe(Single.java:3666) at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89) at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:608) at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66) at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)