Thanks for that information, I updated the patch before I applied it.
On Wed, Oct 08, 2014 at 05:47:05PM +0000, Alin Serdean wrote: > Hi Ben, > > The author is: Lucian Petrut. I just reviewed his work and tested it. > > Think he has some environment problems with git send-email also: > Signed-off-by: Lucian Petrut <[email protected]> > > Thanks, > Alin. > > -----Mesaj original----- > De la: Ben Pfaff [mailto:[email protected]] > Trimis: Wednesday, October 8, 2014 8:44 PM > C?tre: Alin Serdean > Cc: Lucian Petrut; [email protected]; Lucian Petrut > Subiect: Re: [ovs-dev] [PATCH] Update the WMI Script handling Hyper-V > friendly port names > > I'm confused. The "From:" at the top of the email indicates you're the > author. You can't sensibly ack your own patch. > > Who is the author? > > Thanks, > > Ben. > > On Wed, Oct 08, 2014 at 05:20:50PM +0000, Alin Serdean wrote: > > Acked-by: Alin Gabriel Serdean <[email protected]> > > > > > > > > > > -----Mesaj original----- > > De la: Lucian Petrut [mailto:[email protected]] > > Trimis: Wednesday, October 8, 2014 8:05 PM > > C?tre: [email protected] > > Cc: Alin Serdean; Lucian Petrut > > Subiect: [PATCH] Update the WMI Script handling Hyper-V friendly port > > names > > > > From: Alin Gabriel Serdean <[email protected]> > > > > This patch ensures that the friendly port name has no more than 16 > > characters and also if it is not in use. > > > > The method which checks the WMI jobs has been updated in order to provide > > relevant error codes/descriptions. > > > > Methods retrieving the according VM and VM network adapter mapped to an OVS > > port have been added as well. They are called: > > Get-VMNetworkAdapterByOVSPort > > Get-VMByOVSPort > > > > Example of usage: > > 2 import-module .\OVS.psm1 > > 3 $vnic = Get-VMNetworkAdapter test_2_1 > > 4 $vnic[0] | Set-VMNetworkAdapterOVSPort -OVSPortName ovs-port-1 > > 5 $vnic[1] | Set-VMNetworkAdapterOVSPort -OVSPortName ovs-port-1 > > 6 $vnic[0] | Set-VMNetworkAdapterOVSPort -OVSPortName ovs-port-2 > > 7 $vnic[1] | Set-VMNetworkAdapterOVSPort -OVSPortName ovs-port-1 > > 8 Get-VMNetworkAdapterByOVSPort ovs-port-1 > > 9 Get-VMByOVSPort ovs-port-2 > > > > Signed-off-by: Lucian Petrut <[email protected]> > > Tested-by: Alin Gabriel Serdean <[email protected]> > > --- > > datapath-windows/misc/OVS.psm1 | 88 > > +++++++++++++++++++++++++++++++++++++++--- > > 1 file changed, 83 insertions(+), 5 deletions(-) > > > > diff --git a/datapath-windows/misc/OVS.psm1 > > b/datapath-windows/misc/OVS.psm1 index 52ed3ba..b83b263 100644 > > --- a/datapath-windows/misc/OVS.psm1 > > +++ b/datapath-windows/misc/OVS.psm1 > > @@ -14,6 +14,10 @@ See the License for the specific language governing > > permissions and limitations under the License. > > #> > > > > +$WMI_JOB_STATUS_STARTED = 4096 > > +$WMI_JOB_STATE_RUNNING = 4 > > +$WMI_JOB_STATE_COMPLETED = 7 > > + > > $hvassembly = > > [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.HyperV.Po > > werShell") > > > > function Set-VMNetworkAdapterOVSPort > > @@ -25,12 +29,23 @@ function Set-VMNetworkAdapterOVSPort > > > > [Microsoft.HyperV.PowerShell.VMNetworkAdapter]$VMNetworkAdapter, > > > > [parameter(Mandatory=$true)] > > + [ValidateLength(1, 16)] > > [string]$OVSPortName > > ) > > process > > { > > $ns = "root\virtualization\v2" > > $EscapedId = $VMNetworkAdapter.Id.Replace('\', '\\') > > + > > + $sd = gwmi -namespace $ns -class > > Msvm_EthernetPortAllocationSettingData -Filter "ElementName = > > '$OVSPortName'" > > + if($sd) > > + { > > + if($sd.InstanceId.Contains($VMNetworkAdapter.Id)){ > > + throw "The OVS port name '$OVSPortName' is already > > assigned to this port." > > + } > > + throw "Cannot assign the OVS port name '$OVSPortName' as it is > > already assigned to an other port." > > + } > > + > > $sd = gwmi -namespace $ns -class > > Msvm_EthernetPortAllocationSettingData -Filter "InstanceId like > > '$EscapedId%'" > > > > if($sd) > > @@ -51,26 +66,89 @@ function Set-VMNetworkAdapterOVSPort > > } > > } > > > > +function Get-VMNetworkAdapterByOVSPort { > > + [CmdletBinding()] > > + param > > + ( > > + > > + [parameter(Mandatory=$true)] > > + [ValidateLength(1, 16)] > > + [string]$OVSPortName > > + ) > > + process > > + { > > + $ns = "root\virtualization\v2" > > + > > + $sd = gwmi -namespace $ns -class > > Msvm_EthernetPortAllocationSettingData -Filter "ElementName = > > '$OVSPortName'" > > + if($sd) > > + { > > + return $sd > > + } > > + } > > +} > > + > > +function Get-VMByOVSPort > > +{ > > + [CmdletBinding()] > > + param > > + ( > > + [parameter(Mandatory=$true)] > > + [ValidateLength(1, 16)] > > + [string]$OVSPortName > > + ) > > + process > > + { > > + $ns = "root\virtualization\v2" > > + > > + $vms = gwmi -namespace $ns -class Msvm_VirtualSystemSettingData > > + ForEach($vm in $vms) > > + { > > + $ports = gwmi -Namespace $ns -Query " > > + Associators of {$vm} Where > > + ResultClass = Msvm_EthernetPortAllocationSettingData" > > + if ($ports.ElementName -eq $OVSPortName){ > > + return $vm > > + } > > + } > > + } > > +} > > + > > function Check-WMIReturnValue($retVal) { > > if ($retVal.ReturnValue -ne 0) > > { > > - if ($retVal.ReturnValue -eq 4096) > > + if ($retVal.ReturnValue -eq $WMI_JOB_STATUS_STARTED) > > { > > do > > { > > $job = [wmi]$retVal.Job > > } > > - while ($job.JobState -eq 4) > > + while ($job.JobState -eq $WMI_JOB_STATE_RUNNING) > > > > - if ($job.JobState -ne 7) > > + if ($job.JobState -ne $WMI_JOB_STATE_COMPLETED) > > { > > - throw "Job Failed" > > + echo $job.ReturnValue > > + $errorString = "Job Failed. Job State: " + > > $job.JobState.ToString() > > + if ($job.__CLASS -eq "Msvm_ConcreteJob") > > + { > > + $errorString += " Error Code: " + > > $job.ErrorCode.ToString() > > + $errorString += " Error Details: " + > > $job.ErrorDescription > > + } > > + else > > + { > > + $error = $job.GetError() > > + if ($error.Error) > > + { > > + $errorString += " Error:" + $error.Error > > + } > > + } > > + throw $errorString > > } > > } > > else > > { > > - throw "Job Failed" > > + throw "Job Failed. Return Value: {0}" -f $job.ReturnValue > > } > > } > > } > > -- > > 1.9.4.msysgit.1 > > > > _______________________________________________ > > dev mailing list > > [email protected] > > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
