pve-common.git
5 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

5 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'.

5 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/\|/

5 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

5 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).

5 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.

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

5 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.

5 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.

5 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

5 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

5 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

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

5 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

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

5 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

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

5 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

5 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>
6 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()

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

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

Userful for short strings.

6 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.

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

6 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

6 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().

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

6 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>
6 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}"

6 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.

6 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.

6 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.

6 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.

6 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

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

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

6 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

6 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

6 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).

6 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

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

6 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

6 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

6 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

6 years agoDelayed vlan interface creation until all checks are done.
Pablo Ruiz Garcia [Wed, 12 Feb 2014 07:55:30 +0000 (08:55 +0100)]
Delayed vlan interface creation until all checks are done.

Signed-off-by: Pablo Ruiz Garcia <pablo.ruiz@gmail.com>
6 years agoHandle cases where the vlan bridge has already been setup previouslly.
Pablo Ruiz Garcia [Wed, 12 Feb 2014 07:55:29 +0000 (08:55 +0100)]
Handle cases where the vlan bridge has already been setup previouslly.

Signed-off-by: Pablo Ruiz Garcia <pablo.ruiz@gmail.com>
6 years agoAdd support for bridges with more than one physical link (ie. two bonds each connecte...
Pablo Ruiz Garcia [Wed, 12 Feb 2014 07:55:28 +0000 (08:55 +0100)]
Add support for bridges with more than one physical link (ie. two bonds each connected to a different switch using MSTP/PVSTP to load balance vlans across links)

Signed-off-by: Pablo Ruiz Garcia <pablo.ruiz@gmail.com>
6 years agouse full name for PVE::ProcFSTools::write_proc_entry()
Dietmar Maurer [Wed, 26 Feb 2014 06:57:48 +0000 (07:57 +0100)]
use full name for PVE::ProcFSTools::write_proc_entry()

6 years agobump version to 3.0-14
Dietmar Maurer [Wed, 26 Feb 2014 06:51:36 +0000 (07:51 +0100)]
bump version to 3.0-14

6 years agocorrectly copy bridge config
Dietmar Maurer [Wed, 26 Feb 2014 06:47:10 +0000 (07:47 +0100)]
correctly copy bridge config

Simply use IO::File to write /proc/xyz files instead of running
external program using system("echo ...") (which fails when running
in perl taint mode).

6 years agobump version to 3.0-13
Dietmar Maurer [Wed, 22 Jan 2014 06:37:33 +0000 (07:37 +0100)]
bump version to 3.0-13

6 years agoimprove random MAC address generation
Dietmar Maurer [Wed, 22 Jan 2014 06:34:33 +0000 (07:34 +0100)]
improve random MAC address generation

6 years agoextrac ovs_option tag= into ovs_tag property
Dietmar Maurer [Mon, 30 Dec 2013 09:43:54 +0000 (10:43 +0100)]
extrac ovs_option tag= into ovs_tag property

To make the API simpler.

6 years agosupport bond_xmit_hash_policy
Dietmar Maurer [Mon, 30 Dec 2013 07:20:52 +0000 (08:20 +0100)]
support bond_xmit_hash_policy

6 years agoimprove ovs lacp bond mode impelmentation
Dietmar Maurer [Mon, 30 Dec 2013 06:35:27 +0000 (07:35 +0100)]
improve ovs lacp bond mode impelmentation