[ovs-dev] [PATCH] Update the WMI Script handling Hyper-V friendly port names
Nithin Raju
nithin at vmware.com
Wed Oct 8 17:46:26 UTC 2014
Ben,
Signed off says:
>> Signed-off-by: Lucian Petrut <lpetrut at cloudbasesolutions.com>
I don't know what:
>> From: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com>
implies then.
-- Nithin
On Oct 8, 2014, at 10:43 AM, Ben Pfaff <blp at nicira.com>
wrote:
> 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 <aserdean at cloudbasesolutions.com>
>>
>>
>>
>>
>> -----Mesaj original-----
>> De la: Lucian Petrut [mailto:petrutlucian94 at gmail.com]
>> Trimis: Wednesday, October 8, 2014 8:05 PM
>> C?tre: dev at openvswitch.org
>> Cc: Alin Serdean; Lucian Petrut
>> Subiect: [PATCH] Update the WMI Script handling Hyper-V friendly port names
>>
>> From: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com>
>>
>> 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 <lpetrut at cloudbasesolutions.com>
>> Tested-by: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com>
>> ---
>> 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.PowerShell")
>>
>> 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
>> dev at openvswitch.org
>> https://urldefense.proofpoint.com/v1/url?u=http://openvswitch.org/mailman/listinfo/dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=ubrOpIWavCMqX4l4j1LEVpTfDj%2FD5Qyn8KCoJIBGvzo%3D%0A&m=z5n4vXDmHp8x967YXoFfSLn7Zn8boi0ZF4scp90KFZ8%3D%0A&s=fea6a070301fd3c4902cdf2e775dfd2296406dffa713c670d1d62974207c3a88
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://urldefense.proofpoint.com/v1/url?u=http://openvswitch.org/mailman/listinfo/dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=ubrOpIWavCMqX4l4j1LEVpTfDj%2FD5Qyn8KCoJIBGvzo%3D%0A&m=z5n4vXDmHp8x967YXoFfSLn7Zn8boi0ZF4scp90KFZ8%3D%0A&s=fea6a070301fd3c4902cdf2e775dfd2296406dffa713c670d1d62974207c3a88
Thanks,
-- Nithin
More information about the dev
mailing list