On 09/03/2015 02:22 AM, Daniel Henrique
Barboza wrote:
On 09/02/2015 04:27 PM, Abhiram
Kulkarni wrote:
Hi Team,
I was going through ginger
backlogs, saw that network bonding management was one among
them. So i started investigation on this topic.
With respect to host network
management currently i can think of below ways to manage via
1)ip commands(iproute)
This is reliable, but will require some work binding them in
python using wok's run_command
or even subprocess.Popen()
2)via ifcfg(manually
modify the network scripts)
3)network manager by
executing nmcli commands
This is somewhat similar, implementation wise, to (1) but using
nmcli command line instead of
iproute2.
4)python network manager
via dbus https://pypi.python.org/pypi/python-networkmanager this needs investigation(any
inputs ?? )
5)any other way??
I've investigated doing the dbus calls to network manager using
dbus-python. The reason
is that the python-networkmanager module you've mentioned in (4)
is no longer supported
or maintained. It will require some work understanding the DBUS
API from network manager,
but I believe this can be a solid approach.
This same analysis goes for the networkmanager using nmcli,
although using nmcli looks easier
than via DBUS ...
-->iproute is not
persistent that is once the system reboot the configuration
made is no more. This can be used along with manual
modification of network scripts to make it persistent.
I think none of these approaches are persistent. And this raises a
question: does it need to be
persistent all the time? Perhaps we can allow some network
operations be 'soft state' and then
provide an option to write the current IPs into the config files?
I investigated little bit about a tool which makes the
configurations persistent. There is a tool called
system-config-network, which helps in persisting the configuration.
https://fedoraproject.org/wiki/SystemConfig/network
https://git.fedorahosted.org/cgit/system-config-network.git/commit/?id=ad679976f4071811899c77fbb0748b8c16366213
Again I have not looked deeper on whether this tool is supported.
.
-->Network manager is the
best available option as most of the latest distros
available are supporting the same. we can exploit nmcli
commands to get our network functionalities done.
If any feature is not
supported by network manager then we go ahead with manual
way for those specific cases.
-->If the network manager
is not supported in any specific version of distro we can go
ahead with manual way of configuration using ifcfg...
I would prefer to go for a single approach that works in all the
distros we want to support.
I fully agree with your proposal, Considering NetworkManager/wicd on
fedora/redhat/ubuntu/debain, YAST on OpenSuSE and many more other
tools.
Can someone please point me
the different distros with version that ginger officially is
planning to support or supporting?
My suggestion is use network
manager or any other default tools that comes with OS as
much as possible rather than reimplementing everything
fresh.
Perhaps this is something work mentioning in the wiki. Our idea is
to make a best effort
to support any distro, but we'll take our design/dependencies
decisions thinking about
supporting Fedora 20+ and Ubuntu 14+ (and whatever Debian version
is equivalent to
Ubuntu 14). If a given package belongs to the official Fedora 20+
and Ubuntu 14+ repo,
we can definitely use it in Ginger.
Only thing I would look further and understand better is do we
really have to go to lower level ip/ifcfg/iproute etc for network
configuration (since these tools are common across the distros) or
leverage the existing tools in achieving the same, whichever is the
best.
Let me know your thoughts.
Thanks
Abhiram
|