pve-common.git
4 years agowrite_etc_network_interfaces: updated header comment
Wolfgang Bumiller [Thu, 25 Jun 2015 09:54:27 +0000 (11:54 +0200)]
write_etc_network_interfaces: updated header comment

The header now mentions that the file is auto-generated and
should not be tempered with directly.
It now recommends to add custom network configurations via
source/source-directory lines.

4 years agoread_etc_network_interfaces: improved parsing
Wolfgang Bumiller [Thu, 25 Jun 2015 09:54:26 +0000 (11:54 +0200)]
read_etc_network_interfaces: improved parsing

* parsing ipv6 blocks
* parsing extra lines like source/source-directory/...
* merge multiple bridge_port lines into one
* write options only once

The returned config hash is not just the interface hash
anymore. Interfaces are now in its 'ifaces' member hash. All
unknown options (including mappings) end up in its 'options'
hash.

Added a comment describing the config hash's layout in
detail.

An interface can now have an ipv4 and an ipv6 entry, they
will be returned as a single interface with
address/netmask/gateway and address6/netmask6/gateway6
elements. Additionally a 'families' array is available
listing which families are available. Ideally we'll at some
point allow unhandled families to be kept too, however, now
that extra lines like 'source' and 'source-directory' are
preserved, it is recommended to move all custom
configuration into separate files to not interfere with our
interface parsing.

Options such as bridge ports or ovs_* will now be written
out only for the first interface. If multiple protocol
families of a bridge contain bridge_ports lines they will be
merged into the first interface.

4 years agoremoved write-only $gateway variable
Wolfgang Bumiller [Thu, 25 Jun 2015 09:54:25 +0000 (11:54 +0200)]
removed write-only $gateway variable

4 years agoread_etc_network_interfaces: less strict parsing
Wolfgang Bumiller [Thu, 25 Jun 2015 09:54:24 +0000 (11:54 +0200)]
read_etc_network_interfaces: less strict parsing

*) Don't require indented lines, instead know when to end a
   section.
*) Don't require empty lines between sections.
*) Fixed non-/greedy regex issue

And turned (.*)\s* into just (.*) as .* eats the whitespace
too.

4 years agobump version to 4.0-8
Dietmar Maurer [Fri, 19 Jun 2015 05:24:15 +0000 (07:24 +0200)]
bump version to 4.0-8

4 years agoPVE:Daemon start/restart with systemd
Alen Grizonic [Thu, 18 Jun 2015 17:00:12 +0000 (19:00 +0200)]
PVE:Daemon start/restart with systemd

Added some lines which make it possible to stop/start/restart daemon services with pve scripts,
avoiding the problem of systemd not recognizing the new status of the (re)started service processes.

The scripts now rely on systemctl.

Signed-off-by: Alen Grizonic <a.grizonic@proxmox.com>
4 years agobump version to 4.0-7
Dietmar Maurer [Tue, 9 Jun 2015 10:16:50 +0000 (12:16 +0200)]
bump version to 4.0-7

4 years agonew helper dump_journal to view systemd journal
Dietmar Maurer [Tue, 9 Jun 2015 10:15:41 +0000 (12:15 +0200)]
new helper dump_journal to view systemd journal

4 years agoremove superfluous substitution
Wolfgang Bumiller [Fri, 5 Jun 2015 09:23:11 +0000 (11:23 +0200)]
remove superfluous substitution

regexps are greedy so the first substitution eats up
multiple groups of double-colons up to the last one already.
So unless there's some intended hidden side effect this
statement has no obvious purpose.

4 years agobump version to 4.0-6
Dietmar Maurer [Mon, 1 Jun 2015 11:18:14 +0000 (13:18 +0200)]
bump version to 4.0-6

4 years agoadd trigger for pve-api-updates
Dietmar Maurer [Mon, 1 Jun 2015 11:17:30 +0000 (13:17 +0200)]
add trigger for pve-api-updates

4 years agobump version to 4.0-5
Dietmar Maurer [Thu, 28 May 2015 16:07:50 +0000 (18:07 +0200)]
bump version to 4.0-5

4 years agodefer some daemon setup routines
Wolfgang Bumiller [Thu, 28 May 2015 14:54:16 +0000 (16:54 +0200)]
defer some daemon setup routines

A first step towards untangling some of the intermingled data and
functionality setup tasks for the daemons:

Daemon::new now only validates and untaints arguments, but doesn't
perform any actions such as setuid/setgid until the new Daemon::setup
method which is now executed from Daemon::start right before entering
Daemon::$server_run.

CLIHandler::handle_cmd now takes an optional $preparefunc which is
called after handling 'printmanpod' and 'verifyapi'.

4 years agofix a regex typo in run_command
Wolfgang Bumiller [Thu, 28 May 2015 07:27:14 +0000 (09:27 +0200)]
fix a regex typo in run_command

m/|/ is always true as it effectively matches 'nothing or nothing
anywhere in a string'
looks like it was supposed to be m/\|/

4 years agobump version to 4.0-4
Dietmar Maurer [Wed, 27 May 2015 13:34:06 +0000 (15:34 +0200)]
bump version to 4.0-4

4 years agospice-proxy format now uses new address format
Wolfgang Bumiller [Wed, 27 May 2015 11:16:35 +0000 (13:16 +0200)]
spice-proxy format now uses new address format

spice-proxy used dns-name before which matches a combination of letters,
digits and dots, which happens to include ipv4 addresses but not ipv6
ones.
Since 'dns-name' sounds like it's only for names, I'm adding an address
format which is either a dns-name or an ip (including ipv6).

4 years agoprevent the use of AI_ADDRCONFIG
Wolfgang Bumiller [Wed, 27 May 2015 11:16:34 +0000 (13:16 +0200)]
prevent the use of AI_ADDRCONFIG

perl's IO::Socket::IP passes AI_ADDRCONFIG if no GetAddrInfoFlags are passed,
which is often useful but also causes it to error when explicitly trying to
bind to 127.0.0.1 when there are no _other_ IPv4 addresses present.

4 years agoupdate changelog
Dietmar Maurer [Tue, 12 May 2015 08:36:40 +0000 (10:36 +0200)]
update changelog

4 years agonew helper: getaddrinfo_all
Wolfgang Bumiller [Tue, 12 May 2015 07:51:12 +0000 (09:51 +0200)]
new helper: getaddrinfo_all

As it's commonly used in ipv6 support code a getaddrinfo wrapper passing
default flags and dealing with the (err,result) tuple was added.

4 years agoadd a socket family argument to next_*_port functions
Wolfgang Bumiller [Tue, 12 May 2015 07:51:11 +0000 (09:51 +0200)]
add a socket family argument to next_*_port functions

Instead of assuming a local address of 0.0.0.0, the next_*_port family
of functions now takes an optional packet family argument (AF_INET/AF_INET6),
used for ipv6 support.

4 years agobump version to 4.0-3
Dietmar Maurer [Fri, 8 May 2015 10:38:17 +0000 (12:38 +0200)]
bump version to 4.0-3

4 years agoadd utility to fetch the socket family for a hostname
Wolfgang Bumiller [Fri, 8 May 2015 10:24:44 +0000 (12:24 +0200)]
add utility to fetch the socket family for a hostname

4 years agooptional socket family parameter for create_reusable_socket
Wolfgang Bumiller [Fri, 8 May 2015 10:24:43 +0000 (12:24 +0200)]
optional socket family parameter for create_reusable_socket

4 years agoprovide Tools::unpack_sockaddr_in46
Wolfgang Bumiller [Fri, 8 May 2015 10:24:42 +0000 (12:24 +0200)]
provide Tools::unpack_sockaddr_in46

4 years agoUse IO::Socket::IP instead of INET
Wolfgang Bumiller [Fri, 8 May 2015 10:24:41 +0000 (12:24 +0200)]
Use IO::Socket::IP instead of INET

4 years agofix typo
Dietmar Maurer [Thu, 23 Apr 2015 07:14:48 +0000 (09:14 +0200)]
fix typo

4 years agoadd additional methods for IP address verification
Dietmar Maurer [Thu, 23 Apr 2015 06:19:03 +0000 (08:19 +0200)]
add additional methods for IP address verification

4 years agocleanup: remove unnecessary prefix
Dietmar Maurer [Wed, 22 Apr 2015 08:08:37 +0000 (10:08 +0200)]
cleanup: remove unnecessary prefix

4 years agobump version to 4.0-2
Dietmar Maurer [Wed, 22 Apr 2015 07:56:37 +0000 (09:56 +0200)]
bump version to 4.0-2

4 years agoregister new standard option pve-startup-order
Dietmar Maurer [Wed, 22 Apr 2015 07:49:15 +0000 (09:49 +0200)]
register new standard option pve-startup-order

We can use this for lxc and qemu.

5 years agoimprove error message
Dietmar Maurer [Fri, 3 Apr 2015 06:10:23 +0000 (08:10 +0200)]
improve error message

5 years agouse libspice-protocol-dev (instead of debian package)
Dietmar Maurer [Mon, 23 Mar 2015 11:40:03 +0000 (12:40 +0100)]
use libspice-protocol-dev (instead of debian package)

5 years agouse wiki style headers for README.dev
Dietmar Maurer [Wed, 4 Mar 2015 05:59:12 +0000 (06:59 +0100)]
use wiki style headers for README.dev

5 years agoupdate installation instructions
Dietmar Maurer [Mon, 2 Mar 2015 10:11:49 +0000 (11:11 +0100)]
update installation instructions

5 years agorename data to src
Dietmar Maurer [Fri, 27 Feb 2015 15:57:20 +0000 (16:57 +0100)]
rename data to src

5 years agobump version for Debian Jessie
Dietmar Maurer [Thu, 26 Feb 2015 10:19:59 +0000 (11:19 +0100)]
bump version for Debian Jessie

5 years agobump version to 3.0-24
Dietmar Maurer [Wed, 11 Feb 2015 05:38:44 +0000 (06:38 +0100)]
bump version to 3.0-24

5 years agonext_migrate_port: higher port range - all other ranges are 100 ports
Stefan Priebe [Mon, 2 Feb 2015 08:40:55 +0000 (09:40 +0100)]
next_migrate_port: higher port range - all other ranges are 100 ports

Signed-off-by: Stefan Priebe <s.priebe@profihost.ag>
5 years agoFix next_unused_port already bin detection
Stefan Priebe [Mon, 2 Feb 2015 08:40:54 +0000 (09:40 +0100)]
Fix next_unused_port already bin detection

unsecure migration does not use localhost to bind to. Instead it uses a specific IP on the node.
As we don't know that IP in this part of the code the only chance to check for a possible already
existing bind is to bind to all IPs.

Signed-off-by: Stefan Priebe <s.priebe@profihost.ag>
5 years agobump version to 3.0-23
Dietmar Maurer [Mon, 9 Feb 2015 06:02:29 +0000 (07:02 +0100)]
bump version to 3.0-23

5 years agoread_etc_network_interfaces : don't always add vmbr0
Alexandre Derumier [Sun, 8 Feb 2015 14:54:51 +0000 (15:54 +0100)]
read_etc_network_interfaces : don't always add vmbr0

Currently it's impossible to remove vmbr0 from network gui,

if we really want to remove it, or replace it with an OVS vmbr0

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
5 years agobump version to 3.0-22
Dietmar Maurer [Thu, 8 Jan 2015 13:49:59 +0000 (14:49 +0100)]
bump version to 3.0-22

5 years agoDaemon: change option name 'run_dir' to 'pidfile'
Dietmar Maurer [Fri, 2 Jan 2015 13:15:09 +0000 (14:15 +0100)]
Daemon: change option name 'run_dir' to 'pidfile'

5 years agoDaemon: new option to change user/group (setuid/setgid)
Dietmar Maurer [Fri, 2 Jan 2015 13:06:46 +0000 (14:06 +0100)]
Daemon: new option to change user/group (setuid/setgid)

5 years agoDaemon: make sure we kill all child processes on TERM
Dietmar Maurer [Fri, 2 Jan 2015 08:31:21 +0000 (09:31 +0100)]
Daemon: make sure we kill all child processes on TERM

5 years agoDaemon: add helper to create sockets
Dietmar Maurer [Thu, 1 Jan 2015 14:41:19 +0000 (15:41 +0100)]
Daemon: add helper to create sockets

Those sockets are not closed and reopened at restart.

5 years agoDaemon: catch finished worker earlier
Dietmar Maurer [Thu, 1 Jan 2015 13:59:04 +0000 (14:59 +0100)]
Daemon: catch finished worker earlier

Else we get zobies for 5 seconds at restart.

5 years agoDaemon: also terminate old_workers on stop
Dietmar Maurer [Thu, 1 Jan 2015 11:42:31 +0000 (12:42 +0100)]
Daemon: also terminate old_workers on stop

5 years agoDaemon: call terminate_server if we get unexpected errors
Dietmar Maurer [Thu, 1 Jan 2015 11:06:17 +0000 (12:06 +0100)]
Daemon: call terminate_server if we get unexpected errors

5 years agoDaemon: implement new option leave_children_open_on_reload
Dietmar Maurer [Thu, 1 Jan 2015 11:02:13 +0000 (12:02 +0100)]
Daemon: implement new option leave_children_open_on_reload

We want to be able restart daemons without closing existing connections.

5 years agoDaemon: correctly set got_hup_signal flag (before we call terminate)
Dietmar Maurer [Thu, 1 Jan 2015 09:57:10 +0000 (10:57 +0100)]
Daemon: correctly set got_hup_signal flag (before we call terminate)

5 years agoDaemon: raise error if we cannot parse lockfd
Dietmar Maurer [Thu, 1 Jan 2015 09:41:52 +0000 (10:41 +0100)]
Daemon: raise error if we cannot parse lockfd

5 years agoDaemon: remove useless parameter
Dietmar Maurer [Wed, 31 Dec 2014 16:40:04 +0000 (17:40 +0100)]
Daemon: remove useless parameter

5 years agoDaemon: untaint value read from ENV
Dietmar Maurer [Wed, 31 Dec 2014 16:28:33 +0000 (17:28 +0100)]
Daemon: untaint value read from ENV

5 years agoDaemon: log error and exit if something fails inside constructor
Dietmar Maurer [Wed, 31 Dec 2014 16:17:44 +0000 (17:17 +0100)]
Daemon: log error and exit if something fails inside constructor

5 years agoRESTHandler: define empty DESTROY to avoid useless warings
Dietmar Maurer [Wed, 31 Dec 2014 16:11:28 +0000 (17:11 +0100)]
RESTHandler: define empty DESTROY to avoid useless warings

We oserverd the following warning sometimes:

  (in cleanup) no such method 'main=HASH(0x38b2d48)::DESTROY'

Defining an empty DESTROY seems to avoid it.

5 years agoDaemon: do not wait for lock on restart
Dietmar Maurer [Wed, 31 Dec 2014 16:01:51 +0000 (17:01 +0100)]
Daemon: do not wait for lock on restart

5 years agoDaemon: cleanup logging
Dietmar Maurer [Wed, 31 Dec 2014 11:31:21 +0000 (12:31 +0100)]
Daemon: cleanup logging

5 years agoDaemon: keep lock file open during restart
Dietmar Maurer [Wed, 31 Dec 2014 10:54:27 +0000 (11:54 +0100)]
Daemon: keep lock file open during restart

So that nobody else can grab the lock

5 years agoDaemon: move ENV manipulation into new()
Dietmar Maurer [Wed, 31 Dec 2014 09:29:23 +0000 (10:29 +0100)]
Daemon: move ENV manipulation into new()

5 years agoafter_fork_cleanup: move code into separate sub
Dietmar Maurer [Wed, 31 Dec 2014 09:19:54 +0000 (10:19 +0100)]
after_fork_cleanup: move code into separate sub

5 years agoDaemon: try harder (up to 5 times) to get lock
Dietmar Maurer [Wed, 31 Dec 2014 09:07:24 +0000 (10:07 +0100)]
Daemon: try harder (up to 5 times) to get lock

5 years agocode cleanup
Dietmar Maurer [Wed, 31 Dec 2014 08:53:47 +0000 (09:53 +0100)]
code cleanup

5 years agoDaemon: implement pre-fork server (max_wrokers property)
Dietmar Maurer [Tue, 30 Dec 2014 10:19:53 +0000 (11:19 +0100)]
Daemon: implement pre-fork server (max_wrokers property)

5 years agoimprove doc
Dietmar Maurer [Sat, 20 Dec 2014 08:59:42 +0000 (09:59 +0100)]
improve doc

5 years agoimplement new Daemon features
Dietmar Maurer [Thu, 18 Dec 2014 12:44:35 +0000 (13:44 +0100)]
implement new Daemon features

- allow to specify run_dir (directory to store pid file)

- make hup optional

- correctly untaint pid when reading from file

- restart daemon by HUP or stop/start

- allow to register reload command

5 years agoDaemon: call setsid at startup
Dietmar Maurer [Thu, 18 Dec 2014 09:56:07 +0000 (10:56 +0100)]
Daemon: call setsid at startup

5 years agobump version to 3.0-21
Dietmar Maurer [Wed, 17 Dec 2014 13:49:52 +0000 (14:49 +0100)]
bump version to 3.0-21

5 years agoadd abstract class to implement daemons
Dietmar Maurer [Tue, 16 Dec 2014 10:10:53 +0000 (11:10 +0100)]
add abstract class to implement daemons

5 years agocleanup error message
Dietmar Maurer [Tue, 16 Dec 2014 12:23:37 +0000 (13:23 +0100)]
cleanup error message

5 years agoset RELEASE to 3.3
Dietmar Maurer [Thu, 11 Dec 2014 05:38:13 +0000 (06:38 +0100)]
set RELEASE to 3.3

5 years agobump version to 3.0-20
Dietmar Maurer [Thu, 11 Dec 2014 05:36:36 +0000 (06:36 +0100)]
bump version to 3.0-20

5 years agocreate_firewall_bridge_ovs : activate ovsint interface
Alexandre Derumier [Wed, 10 Dec 2014 17:45:48 +0000 (18:45 +0100)]
create_firewall_bridge_ovs : activate ovsint interface

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
5 years agoavoid warning when parsing long hex values with hex()
Dietmar Maurer [Wed, 25 Jun 2014 10:32:48 +0000 (12:32 +0200)]
avoid warning when parsing long hex values with hex()

5 years agoimprove debug message
Dietmar Maurer [Mon, 23 Jun 2014 11:53:41 +0000 (13:53 +0200)]
improve debug message

5 years agoadd FVN digest
Dietmar Maurer [Wed, 28 May 2014 08:27:03 +0000 (10:27 +0200)]
add FVN digest

Userful for short strings.

5 years agoadd additional check for duplicate method definitions
Dietmar Maurer [Tue, 27 May 2014 07:43:47 +0000 (09:43 +0200)]
add additional check for duplicate method definitions

If we have a SUBCLASS, other methods are not allowed.

5 years agofix typo
Dietmar Maurer [Fri, 23 May 2014 08:26:34 +0000 (10:26 +0200)]
fix typo

5 years agonew helper read_proc_net_route
Dietmar Maurer [Mon, 19 May 2014 10:59:08 +0000 (12:59 +0200)]
new helper read_proc_net_route

5 years agoadd 'noerr' parameter to parse_tap_devive_name()
Dietmar Maurer [Fri, 16 May 2014 09:14:47 +0000 (11:14 +0200)]
add 'noerr' parameter to parse_tap_devive_name()

And simply ignore devices with random names in cleanup_firewall_bridge().

5 years agoadd additional comment
Dietmar Maurer [Wed, 14 May 2014 05:18:17 +0000 (07:18 +0200)]
add additional comment

5 years agorename link to fwln && link peer to fwpr
Alexandre Derumier [Wed, 14 May 2014 03:25:45 +0000 (05:25 +0200)]
rename link to fwln && link peer to fwpr

also plug fwpr to vmbr, and fwln to fwbr

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
5 years agowe need to match link+ rule from iptables rules, and need to have a name different
Dietmar Maurer [Tue, 13 May 2014 12:33:49 +0000 (14:33 +0200)]
we need to match link+ rule from iptables rules, and need to have a name different
than link(\d+)i(\d+), for distinguished bridge/ovs interface unplug

Based on patch from Alexandre, but I prefer "link${vmid}o${devid}"

5 years agoadd firewall bridge support for openvswitch
Dietmar Maurer [Thu, 8 May 2014 11:07:52 +0000 (13:07 +0200)]
add firewall bridge support for openvswitch

    eth0-->vmbr0--vlan--fwintXiY-->fwbr-->tapXiY (firewalled tap)
                --vlan-->tapXiY (non firewall tap)

This is based on patches from Alexandre, but tries to factor out
common code into privat methods.

5 years agoadd firewall bridge support for linux bridge
Dietmar Maurer [Thu, 8 May 2014 09:28:03 +0000 (11:28 +0200)]
add firewall bridge support for linux bridge

    eth0----->vmbr0
    eth0.94-->vmbr0v94<--tapXiY (non firewalled tap)
                      <--linkXiY-->linkXpY-->fwbrXiY-->tapXiY (firewalled tap)

This is based on patches from Alexandre, but tries to factor out
common code into privat methods.

5 years agotap_unplug: auto-detect bridge, improve error messages
Dietmar Maurer [Thu, 8 May 2014 07:09:12 +0000 (09:09 +0200)]
tap_unplug: auto-detect bridge, improve error messages

Based on patch sent by Alexandre.

5 years agomap_path_to_methods: add code to return paths with uri patterns.
Dietmar Maurer [Wed, 7 May 2014 10:27:57 +0000 (12:27 +0200)]
map_path_to_methods: add code to return paths with uri patterns.

A previous commit removed that code, but we need it in pvesh to
display nice help messages.

5 years agobump version to 3.0-19
Dietmar Maurer [Tue, 6 May 2014 07:40:52 +0000 (09:40 +0200)]
bump version to 3.0-19

5 years agofix typo
Dietmar Maurer [Fri, 2 May 2014 05:06:25 +0000 (07:06 +0200)]
fix typo

5 years agonew helper register_page_formater
Dietmar Maurer [Fri, 2 May 2014 04:50:56 +0000 (06:50 +0200)]
new helper register_page_formater

5 years agomap_path_to_methods: do not skip folders which evaluate to false
Dietmar Maurer [Thu, 24 Apr 2014 12:46:05 +0000 (14:46 +0200)]
map_path_to_methods: do not skip folders which evaluate to false

5 years agobump version to 3.0-18
Dietmar Maurer [Thu, 24 Apr 2014 12:13:01 +0000 (14:13 +0200)]
bump version to 3.0-18

5 years agospeedup find_handler
Dietmar Maurer [Thu, 24 Apr 2014 11:49:43 +0000 (13:49 +0200)]
speedup find_handler

Avoid to scan the same path multiple times. That way we can speedup things
by factor 5 (depends on patch length and method count).

5 years agobump version to 3.0-17
Dietmar Maurer [Fri, 18 Apr 2014 05:21:21 +0000 (07:21 +0200)]
bump version to 3.0-17

5 years agodump_logfile: add filter regex
Dietmar Maurer [Fri, 18 Apr 2014 05:20:12 +0000 (07:20 +0200)]
dump_logfile: add filter regex

5 years agobump version to 3.0-16
Dietmar Maurer [Thu, 10 Apr 2014 07:49:57 +0000 (09:49 +0200)]
bump version to 3.0-16

5 years agoregister new standard option pve-config-digest
Dietmar Maurer [Thu, 10 Apr 2014 07:47:04 +0000 (09:47 +0200)]
register new standard option pve-config-digest

5 years agomove assert_if_modified to PVE::Tools
Dietmar Maurer [Thu, 10 Apr 2014 07:42:21 +0000 (09:42 +0200)]
move assert_if_modified to PVE::Tools

6 years agobump version to 3.0-15
Dietmar Maurer [Wed, 19 Mar 2014 05:52:20 +0000 (06:52 +0100)]
bump version to 3.0-15

6 years agodont use undefined var $ifcount
Dietmar Maurer [Wed, 19 Mar 2014 05:50:47 +0000 (06:50 +0100)]
dont use undefined var $ifcount