Clarify units used for storage pool capacity.
Clarify units used for storage pool capacity.
Add wrapper for Msvm_SummaryInformation class, which is used to gather details on VM processor state.
Include enum corresponding to the EnabledState of Hyper-V VMs, and
provide mapping to CloudStack equivalents.  EnabledState provides the
current state of the VM as opposed to RequiredState, which provides the
desired state.
Add wrapper to VmStatsEntry to simplify holding status for a number of VMs in a C# array.
First draft for CheckVirtualMachineCommand, DeleteStoragePoolCommand, ModifyStoragePoolCommand, CreateStoragePoolCommand, CleanupNetworkRulesCmd, CheckNetworkCommand, ReadyCommand, StartCommand, StopCommand, GetVmStatsCommand, GetStorageStatsCommand, GetHostStatsCommand

Each command corresponds to a specific URI.  A type-less JSON encoded command is POSTed to this URI.  The response is a Answer[] with a single element.  Using the array allows JSON encoding to insert the true type of the Answer object.  E.g. an encoded Answer[] will state whether the answer is an Answer or a StartAnswer.  The exception is StartupCommand, which returns a Command[] used by the initialize() method on the ServerComponent.

Current storage pool support is for Filesystem type.  Code validates the local path, and returns capacity and available bytes for that volume.  If it is the root device, 4 gigs are deducted for the parent partition.  No changes to the file system are made by delete, which means templates, VHDs, and folders are left in place.

Network instructions CleanupNetworkRulesCmd and CheckNetworkCommand are NOPs.  Network functionality to be added after basic capability to create/start/stop/destroy VM are available.

StartCommand and StopCommand updated for consistency with executeRequest's JSON and URL conventions.

GetVmStatsCommand does not provide total kb sent and received to the NIC.  It is providing difficult to find either a WMI object or Performance Counter that holds this information.

GetStorageStatsCommand assumes that no two pools use a folder on the same volume.  If you were to do so, the same capacity would be reported twice.
Map 405 HTTP error codes to UnsupportedAnswer, because 405 means there's no implementation for the command in the server resource.