| Summary: | [RFE] VM Networks incorrectly discovered in SCVMM provider | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | Red Hat CloudForms Management Engine | Reporter: | ncatling | ||||||||
| Component: | Providers | Assignee: | Adam Grare <agrare> | ||||||||
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Dave Johnson <dajohnso> | ||||||||
| Severity: | high | Docs Contact: | |||||||||
| Priority: | high | ||||||||||
| Version: | 5.6.0 | CC: | bsorota, cpelland, dajohnso, dberger, gblomqui, gekis, jfrey, jhardy, jocarter, mfeifer, obarenbo, tfitzger | ||||||||
| Target Milestone: | GA | Keywords: | FutureFeature, TestOnly | ||||||||
| Target Release: | 5.10.0 | ||||||||||
| Hardware: | Unspecified | ||||||||||
| OS: | Unspecified | ||||||||||
| Whiteboard: | scvmm:inventory | ||||||||||
| Fixed In Version: | 5.10.0.0 | Doc Type: | If docs needed, set a value | ||||||||
| Doc Text: | Story Points: | --- | |||||||||
| Clone Of: | |||||||||||
| : | 1511151 (view as bug list) | Environment: | |||||||||
| Last Closed: | 2018-06-21 21:12:25 UTC | Type: | Bug | ||||||||
| Regression: | --- | Mount Type: | --- | ||||||||
| Documentation: | --- | CRM: | |||||||||
| Verified Versions: | Category: | Bug | |||||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||
| Cloudforms Team: | CFME Core | Target Upstream Version: | |||||||||
| Bug Depends On: | |||||||||||
| Bug Blocks: | 1511151 | ||||||||||
| Attachments: |
|
||||||||||
When I compared provisioning directly from SCVMM template, versus provisioning from CFME, is see the exact same list for Virtual Networks. But when I select a host or cluster from SCVMM and choose Show Networking, the same values are under logical networks. So SCVMM seems to be using the same values interchangeably. I'm going to need a bit more time to research why this happens. Yep, it's showing the logical switch name all right. I renamed my entire network to make sure the names were unique and identifiable. Otherwise, the default is the give the logical and virtual values the same name, which is the likely source of confusion. It's definitely not something that stands out. In Get-Inventory.ps, this line: $vmnet = Get-SCVirtualNetworkAdapter -VM $_ | Select-Object VMNetwork returns the logical network name Changing that to $vmnet = Get-SCVirtualNetworkAdapter -VM $_ | Select-Object VirtualNetwork Returns the virtual network name. Replace $_ with SCVMM2016 on our SCVMM environment to see the difference. That should get you started. Jeff, thanks for that. However, we'll also have to make some backend parsing changes because the XML it generates is different. I've been looking into it, and hope to have a solution ready this week. Upon further review with Jeff Teehan, we aren't sure that this is a bug. I will let Jeff comment. I don't see a way to fix this without breaking the entire installed base. The problem is, you don't have to have an SCVMM VM Network to use SCVMM. It defaults to creating the Logical Networks by picking up the Virtual Switches based on the hosts networking as they are added. If we only list the SCVMM VM Networks, and the customer hasn't configured SCVMM that way, what would we do then? To date, we've just relied on the Logical Network, which is the primary building block use to model physical network infrastructure and connectivity. And using this model, we've (I) have deployed 1000s of VMs without issue. The bottom line from my point of view is that we can't just change the value (it would take one minute to do it) and swap one set of problems for another. A hybrid solution would have to be architected to take into account all of the combinations. or Add a customization tab like vSphere has and push the above powershell script. Anyway, that's what I'm seeing from my console. I should also point out that if you go to SCVMM, right click on a template, select Create Virtual Machine. Under select network, the only choice is for a VM Network and you see the exact same list as the one we display. Does "Get-SCVMNetwork | select name" return the list of networks that you expect to see? Created attachment 1319778 [details]
service dialog export
Created attachment 1319779 [details]
automate domain export
Our solution for 4.5 is to provide service dialogs via automate that the users can apply for post-provisioning. Once imported, a series of dynamic drop-down menus will be selectable for logical network, vm network and vm subnet. These are all backed by powershell, as is the actual post-provisioning process, which the customer can tweak if desired. I've attached the necessary files, and Tina F. will provide additional instructions. Created attachment 1319780 [details]
scvmm automate domain
We created a new Automate domain that contains all of the Automate changes necessary to properly apply network changes in VM post provisioning. For Testing purposes: 1. Import the attached scvmm Automate domain(comment 33). (Make sure domain is enabled is the highest enabled domain) 2. Import Service dialog(comment 30) 3. Create a Service Catalog item, specifying the dialog imported in step 2. 4. Order Service and validate network settings. Applying the changes to the customer environment will require integrating our changes into their existing Service dialogs/Automate model. Will discuss in more detail once testing is complete. The following PRs added the same provisioning options as the automate domain: https://github.com/ManageIQ/manageiq-providers-scvmm/pull/19 https://github.com/ManageIQ/manageiq-providers-scvmm/pull/27 https://github.com/ManageIQ/manageiq/pull/16177 https://github.com/ManageIQ/manageiq-ui-classic/pull/2373 |
Description of problem: SCVMM provider discovery process captures 'Logical Networks', where as 'VM Networks' with associated VLAN are required for VM provisioning. The 'Logical Networks' and not the 'VM Networks', are displayed in the provisioning dialogues. Post provisioning, it is possible to run this PowerShell snippet to properly configure the VM's network. $VirtualNetworkAdapter = Get-SCVirtualNetworkAdapter -Name '#{vm.name}' -ID (Get-SCVirtualMachine -Name '#{vm.name}' | Get-SCVirtualNetworkAdapter).id $VMNetwork = Get-SCVMNetwork -VMMServer localhost -Name '#{vm_network}' $VMSubnet = Get-SCVMSubnet -VMMServer localhost -Name '#{vm_subnet}' Set-SCVirtualNetworkAdapter -VirtualNetworkAdapter $VirtualNetworkAdapter -VMNetwork $VMNetwork -VMSubnet $VMSubnet -VirtualNetwork 'My Logical Switch' -MACAddress #{mac_address} | Out-Null Version-Release number of selected component (if applicable): SCVMM 2012 R2 and 2016 How reproducible: Steps to Reproduce: 1. Add provider 2. Lifecycle > Provision, select template 3. View network tab for discovered networks Actual results: Expected results: Additional info: