[PATCH phosphor-networkd] org.openbmc.NetworkManager : Bug fixes, SetHwAddress & EnableDHCP

Daniel Axtens dja at axtens.net
Wed Feb 3 16:07:50 AEDT 2016


Hi,

It looks like you've changed spaces to tabs.

Is there anything else you have changed? It's difficult to tell because
the change in whitespace made to every line.

Would it be possible to break up the whitespace change and the bugfix
into different patches please? It would make review much much easier.

Thanks!

Regards,
Daniel Axtens

OpenBMC Patches <openbmc-patches at stwcx.xyz> writes:
> From: Hariharasubramanian R <hramasub at in.ibm.com>
>
> ---
>  netman.py | 324 ++++++++++++++++++++++++++++++++++----------------------------
>  1 file changed, 178 insertions(+), 146 deletions(-)
>
> diff --git a/netman.py b/netman.py
> index 8f0fb80..5b18712 100755
> --- a/netman.py
> +++ b/netman.py
> @@ -1,146 +1,178 @@
> -#!/usr/bin/env python
> -
> -from subprocess import call
> -import sys
> -import subprocess
> -import dbus
> -import string
> -import os
> -import fcntl
> -import glib
> -import gobject
> -import dbus.service
> -import dbus.mainloop.glib
> -
> -DBUS_NAME = 'org.openbmc.NetworkManager'
> -OBJ_NAME = '/org/openbmc/NetworkManager/Interface'
> -
> -network_providers = {
> -	'networkd' : { 
> -		'bus_name' : 'org.freedesktop.network1',
> -		'ip_object_name' : '/org/freedesktop/network1/network/default',
> -		'hw_object_name' : '/org/freedesktop/network1/link/_31',
> -		'interface_name' : 'org.freedesktop.network1.Network',
> -		'method' : 'org.freedesktop.network1.Network.SetAddr'
> -	},
> -	'NetworkManager' : {
> -		'bus_name' : 'org.freedesktop.NetworkManager',
> -		'ip_object_name' : '/org/freedesktop/NetworkManager',
> -		'hw_object_name' : '/org/freedesktop/NetworkManager',
> -		'interface_name' : 'org.freedesktop.NetworkManager',
> -		'method' : 'org.freedesktop.NetworkManager' # FIXME: 
> -	},	
> -}
> -
> -def getPrefixLen(mask):
> -	prefixLen = sum([bin(int(x)).count('1') for x in mask.split('.')])
> -	return prefixLen
> -
> -class IfAddr ():
> -    def __init__ (self, family, scope, flags, prefixlen, addr, gw):
> -        self.family     = family
> -        self.scope      = scope
> -        self.flags      = flags
> -        self.prefixlen  = prefixlen
> -        self.addr       = addr
> -        self.gw         = gw
> -
> -class NetMan (dbus.service.Object):
> -    def __init__(self, bus, name):
> -        self.bus = bus
> -        self.name = name
> -        dbus.service.Object.__init__(self,bus,name)
> -
> -    def setNetworkProvider(self, provider):
> -        self.provider = provider
> -
> -    def _setAddr (self, op, device, ipaddr, netmask, family, flags, scope, gateway):
> -        netprov     = network_providers [self.provider]
> -        bus_name    = netprov ['bus_name']
> -        obj_path    = netprov ['ip_object_name']
> -        intf_name   = netprov ['interface_name']
> -
> -        obj = self.bus.get_object(bus_name, obj_path)
> -        intf = dbus.Interface(obj, intf_name)
> -        if (op == "add"):
> -            return intf.AddAddress (device, ipaddr, netmask, family, flags, scope, gateway)
> -
> -        if (op == "del"):
> -            return intf.DelAddress (device, ipaddr, netmask, family, flags, scope, gateway)
> -
> -    def _getAddr (self, target, device):
> -        netprov     = network_providers [self.provider]
> -        bus_name    = netprov ['bus_name']
> -
> -        if (target == "ip"):
> -            intf_name   = 'org.freedesktop.network1.Network'
> -            obj_path    = netprov ['ip_object_name']
> -            obj = self.bus.get_object(bus_name, obj_path)
> -            intf = dbus.Interface(obj, intf_name)
> -            return intf.GetAddress (device)
> -
> -        if (target == "mac"):
> -            intf_name   = 'org.freedesktop.network1.Link'
> -            obj_path    = netprov ['hw_object_name']
> -            obj = self.bus.get_object(bus_name, obj_path)
> -            intf = dbus.Interface(obj, intf_name)
> -            mac = intf.GetAddress (device)
> -            print mac
> -            return mac
> -
> -
> -
> -    @dbus.service.method(DBUS_NAME, "", "")
> -    def test(self):
> -        print("TEST")
> -
> -    @dbus.service.method(DBUS_NAME, "ssss", "x")
> -    def AddAddress4 (self, device, ipaddr, netmask, gateway):
> -        prefixLen = getPrefixLen (netmask)
> -        confFile = "/etc/systemd/network/10-bmc-" + device + ".network"
> -
> -        print("Making .network file...")
> -        networkconf = open (confFile, "w+") 
> -        networkconf.write ('[Match]'+ '\n')
> -        networkconf.write ('Name=' + (device) + '\n')
> -        networkconf.write ('[Network]' + '\n')
> -        networkconf.write ('Address=' + ipaddr + '/' + str(prefixLen) +  '\n')
> -        networkconf.write ('Gateway=' + gateway + '\n')
> -        networkconf.close()
> -
> -        print("Restarting networkd service...")
> -        call(["ip", "addr", "flush", device])
> -        return 0
> -        #return self._setAddr ("add", device, ipaddr, netmask, 2, 0, 253, gateway
> -
> -    @dbus.service.method(DBUS_NAME, "ssss", "x")
> -    def DelAddress4 (self, device, ipaddr, netmask, gateway):
> -        prefixLen = getPrefixLen (netmask)
> -        confFile = "/etc/systemd/network/10-bmc-" + device + ".network"
> -        if not (os.path.exists(confFile)):
> -            return 1
> -
> -        self._setAddr ("del", device, ipaddr, netmask, 2, 0, 253, gateway)
> -        os.remove (confFile)
> -        return  0;
> -
> -    @dbus.service.method(DBUS_NAME, "s", "a(iyyus)s")
> -    def GetAddress4 (self, device):
> -        return self._getAddr ("ip", device)
> -
> -    @dbus.service.method(DBUS_NAME, "s", "s")
> -    def GetHwAddress (self, device):
> -        return self._getAddr ("mac", device)
> -
> -def main():
> -    dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
> -    bus = dbus.SystemBus()
> -    name = dbus.service.BusName(DBUS_NAME, bus)
> -    obj = NetMan (bus, OBJ_NAME)
> -    obj.setNetworkProvider ("networkd")
> -    mainloop = gobject.MainLoop()
> -    print("Started")
> -    mainloop.run()
> -
> -if __name__ == '__main__':
> -    sys.exit(main())
> +#!/usr/bin/env python
> +
> +from subprocess import call
> +import sys
> +import subprocess
> +import dbus
> +import string
> +import os
> +import fcntl
> +import glib
> +import gobject
> +import dbus.service
> +import dbus.mainloop.glib
> +
> +DBUS_NAME = 'org.openbmc.NetworkManager'
> +OBJ_NAME = '/org/openbmc/NetworkManager/Interface'
> +
> +network_providers = {
> +	'networkd' : { 
> +		'bus_name' : 'org.freedesktop.network1',
> +		'ip_object_name' : '/org/freedesktop/network1/network/default',
> +		'hw_object_name' : '/org/freedesktop/network1/link/_31',
> +		'ip_if_name' : 'org.freedesktop.network1.Network',
> +		'hw_if_name' : 'org.freedesktop.network1.Link',
> +		'method' : 'org.freedesktop.network1.Network.SetAddr'
> +	},
> +	'NetworkManager' : {
> +		'bus_name' : 'org.freedesktop.NetworkManager',
> +		'ip_object_name' : '/org/freedesktop/NetworkManager',
> +		'hw_object_name' : '/org/freedesktop/NetworkManager',
> +		'ip_if_name' : 'org.freedesktop.NetworkManager',
> +		'hw_if_name' : 'org.freedesktop.NetworkManager',
> +		'method' : 'org.freedesktop.NetworkManager' # FIXME: 
> +	},	
> +}
> +
> +def getPrefixLen(mask):
> +	prefixLen = sum([bin(int(x)).count('1') for x in mask.split('.')])
> +	return prefixLen
> +
> +class IfAddr ():
> +    def __init__ (self, family, scope, flags, prefixlen, addr, gw):
> +        self.family     = family
> +        self.scope      = scope
> +        self.flags      = flags
> +        self.prefixlen  = prefixlen
> +        self.addr       = addr
> +        self.gw         = gw
> +
> +class NetMan (dbus.service.Object):
> +    def __init__(self, bus, name):
> +        self.bus = bus
> +        self.name = name
> +        dbus.service.Object.__init__(self,bus,name)
> +
> +    def setNetworkProvider(self, provider):
> +        self.provider = provider
> +
> +    def _setAddr (self, op, device, ipaddr, netmask, family, flags, scope, gateway):
> +        netprov     = network_providers [self.provider]
> +        bus_name    = netprov ['bus_name']
> +        obj_path    = netprov ['ip_object_name']
> +        intf_name   = netprov ['ip_if_name']
> +
> +        obj = self.bus.get_object(bus_name, obj_path)
> +        intf = dbus.Interface(obj, intf_name)
> +        if (op == "add"):
> +            return intf.AddAddress (device, ipaddr, netmask, family, flags, scope, gateway)
> +
> +        if (op == "del"):
> +            return intf.DelAddress (device, ipaddr, netmask, family, flags, scope, gateway)
> +
> +    def _getAddr (self, target, device):
> +        netprov     = network_providers [self.provider]
> +        bus_name    = netprov ['bus_name']
> +
> +        if (target == "ip"):
> +            intf_name   = netprov ['ip_if_name'] #'org.freedesktop.network1.Network'
> +            obj_path    = netprov ['ip_object_name']
> +            obj = self.bus.get_object(bus_name, obj_path)
> +            intf = dbus.Interface(obj, intf_name)
> +            return intf.GetAddress (device)
> +
> +        if (target == "mac"):
> +            intf_name   = netprov ['hw_if_name'] #'org.freedesktop.network1.Link'
> +            obj_path    = netprov ['hw_object_name']
> +            obj = self.bus.get_object(bus_name, obj_path)
> +            intf = dbus.Interface(obj, intf_name)
> +            mac = intf.GetAddress (device)
> +            print mac
> +            return mac
> +
> +    @dbus.service.method(DBUS_NAME, "", "")
> +    def test(self):
> +        print("TEST")
> +
> +    @dbus.service.method(DBUS_NAME, "s", "x")
> +    def EnableDHCP (self, device):
> +        confFile = "/etc/systemd/network/10-bmc-" + device + "-" + "dhcp.network"
> +        if os.path.exists(confFile):
> +            return 0
> +
> +        print("Making .network file...")
> +        networkconf = open (confFile, "w+") 
> +        networkconf.write ('[Match]'+ '\n')
> +        networkconf.write ('Name=' + (device) + '\n')
> +        networkconf.write ('[Network]' + '\n')
> +        networkconf.write ('DHCP=yes')
> +        networkconf.close ()
> +
> +        print("Restarting networkd service...")
> +        call(["systemctl", "restart", "systemd-networkd.service"])
> +        return 0
> +        #return self._setAddr ("add", device, ipaddr, netmask, 2, 0, 253, gateway)
> +
> +    @dbus.service.method(DBUS_NAME, "ssss", "x")
> +    def AddAddress4 (self, device, ipaddr, netmask, gateway):
> +        prefixLen = getPrefixLen (netmask)
> +        confFile = "/etc/systemd/network/10-bmc-" + device + "-" + ipaddr + '_' + str(prefixLen) + ".network"
> +        if os.path.exists(confFile):
> +            return 0
> +
> +        print("Making .network file...")
> +        networkconf = open (confFile, "w+") 
> +        networkconf.write ('[Match]'+ '\n')
> +        networkconf.write ('Name=' + (device) + '\n')
> +        networkconf.write ('[Network]' + '\n')
> +        networkconf.write ('Address=' + ipaddr + '/' + str(prefixLen) +  '\n')
> +        networkconf.write ('Gateway=' + gateway + '\n')
> +        networkconf.close()
> +
> +        print("Restarting networkd service...")
> +        call(["ip", "addr", "flush", device])
> +        return 0
> +        #return self._setAddr ("add", device, ipaddr, netmask, 2, 0, 253, gateway
> +
> +    @dbus.service.method(DBUS_NAME, "ssss", "x")
> +    def DelAddress4 (self, device, ipaddr, netmask, gateway):
> +        prefixLen = getPrefixLen (netmask)
> +        confFile = "/etc/systemd/network/10-bmc-" + device + "-" + ipaddr + '_' + str(prefixLen) + ".network"
> +        if not (os.path.exists(confFile)):
> +            return 1
> +
> +        self._setAddr ("del", device, ipaddr, netmask, 2, 0, 253, gateway)
> +        os.remove (confFile)
> +        return  0;
> +
> +    @dbus.service.method(DBUS_NAME, "s", "a(iyyus)s")
> +    def GetAddress4 (self, device):
> +        return self._getAddr ("ip", device)
> +
> +    @dbus.service.method(DBUS_NAME, "s", "s")
> +    def GetHwAddress (self, device):
> +        return self._getAddr ("mac", device)
> +
> +    @dbus.service.method(DBUS_NAME, "ss", "s")
> +    def SetHwAddress (self, device, mac):
> +        netprov     = network_providers [self.provider]
> +        bus_name    = netprov ['bus_name']
> +        obj_path    = netprov ['hw_object_name']
> +        intf_name   = netprov ['hw_if_name']
> +
> +        obj = self.bus.get_object(bus_name, obj_path)
> +        intf = dbus.Interface(obj, intf_name)
> +        return intf.SetAddress (device, mac)
> +
> +def main():
> +    dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
> +    bus = dbus.SystemBus()
> +    name = dbus.service.BusName(DBUS_NAME, bus)
> +    obj = NetMan (bus, OBJ_NAME)
> +    obj.setNetworkProvider ("networkd")
> +    mainloop = gobject.MainLoop()
> +    print("Started")
> +    mainloop.run()
> +
> +if __name__ == '__main__':
> +    sys.exit(main())
> -- 
> 2.6.4
>
>
> _______________________________________________
> openbmc mailing list
> openbmc at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/openbmc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 859 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20160203/c6a04081/attachment-0001.sig>


More information about the openbmc mailing list