[Ovirt-devel] [PATCH node] Adds vlan support to auto-installations for the node. bz#511056

Joey Boggs jboggs at redhat.com
Wed Jul 15 17:46:55 UTC 2009


Joey Boggs wrote:
> On 07/14/2009 11:57 PM, Hugh O. Brock wrote:
>> On Tue, Jul 14, 2009 at 04:07:14PM -0400, Joey Boggs wrote:
>>  
>>> On 07/14/2009 03:54 PM, Hugh O. Brock wrote:
>>>    
>>>> On Tue, Jul 14, 2009 at 03:09:00PM -0400, Joey Boggs wrote:
>>>>        
>>>>> On 07/13/2009 03:11 PM, Darryl L. Pierce wrote:
>>>>>            
>>>>>> If the vlan kernel argument is provided, then it is used during
>>>>>> networking auto-configuration.
>>>>>>
>>>>>> Signed-off-by: Darryl L. Pierce<dpierce at redhat.com>
>>>>>> ---
>>>>>>  scripts/ovirt-config-networking |   56
>>>>>>  ++++++++++++++++++++++++++++++++------
>>>>>>  scripts/ovirt-early             |    7 ++++-
>>>>>>  2 files changed, 53 insertions(+), 10 deletions(-)
>>>>>>
>>>>>> diff --git a/scripts/ovirt-config-networking
>>>>>> b/scripts/ovirt-config-networking
>>>>>> index 2674dfe..2bd082e 100755
>>>>>> --- a/scripts/ovirt-config-networking
>>>>>> +++ b/scripts/ovirt-config-networking
>>>>>> @@ -45,6 +45,33 @@ function has_configured_interface
>>>>>>      fi
>>>>>>  }
>>>>>>
>>>>>> +# Configures vlan for the node.
>>>>>> +# $1 - the nic
>>>>>> +# $2 - the network bridge name
>>>>>> +# $3 - the vlan id
>>>>>> +# $4 - the VL_ROOT variable
>>>>>> +# $5 - the VL_CONFIG variable
>>>>>> +# $6 - the IF_ROOT value
>>>>>> +# $7 - the vlan config filename variable
>>>>>> +# $8 - the NIC config filename
>>>>>> +function setup_vlan
>>>>>> +{
>>>>>> +    local nic=$1
>>>>>> +    local bridge=$2
>>>>>> +    local vlan_id=$3
>>>>>> +    local vlroot=$4
>>>>>> +    local vlconfig=$5
>>>>>> +    local ifroot=$6
>>>>>> +    local vlfilename=$7
>>>>>> +    local iffilename=$8
>>>>>> +
>>>>>> +    eval $vlroot="${ifroot}.${vlan_id}"
>>>>>> +    eval $vlconfig=\"rm \$${vlroot}\\nset \$${vlroot}/DEVICE
>>>>>> ${nic}.${vlan_id}\"
>>>>>> +    eval $vlconfig=\"\$${vlconfig}\\nset \$${vlroot}/BRIDGE 
>>>>>> ${bridge}\"
>>>>>> +    eval $vlconfig=\"\$${vlconfig}\\nset \$${vlroot}/VLAN yes\"
>>>>>> +    eval $vlfilename="${iffilename}.${vlan_id}"
>>>>>> +}
>>>>>> +
>>>>>>  function configure_interface
>>>>>>  {
>>>>>>      local NIC=$1
>>>>>> @@ -118,12 +145,8 @@ function configure_interface
>>>>>>                              A|a) CONFIGURED_NIC=""; return;;
>>>>>>                              *)
>>>>>>                                  if [[ -n "$REPLY" ]]&&   [[ 
>>>>>> "$REPLY" =~
>>>>>>                                  "^[0-9]{1,}$" ]]; then
>>>>>> -                                    VLAN_ID=$REPLY
>>>>>> -                                    VL_ROOT="${IF_ROOT}.${VLAN_ID}"
>>>>>> -                                    VL_CONFIG="rm ${VL_ROOT}\nset
>>>>>> ${VL_ROOT}/DEVICE ${NIC}.${VLAN_ID}"
>>>>>> -                                    VL_CONFIG="${VL_CONFIG}\nset
>>>>>> ${VL_ROOT}/BRIDGE ${BRIDGE}"
>>>>>> -                                    VL_CONFIG="${VL_CONFIG}\nset
>>>>>> ${VL_ROOT}/VLAN yes"
>>>>>> -
>>>>>> VL_FILENAME="${IF_FILENAME}.${VLAN_ID}"
>>>>>> +                    VLAN_ID=$REPLY
>>>>>> +                    setup_vlan $NIC $BRIDGE $VLAN_ID VL_ROOT
>>>>>> VL_CONFIG $IF_ROOT VL_FILENAME $IF_FILENAME
>>>>>>                                      break
>>>>>>                                  fi
>>>>>>                                  ;;
>>>>>> @@ -236,12 +259,21 @@ function configure_interface
>>>>>>              esac
>>>>>>          fi
>>>>>>
>>>>>> +        if [ -n "$OVIRT_VLAN" ]; then
>>>>>> +        VLAN_ID=$OVIRT_VLAN
>>>>>> +        setup_vlan $NIC $BRIDGE $VLAN_ID VL_ROOT VL_CONFIG $IF_ROOT
>>>>>> VL_FILENAME $IF_FILENAME
>>>>>> +        fi
>>>>>> +
>>>>>>          if [ -z "$OVIRT_IP_ADDRESS" ]; then
>>>>>> -            IF_CONFIG="${IF_CONFIG}\nset ${IF_ROOT}/BRIDGE 
>>>>>> ${BRIDGE}"
>>>>>> -            BR_CONFIG="$BR_CONFIG\nset $BR_ROOT/BOOTPROTO dhcp"
>>>>>> +        if [ -z "$VL_CONFIG" ]; then
>>>>>> +        IF_CONFIG="${IF_CONFIG}\nset ${IF_ROOT}/BRIDGE ${BRIDGE}"
>>>>>> +        fi
>>>>>> +        BR_CONFIG="$BR_CONFIG\nset $BR_ROOT/BOOTPROTO dhcp"
>>>>>>          else
>>>>>>              if [ "$OVIRT_IP_ADDRESS" != "off" ]; then
>>>>>> -                IF_CONFIG="${IF_CONFIG}\nset ${IF_ROOT}/BRIDGE 
>>>>>> ${BRIDGE}"
>>>>>> +        if [ -z "$VL_CONFIG" ]; then
>>>>>> +                    IF_CONFIG="${IF_CONFIG}\nset ${IF_ROOT}/BRIDGE
>>>>>> ${BRIDGE}"
>>>>>> +        fi
>>>>>>                  BR_CONFIG="$BR_CONFIG\nset $BR_ROOT/IPADDR
>>>>>>                  $OVIRT_IP_ADDRESS"
>>>>>>                  if [ -n "$OVIRT_IP_NETMASK" ]; then
>>>>>>                      BR_CONFIG="$BR_CONFIG\nset $BR_ROOT/NETMASK
>>>>>>                      $OVIRT_IP_NETMASK"
>>>>>> @@ -254,9 +286,15 @@ function configure_interface
>>>>>>
>>>>>>          IF_CONFIG="$IF_CONFIG\nset $IF_ROOT/ONBOOT yes"
>>>>>>          BR_CONFIG="$BR_CONFIG\nset $BR_ROOT/ONBOOT yes"
>>>>>> +    if [ -n "${VL_CONFIG}" ]; then
>>>>>> +        VL_CONFIG="$VL_CONFIG\nset $VL_ROOT/ONBOOT yes"
>>>>>> +    fi
>>>>>>
>>>>>>          printf "$IF_CONFIG\n">   $IF_FILENAME
>>>>>>          printf "$BR_CONFIG\n">   $BR_FILENAME
>>>>>> +    if [ -n "$VL_CONFIG" ]; then
>>>>>> +        printf "$VL_CONFIG\n">   $VL_FILENAME
>>>>>> +    fi
>>>>>>      fi
>>>>>>  }
>>>>>>
>>>>>> diff --git a/scripts/ovirt-early b/scripts/ovirt-early
>>>>>> index b4de30e..560fa14 100755
>>>>>> --- a/scripts/ovirt-early
>>>>>> +++ b/scripts/ovirt-early
>>>>>> @@ -208,10 +208,12 @@ start() {
>>>>>>      #   ipv6=dhcp|auto
>>>>>>      #   dns=server[,server]
>>>>>>      #   ntp=server[,server]
>>>>>> +    #   vlan=id
>>>>>>      # static network configuration
>>>>>>      ip_address=
>>>>>>      ip_gateway=
>>>>>>      ip_netmask=
>>>>>> +    vlan=
>>>>>>      netmask=
>>>>>>      gateway=
>>>>>>      ipv6=
>>>>>> @@ -344,6 +346,9 @@ start() {
>>>>>>              hostname=*)
>>>>>>              hostname=${i#hostname=}
>>>>>>              ;;
>>>>>> +            vlan=*)
>>>>>> +            vlan=${i#vlan=}
>>>>>> +            ;;
>>>>>>              syslog=*)
>>>>>>              i=${i#syslog=}
>>>>>>              eval $(printf $i|awk -F: '{print "syslog_server="$1; 
>>>>>> print
>>>>>>              "syslog_port="$2;}')
>>>>>> @@ -365,7 +370,7 @@ start() {
>>>>>>          ip_gateway=$gateway
>>>>>>      fi
>>>>>>      # save boot parameters as defaults for ovirt-config-*
>>>>>> -    params="bootif init vol_boot_size vol_swap_size vol_root_size
>>>>>> vol_config_size vol_logging_size vol_data_size local_boot standalone
>>>>>> overcommit ip_address ip_netmask ip_gateway ipv6 dns ntp 
>>>>>> syslog_server
>>>>>> syslog_port collectd_server collectd_port bootparams hostname 
>>>>>> firstboot"
>>>>>> +    params="bootif init vol_boot_size vol_swap_size vol_root_size
>>>>>> vol_config_size vol_logging_size vol_data_size local_boot standalone
>>>>>> overcommit ip_address ip_netmask ip_gateway ipv6 dns ntp vlan
>>>>>> syslog_server syslog_port collectd_server collectd_port bootparams
>>>>>> hostname firstboot"
>>>>>>      # mount /config unless firstboot is forced
>>>>>>      if [ "$firstboot" != "1" ]; then
>>>>>>          mount_config
>>>>>>
>>>>>>                 
>>>>> Tried this on 2 different boxes getting whitespace errors, but the 
>>>>> patch
>>>>> file doesn't show any extra spaces?
>>>>>
>>>>> # cat -v $patchfile
>>>>> +# Configures vlan for the node.^M
>>>>> +# $1 - the nic^M
>>>>> +# $2 - the network bridge name^M
>>>>> +# $3 - the vlan id^M
>>>>> +# $4 - the VL_ROOT variable^M
>>>>> +# $5 - the VL_CONFIG variable^M
>>>>> +# $6 - the IF_ROOT value^M
>>>>> +# $7 - the vlan config filename variable^M
>>>>> +# $8 - the NIC config filename^M
>>>>> +function setup_vlan^M
>>>>>
>>>>>
>>>>> -bash-3.2$ git am ../\[Ovirt-devel\]\ \[PATCH\ node\]\ Adds\ vlan\
>>>>> support\ to\ auto-installations\     for\ the\ node.\ bz#511056.eml
>>>>> Applying: Adds vlan support to auto-installations for the node. 
>>>>> bz#511056
>>>>> /home/jboggs/ovirt-node/.git/rebase-apply/patch:14: trailing 
>>>>> whitespace.
>>>>> # Configures vlan for the node.
>>>>> /home/jboggs/ovirt-node/.git/rebase-apply/patch:15: trailing 
>>>>> whitespace.
>>>>> # $1 - the nic
>>>>> /home/jboggs/ovirt-node/.git/rebase-apply/patch:16: trailing 
>>>>> whitespace.
>>>>> # $2 - the network bridge name
>>>>> /home/jboggs/ovirt-node/.git/rebase-apply/patch:17: trailing 
>>>>> whitespace.
>>>>> # $3 - the vlan id
>>>>> /home/jboggs/ovirt-node/.git/rebase-apply/patch:18: trailing 
>>>>> whitespace.
>>>>> # $4 - the VL_ROOT variable
>>>>> error: patch failed: scripts/ovirt-config-networking:45
>>>>> error: scripts/ovirt-config-networking: patch does not apply
>>>>> error: patch failed: scripts/ovirt-early:208
>>>>> error: scripts/ovirt-early: patch does not apply
>>>>> Patch failed at 0001.
>>>>> When you have resolved this problem run "git am --resolved".
>>>>> If you would prefer to skip this patch, instead run "git am --skip".
>>>>> To restore the original branch and stop patching run "git am 
>>>>> --abort".
>>>>>
>>>>>             
>>>> My emacs buffer shows the ^Ms that are trailing each one of the 
>>>> lines in
>>>> that patch file...
>>>>
>>>> --Hugh
>>>>         
>>> The ^M's are carriage return or whatever can't remember, I ran cat 
>>> -v to at least make sure the last character was the last one on the 
>>> line followed by the return. Anyone have any other ideas?
>>>     
>>
>> The ^Ms are Windows carriage returns -- git's trailing whitespace filter
>> picks them up if I'm not mistaken (I remember lots of pain with this
>> when we were pulling in jquery patches from Windows guys back in the
>> day). Try swapping them for Unix newlines in an emacs buffer after
>> adding the below to your .emacs:
>>
>> ;; always show cruddy windows newlines
>> (setq-default inhibit-eol-conversion t)
>>
>> Hope this helps,
>> --Hugh
>>   
>
> Only thing iI can think of is my email client (Thunderbird) but I'm 
> running Fedora 11, maybe a bug? Don't think I've had to apply any 
> patches since I've upgraded so that makes sense. I just removed 
> Thunderbird 3.0 and put 2.0 from F10 in it's place, resaved the patch 
> it's no longer complaining about the whitespaces but another can't 
> apply error. So I guess that was it.
>
>
> _______________________________________________
> Ovirt-devel mailing list
> Ovirt-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/ovirt-devel
ACK on this finally!




More information about the ovirt-devel mailing list