Re: How to create a VPN connection by network manager DBUS?
- From: Dan Williams <dcbw redhat com>
- To: Lei Xue <carmark dlut gmail com>
- Cc: networkmanager-list gnome org
- Subject: Re: How to create a VPN connection by network manager DBUS?
- Date: Tue, 27 May 2014 16:03:18 -0500
On Fri, 2014-05-23 at 22:29 +0800, Lei Xue wrote:
Hi All,
I have an OpenVPN configuration file, and I can import it via Network
Manager GUI to create a VPN connection.
Now, I would like to write a script to create the VPN connection based on
configuration file. I found that I can use Network Manager DBUS to do that,
but I just got the examples on how to activate the exist connection. I
found them from this thread:
https://mail.gnome.org/archives/networkmanager-list/2009-February/msg00075.html
.
And there is not enough information on how to do the VPN type connection,
it will be very appreciated if you can provide any tips or suggestion.
I would like to use Perl script to do that, but any other language will be
all right to learn about.
THere are some examples about adding a non-VPN connection here:
http://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/examples/python/dbus
http://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/examples/python/gi/add_connection.py
http://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/examples/ruby/add-connection.rb
which should give you an idea of how to do it in some different
languages dynamically.
What's obviously different are the specific key/value pairs that you
need to send, and those are dependent on each VPN plugin. There isn't
formal documentation on those, but it's centrally located in the code:
https://git.gnome.org/browse/network-manager-openvpn/tree/src/nm-openvpn-service.c#n99
If you'd like to see what the NM-openvpn import/export code looks like
that's at:
https://git.gnome.org/browse/network-manager-openvpn/tree/properties/import-export.c
but in general, the conversion is pretty straight-forward and the key
names are the same as the openvpn config equivalents.
There's another option: just create the NM config file and drop that
into /etc/NetworkManager/system-connections, and since you'll be giving
it a known UUID, you can then call Settings.GetConnectionByUuid() via
D-Bus and then use the returned object path to start the VPN connection.
You can see the config file NM writes by going through the import
process in nm-connection-editor and the saving the resulting connection,
and it'll show up in /etc/NetworkManager/system-connections.
Hopefully that's enough to get you started, let us know if you have any
more questions!
Dan
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]