You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by Donal Lafferty <do...@citrix.com> on 2013/09/05 10:28:30 UTC

Re: Review Request 13922: Minimal Hyper-V Plugin

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/13922/
-----------------------------------------------------------

(Updated Sept. 5, 2013, 8:28 a.m.)


Review request for cloudstack, Alex Huang, Chiradeep Vittal, and Devdeep Singh.


Changes
-------

Re add dependency that was accidentally deleted at first submission.


Repository: cloudstack-git


Description
-------

A plugin for Hyper-V control is available for CloudStack.  The plugin implements basic VM control;  however, its architecture allows additional functionality to be easily added.  Incorporating the plugin in CloudStack will allow the community to participate in improving the features available with Hyper-V.

The plugin uses a Director Connect Agent architecture described here: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Progress

This links provides details of third party libraries used by the plugin including their licenses.  No source for these libraries is used, and the binaries are downloaded from their distributors at build time. 

No proprietary tools are required for the build.  For instance, C# compiled with Mono has been tested.  Therefore, the plugin has been added to the default build and the default deployment.

The plugin includes unit and functional tests that can be triggered at build time.  See the link above for details.

The Apache header is applied to source and where feasible to build config files.

The source is the https://github.com/lafferty/cloudstack/tree/hyperv_plugin


Diffs
-----

  client/pom.xml 1afe5b898d328b06b5da7c132eaed14fefc78718 
  client/tomcatconf/applicationContext.xml.in 956c77c5fa6c3d909be1fbee8ba26e8d8ba1dce7 
  client/tomcatconf/componentContext.xml.in f36d0ee02a2eb91733f6f2a76be60a1477529d4d 
  client/tomcatconf/simulatorComponentContext.xml.in c46d1de086a5633b64c90884dbc02a03c3b2e8ad 
  plugins/hypervisors/hyperv/DotNet/ServerResource/.gitignore PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/.nuget/NuGet.Config PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/.nuget/NuGet.targets PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/AgentShell/AgentService.Designer.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/AgentShell/AgentService.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/AgentShell/AgentSettings.Designer.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/AgentShell/AgentSettings.settings PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/AgentShell/AgentShell.csproj PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/AgentShell/AgentShellException.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/AgentShell/App.config PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/AgentShell/Program.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/AgentShell/Properties/AssemblyInfo.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/AgentShell/packages.config PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/App.config PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/CloudStackTypes.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/HypervResource.csproj PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/HypervResourceController.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/Properties/AssemblyInfo.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/Utils.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/WmiCalls.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/packages.config PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/ServerResource.Tests/App.config PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/ServerResource.Tests/HypervResourceControllerTest.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/ServerResource.Tests/Properties/AssemblyInfo.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/ServerResource.Tests/ServerResource.Tests.csproj PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/ServerResource.Tests/packages.config PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/ServerResource.sln PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/Properties/AssemblyInfo.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.CIMV2.Win32_OperatingSystem.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.CIMV2.Win32_Processor.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_ComputerSystem.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_ConcreteJob.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_ExternalEthernetPort.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_IDEController.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_ImageManagementService.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_MemorySettingData.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_ProcessorSettingData.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_ResourceAllocationSettingData.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_SummaryInformation.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_SwitchLANEndpoint.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_SwitchPort.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_SyntheticEthernetPort.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_SyntheticEthernetPortSettingData.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_VLANEndpoint.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_VLANEndpointSettingData.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_VirtualSwitch.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_VirtualSwitchManagementService.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_VirtualSystemGlobalSettingData.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_VirtualSystemManagementService.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_VirtualSystemManagementServiceSettingData.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_VirtualSystemSettingData.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/ROOT.virtualization.Msvm_VmLANEndpoint.cs PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/Readme.txt PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/WmiWrappers.csproj PRE-CREATION 
  plugins/hypervisors/hyperv/DotNet/ServerResource/WmiWrappers/root.CIMV2.Win32_PerfFormattedData_Counters_ProcessorInformation.cs PRE-CREATION 
  plugins/hypervisors/hyperv/buildagent.sh PRE-CREATION 
  plugins/hypervisors/hyperv/conf/agent.properties PRE-CREATION 
  plugins/hypervisors/hyperv/conf/developer.properties.template PRE-CREATION 
  plugins/hypervisors/hyperv/conf/environment.properties.in PRE-CREATION 
  plugins/hypervisors/hyperv/conf/log4j-cloud.xml PRE-CREATION 
  plugins/hypervisors/hyperv/conf/log4j-cloud.xml.in PRE-CREATION 
  plugins/hypervisors/hyperv/conf/log4j.xml PRE-CREATION 
  plugins/hypervisors/hyperv/pom.xml PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/pom.xml PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/AwtBellAdapter.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/AwtCanvasAdapter.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/AwtClipboardAdapter.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/AwtKeyEventSource.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/AwtMouseEventSource.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/BitmapOrder.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/BitmapRectangle.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/BufferedImageCanvas.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/BufferedImageCopyRectAdapter.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/BufferedImagePixelsAdapter.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/Client.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/CopyRectOrder.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/KeyOrder.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/MouseOrder.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/OrderType.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/ScreenDescription.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/common/SizeChangeListener.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/AwtRdpKeyboardAdapter.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/AwtRdpMouseAdapter.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ClientConfirmActivePDU.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ClientFastPathPDU.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ClientInfoPDU.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ClientMCSAttachUserRequest.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ClientMCSChannelJoinRequest_ServerMCSChannelConfirmPDUs.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ClientMCSConnectInitial.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ClientMCSErectDomainRequest.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ClientPacketSniffer.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ClientSynchronizePDU.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ClientTpkt.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ClientX224ConnectionRequestPDU.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ClientX224DataPdu.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/HandshakeEnd.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/MockServer.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/PacketSniffer.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/RLEBitmapDecompression.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/RdpClient.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/RdpConstants.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/RdpState.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerBitmapUpdate.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerChannel1003Router.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerControlPDUCooperate.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerControlPDUGrantedControl.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerDemandActivePDU.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerFastPath.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerLicenseErrorPDUValidClient.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerMCSAttachUserConfirmPDU.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerMCSChannelJoinConfirmPDU.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerMCSConnectResponse.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerMCSPDU.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerPacketSniffer.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerPaletteUpdate.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerSynchronizePDU.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerTpkt.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerX224ConnectionConfirmPDU.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/ServerX224DataPdu.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/TrustAllX509TrustManager.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/rdpclient/UpgradeSocketToSSL.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/AssertingByteBuffer.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/BaseElement.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/BufferPool.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/ByteBuffer.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/DataSink.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/DataSource.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/Direction.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/Element.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/Event.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/FakeSink.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/FakeSource.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/InputStreamSource.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/Link.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/MockSink.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/MockSource.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/OneTimeSwitch.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/Order.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/OutputStreamSink.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/Pipeline.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/PipelineImpl.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/Queue.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/SocketWrapper.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/streamer/SyncLink.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/vncclient/AwtKeyboardEventToVncAdapter.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/vncclient/AwtMouseEventToVncAdapter.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/vncclient/EncodingsMessage.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/vncclient/FrameBufferUpdateRequest.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/vncclient/RGB888LE32PixelFormatRequest.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/vncclient/RfbConstants.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/vncclient/VncClient.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/vncclient/VncInitializer.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/vncclient/VncMessageHandler.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/vncclient/Vnc_3_3_Authentication.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/main/java/vncclient/Vnc_3_3_Hello.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/test/java/rdpclient/AppTest.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/test/java/rdpclient/AprSslTest.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/test/java/rdpclient/MockServer.java PRE-CREATION 
  plugins/hypervisors/hyperv/rdpclient/src/test/java/rdpclient/MockServerTest.java PRE-CREATION 
  plugins/hypervisors/hyperv/scripts/dev_extra_setup.sh PRE-CREATION 
  plugins/hypervisors/hyperv/src/com/cloud/hypervisor/hyperv/discoverer/HypervServerDiscoverer.java PRE-CREATION 
  plugins/hypervisors/hyperv/src/com/cloud/hypervisor/hyperv/guru/HypervGuru.java PRE-CREATION 
  plugins/hypervisors/hyperv/src/com/cloud/hypervisor/hyperv/resource/HypervDirectConnectResource.java PRE-CREATION 
  plugins/hypervisors/hyperv/test/com/cloud/hypervisor/hyperv/test/HypervDirectConnectResourceTest.java PRE-CREATION 
  plugins/pom.xml 0812642b7c01206377f5abbbca220523b5b3925f 

Diff: https://reviews.apache.org/r/13922/diff/


Testing
-------

Integration test:  created zone with CIFS secondary storage, added Hyper-V host, registered templates, create/stop/start/destroy VM.  Scripts for zone setup are available on request.

Funcitonal & unit tests:  the Java versions are part of the build.  The C# versions were run inside Visual Studio's Test Explorer.


Thanks,

Donal Lafferty