Hi Gregor,

the code around managing VM details for existing VMs (CONTROLLER
specifically) could be a bit better - but in short - there is NO way to
change existing controller type from the current ones (for VMware
specifically) using CloudStack (btw you "can" make the change in the GUI,
while VM is stopped - there is a  "Settings" tab there.)

You "can" change these details on the VM level (existing VMs) via API/GUI,
this changes the records in the "user_vm_details" table - but simply these
new values are NOT read/applied during starting an existing VM - actually,
even when you change that in GUI (or DB) and start a VM - these values will
be reverted back.

I just did more tests - and the way to change it would be to stop VM, go to
vCenter, change (all 4 controllers)  to " LSI Logic SAS" (or any other you
want) - then go back to CloudStack and edit VM details (Settings tab, while
VM is stopped) to "lsisas1068" - simply to sync ACS to reality (to vCenter).

Make sure to do proper testing, since changing root controller driver in
Windows can sometimes cause it to fail boot.

Best,
Andrija



On Thu, 16 May 2019 at 21:44, Riepl, Gregor (SWISS TXT) <
gregor.ri...@swisstxt.ch> wrote:

>
> > $ cloudstack addResourceDetail "details[0].key=rootDiskController"
> > "details[0].value=lsisas1068" "resourcetype=UserVm" "resourceid=$id"
>
> Note: lsisas1068 comes from
>
> https://github.com/apache/cloudstack/blob/4.11.2.0/vmware-base/src/com/cloud/hypervisor/vmware/mo/ScsiDiskControllerType.java
>
> We had set this to lsilogicsas previously (on CS 4.5), which causes the
> following exception on start on CS 4.11.2.0:
>
> com.cloud.utils.exception.CloudRuntimeException: Invalid root disk
> controller detected : none
>         at
> com.cloud.hypervisor.vmware.resource.VmwareResource.execute(VmwareResou
> rce.java:1690)
>         at
> com.cloud.hypervisor.vmware.resource.VmwareResource.executeRequest(Vmwa
> reResource.java:496)
>         at
> com.cloud.agent.manager.DirectAgentAttache$Task.runInContext(DirectAgen
> tAttache.java:315)
>         at
> org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(Mana
> gedContextRunnable.java:49)
>
> ...
>


-- 

Andrija Panić

Reply via email to