"addGuestOSMapping API" will help resolving the Windows 10 issue.
With XS 6.5 SP1 the windows 10 template name in XenServer was ' Windows 10 Preview (64-bit) (experimental)'. For Windows 10 (64-bit) there is no mapping in CloudPlatform 4.5.1.
CloudPlatform has a mechanism using which admin can introduce a new guest OS and mapping it to the corresponding Guest OS name in respective hypervisors. Here is how we can do it for Windows 10 64 bit. You can use the same API calls for any guest OS going forward.
1. We have to run 'listGuestOsCategories' API – Run this request and capture the OS category id
From the output we will get the oscategoryid, please save the ID for the Guest OS for which you want to add the mapping.
For example, in my case OSCATEGORY ID for windows is d46cf754-8c9f-11e5-b296-0601ec000134
2.To add guest os use 'addGuestOs' API, for example
http://<<management server IP>>:8096/client/api?command=addGuestOs&oscategoryid=d46cf754-8c9f-11e5-b296-0601ec000134&osdisplayname=Windows 10 (64-bit)
Use display name according to your wish. We have to use the same displayname in 'addGuestOsMapping' API query
3. Now run 'addGuestOsMapping' API query with osdisplayname where the name should the osdisplayname provided in step (2)
http://<<management server IP>>:8096/?command=addGuestOsMapping&hypervisor=XenServer&hypervisorversion=6.5.0&osnameforhypervisor=Windows 10 (64-bit)&osdisplayname=Windows 10 (64-bit)
Once these are performed change the Guest OS for the templates from 'Windows 10 Preview (64-bit) (experimental)' to 'Windows 10 (64-bit)' to deploy virtual machines using them.