Commit Graph

276 Commits

Author SHA1 Message Date
Wolfgang Bumiller
12c206a5ab tests: mock PVE::Cluster::get_members and adapt fail test
Commit 3385399339c94 ("replication: keep retrying every 30 minutes in
error state") changed the retry behavior to not stop after the 3rd error
and then stick to half-hour intervals. This needs to be reflected in the
tests. The numbers here match. (1900 + 30*60 = 3700).

Commit fd844180a7efa ("replication: don't sync to offline targets on
error states) changed the retry behavior to check whether the target
node is online. If this is not the case we fail right away. This
introduced a dependency on PVE::Cluster::get_members which we now need
to mock. Tests currently use node names "node{1,2,3}", so I just mock
those 3.
2017-06-28 06:05:44 +02:00
Wolfgang Bumiller
5b35845009 tests: update pvesr_lock_path variable location 2017-06-27 15:16:41 +02:00
Dietmar Maurer
2ca8059196 pvesr.timer: set AccuracySec=1
So that the user can predict when a job will/shpuld be started. I think
this will not have much impact on the cluster wide power consumption.
2017-06-23 11:41:37 +02:00
Dietmar Maurer
eaae2b5bb5 pvesr.service: add ConditionPathExists=/usr/bin/pvesr
And explicitly set type to 'oneshot', but I am not sure if it makes
any difference to 'simple'.
2017-06-23 10:44:54 +02:00
Wolfgang Link
0dfd4a9413 add systemd timer unit to trigger pvesr run 2017-06-23 10:20:34 +02:00
Dietmar Maurer
2aa029571c PVE/API2/Replication.pm: add $verbose parameter run_jobs() 2017-06-20 08:58:48 +02:00
Dietmar Maurer
d092dc4f83 use new replication helpers from pve-guest-common 2017-06-12 06:59:21 +02:00
Dietmar Maurer
810c6776d9 PVE::Replication - remove dependency to PVE::LXC/PVE::QemuServer
So that we can move the whole class to package pve-guest-common.
2017-06-12 05:59:51 +02:00
Dietmar Maurer
b9da11aa2b PVE::Replication - pass guest_class to run_replication
So that we can (re)use methods from PVE::AbstractConfig.
2017-06-12 05:59:51 +02:00
Dominik Csapak
d30ab14062 fix wrong variable syntax
{$PACKAGE} expands to '{ACKAGE}', meaning we shipped a dir:
/usr/share/doc/{ACKAGE}/examples

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-06-09 14:00:21 +02:00
Wolfgang Bumiller
72741c0b94 tests: override GuestHelper's lockdir
Otherwise the user running the tests may either create (and
end up being the ownderof) the system wide
/var/lock/pve-manager/* files, or the tests will fail (or
loop endlessly) if the user doesn't have access to them.
2017-06-09 12:06:30 +02:00
Dietmar Maurer
f842e812e0 replication: add replication log files 2017-06-07 17:27:00 +02:00
Dietmar Maurer
91ee6a2fec replication: improve stale volume detection, allow sync from parent snapshot
We pass a list of storage to scan for stale volumes to prepare_local_job().
So we make sure that we only activate/scan related storages.

Snapshot rollback may remove local replication shapshots. In that case
we still have the $conf->{parent} snapshot on both sides, so we
can use that as base snapshot.
2017-06-07 17:26:56 +02:00
Dietmar Maurer
356fbf797f replication: save list of used storage IDs 2017-06-07 11:30:52 +02:00
Dietmar Maurer
9b24b5d4ed use new PVE::ReplicationState::replication_snapshot_name() 2017-06-07 09:40:08 +02:00
Dietmar Maurer
e137f69fd8 replication: add last_node to replication state
So that we know which node produced the state. This is not always
the local node, because we copy the state on migrate.
2017-06-06 06:49:05 +02:00
Dietmar Maurer
c364b61f8e PVE::Replication - do not pass time to logfunc
This is simply not neccessary.
2017-06-06 06:36:03 +02:00
Dietmar Maurer
d255af0128 PVE::Replication - use new PVE::ReplicationState class 2017-06-02 12:28:43 +02:00
Wolfgang Bumiller
dc213d136f replication: use a dedicated lock file
Otherwise $update_job_state's file_set_contents() call
drops our lock.
2017-06-02 06:10:55 +02:00
Dietmar Maurer
c4ca87e508 make check: run replication_test6.pl 2017-05-31 15:29:53 +02:00
Dietmar Maurer
495aa710f2 replication - allow removal of jobs with target on local node 2017-05-31 13:54:40 +02:00
Dietmar Maurer
20f5ac242c replication_test5.pl: add test for job removal 2017-05-31 08:23:47 +02:00
Dietmar Maurer
3c54bc912b PVE::API2Tools::resolve_proxyto - new helper
Call proxyto_callback if that method is defined.
2017-05-31 08:23:47 +02:00
Dietmar Maurer
39c41c9dc5 ReplicationTestEnv.pm: avoid warning about undefined value 2017-05-31 08:23:47 +02:00
Dietmar Maurer
df16be460c bin/test/Makefile: run all replication tests 2017-05-31 08:23:47 +02:00
Dietmar Maurer
7f6ff9dd39 PVE::Replication::replicate - implement replicate
The actual volume replication is done in replicate_volume(), which is just
a stub for now.

I also added a regression test replication_test5.pl to verify basic
functions.
2017-05-31 08:23:47 +02:00
Dietmar Maurer
331025d954 ReplicationTestEnv.pm: mock get_ssh_info and ssh_info_to_command 2017-05-31 08:23:47 +02:00
Dietmar Maurer
4550bb78c3 ReplicationTestEnv.pm: mock storage content methods 2017-05-31 08:23:46 +02:00
Dietmar Maurer
f70997ea80 pvesr run: add --verbose flag
We can now pass a $logfunc parameter to replicate() to
produce more verbose logs/output. This is especially useful
for regression testing.
2017-05-31 08:23:46 +02:00
Dietmar Maurer
6e572d46ef replication_test4.pl: Test replication job failure 2017-05-31 08:23:46 +02:00
Dietmar Maurer
c5014e65b2 ReplicationTestEnv.pm: add job tracking log
To generate persistent logs with job state/config changes.
2017-05-31 08:23:46 +02:00
Dietmar Maurer
6269a49c64 replication_test3.pl: regression test for replication to same node 2017-05-31 08:23:46 +02:00
Dietmar Maurer
816c01f85b replication_test2.pl: test replication scheduler 2017-05-31 08:23:46 +02:00
Dietmar Maurer
d0920c29e6 add regression test environment for replication 2017-05-31 08:23:46 +02:00
Dietmar Maurer
892821fd87 pvesr: add pve storage replication tool
Just added code to configure jobs. Replication itself is not
implemented.
2017-05-31 08:23:46 +02:00
Wolfgang Link
c6723ee58b Make a new systemd target.
This will ensure all storages are up before pveproxy is running.
2017-05-03 11:50:53 +02:00
Fabian Grünbichler
2bde88fb3f fix ceph.service for Ceph Jewel >= 10.2.6
having our ceph.service pulled in by ceph.target does not
work anymore, because "systemctl start ceph.target" hangs
forever on ceph-common upgrades. multi-user.target seems to
work as well, and we are ordered after pve-cluster anyway.

only replace the old ceph.service if it is an exact match.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2017-03-13 14:20:14 +01:00
Wolfgang Bumiller
16a264ce0c remove space in service file 2017-03-13 14:18:21 +01:00
Thomas Lamprecht
3a2402368f pveperf: remove outated POD replaced by pve-docs
Remove the POD content and the overwriting makefile rule
'pveperf.1.pod' so that the rule from pve-doc-generator.mk matches

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2017-02-15 11:10:27 +01:00
Wolfgang Bumiller
804e97f9ec spiceproxy: import PVE::SafeSyslog 2017-01-26 12:59:57 +01:00
Dietmar Maurer
be613dfcbc bin/Makefile: export PERLLIB=.. so that doc generator works correctly
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2017-01-12 11:53:19 +01:00
Dietmar Maurer
26dccfdb49 perftest2.pl: use -k (keepalive) to show max performance 2016-12-28 12:06:27 +01:00
Dietmar Maurer
90655f29b5 remove PVE::API2Client class and related examples
We now have all API client code in an extra package:

https://git.proxmox.com/?p=pve-apiclient.git;a=summary
2016-12-28 11:45:47 +01:00
Dietmar Maurer
90d226ab5d code cleanup 2016-12-28 11:34:01 +01:00
Dietmar Maurer
cf41f67abf rename pve.conf to ceph-after-pve-cluster.conf 2016-12-22 11:47:13 +01:00
Wolfgang Link
b8fb9fb028 add systemd replacement for ceph init script
the old sys V init script does a lot of stuff, most of which
is already replaced with the system units since jewel,
except for the OSD activation which is still done by either
udev or the old init script.

include systemd service as drop in replacement for the init
script when using jewel. the service is not enabled by
default (as this would break hammer), but needs to be copied
to /etc/systemd/system on upgrade to (manual) or install of
jewel (automatic).

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2016-12-22 11:42:32 +01:00
Dominik Csapak
8d365d994f fix #1212: allow options for delete in pvesh
we did not allow to use parameters in the delete handler in pvesh,
but we make use of them (e.g. force on snapshot deleting)

as the get/set and delete handler do the same, refactor the if/else
paths of them

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-25 15:24:22 +01:00
Fabian Grünbichler
e6e4c4576d add sheepdog and gluster to pveproxy.service
this ensures proper ordering for starting on boot and
stopping on shutdown.
2016-11-15 12:10:14 +01:00
Dietmar Maurer
780fbb4b2a pvestatd: log warnings to syslog 2016-10-26 15:58:23 +02:00
Thomas Lamprecht
8f46103543 Makefile: fix distclean target
As some Makefiles in sub directories do not implement the distclean
target, namely:
PVE/Service/Makefile
PVE/CLI/Makefile

This target is broken.

As all other implementations just redirect to the 'clean' target I
do not implement the missing ones but rather remove all such
targets. Keep it just in the top level directory, for consistence
sake with other pve repos, and redirect it there directly to the
clean target.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2016-09-28 08:21:48 +02:00