Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Roque
slapos
Commits
3dd443b8
Commit
3dd443b8
authored
Nov 13, 2024
by
Kazuhiko Shiozaki
Browse files
Options
Browse Files
Download
Plain Diff
software/backupserver/agent: add a small software release to provide rdiff-backup script.
See merge request
nexedi/slapos!1603
parents
e7369525
94d7e2b9
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
129 additions
and
3 deletions
+129
-3
software/backupserver/agent/software.cfg
software/backupserver/agent/software.cfg
+9
-0
software/backupserver/agent/test/README.md
software/backupserver/agent/test/README.md
+1
-0
software/backupserver/agent/test/setup.py
software/backupserver/agent/test/setup.py
+48
-0
software/backupserver/agent/test/test.py
software/backupserver/agent/test/test.py
+58
-0
software/backupserver/buildout.hash.cfg
software/backupserver/buildout.hash.cfg
+1
-1
software/backupserver/software.cfg
software/backupserver/software.cfg
+3
-0
software/backupserver/template-backup-script.sh.in
software/backupserver/template-backup-script.sh.in
+2
-2
software/slapos-sr-testing/software.cfg
software/slapos-sr-testing/software.cfg
+7
-0
No files found.
software/backupserver/agent/software.cfg
0 → 100644
View file @
3dd443b8
[buildout]
extends =
../software.cfg
parts =
rdiff-backup
[rdiff-backup]
shared = false
software/backupserver/agent/test/README.md
0 → 100644
View file @
3dd443b8
Tests for backupserver/agent
software/backupserver/agent/test/setup.py
0 → 100644
View file @
3dd443b8
##############################################################################
#
# Copyright (c) 2024 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
##############################################################################
from
setuptools
import
setup
,
find_packages
version
=
'0.0.1.dev0'
name
=
'slapos.test.backupserver-agent'
long_description
=
open
(
"README.md"
).
read
()
setup
(
name
=
name
,
version
=
version
,
description
=
"Test for SlapOS' Backupserver Agent"
,
long_description
=
long_description
,
long_description_content_type
=
'text/markdown'
,
maintainer
=
"Nexedi"
,
maintainer_email
=
"info@nexedi.com"
,
url
=
"https://lab.nexedi.com/nexedi/slapos"
,
packages
=
find_packages
(),
install_requires
=
[
'slapos.core'
,
'slapos.libnetworkcache'
,
'erp5.util'
,
],
zip_safe
=
True
,
test_suite
=
'test'
,
)
software/backupserver/agent/test/test.py
0 → 100644
View file @
3dd443b8
##############################################################################
#
# Copyright (c) 2024 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
##############################################################################
import
hashlib
import
os
import
shutil
import
subprocess
import
tempfile
from
slapos.testing.testcase
import
installSoftwareUrlList
,
makeModuleSetUpAndTestCaseClass
software_release_url
=
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'software.cfg'
))
setUpModule
,
InstanceTestCase
=
makeModuleSetUpAndTestCaseClass
(
os
.
path
.
abspath
(
software_release_url
))
class
TestBackupServerAgent
(
InstanceTestCase
):
request_instance
=
False
def
test
(
self
):
rdiff_backup_path
=
os
.
path
.
join
(
self
.
slap
.
software_directory
,
hashlib
.
md5
(
self
.
getSoftwareURL
().
encode
()).
hexdigest
(),
'parts'
,
'rdiff-backup'
,
'bin'
,
'rdiff-backup'
,
)
result
=
subprocess
.
run
(
[
rdiff_backup_path
,
'--version'
],
capture_output
=
True
,
)
self
.
assertEqual
(
result
.
returncode
,
0
,
result
.
stdout
)
self
.
assertEqual
(
result
.
stdout
,
b'rdiff-backup 1.0.5
\
n
'
)
software/backupserver/buildout.hash.cfg
View file @
3dd443b8
...
...
@@ -26,7 +26,7 @@ md5sum = 851262d7174da868805cb7c8e1ced7c0
[template-backup-script]
filename = template-backup-script.sh.in
md5sum =
3f3286347a7e271e7bfa66e1a840989b
md5sum =
43b92958f34d5ca84e708bace817b971
[template-crontab-line]
filename = template-crontab-line.in
...
...
software/backupserver/software.cfg
View file @
3dd443b8
...
...
@@ -30,6 +30,9 @@ parts =
template-crontab-line
slapos-cookbook
[rdiff-backup]
<= rdiff-backup-1.0.5
[rssgen-eggs]
recipe = zc.recipe.egg
interpreter = python-${:_buildout_section_name_}
...
...
software/backupserver/template-backup-script.sh.in
View file @
3dd443b8
...
...
@@ -13,7 +13,7 @@ ${coreutils-output:echo} "Available only if backup succeed." > $${:statistic_log
# set -e
cd $${:datadirectory}
${util-linux:location}/bin/flock $${:status_log}.lock \
${rdiff-backup
-1.0.5
:location}/bin/rdiff-backup \
${rdiff-backup:location}/bin/rdiff-backup \
$${:exclude_string} \
--include='$${:include}' \
--exclude='**' \
...
...
@@ -26,7 +26,7 @@ RESULT=$?
if [ $RESULT -eq 0 ]
then
${coreutils-output:echo} "`${coreutils-output:date} --iso-8601=seconds -u`, $${:statistic_log}, $${:hostname}, backup success" >> $${:status_log}
${findutils-output:find} rdiff-backup-data/ -maxdepth 1 -name "session_statistic*" | ${coreutils-output:sort} | ${coreutils-output:tail} -n 1 | ${findutils-output:xargs} ${rdiff-backup
-1.0.5
:location}/bin/rdiff-backup --calculate-average > $${:statistic_log}
${findutils-output:find} rdiff-backup-data/ -maxdepth 1 -name "session_statistic*" | ${coreutils-output:sort} | ${coreutils-output:tail} -n 1 | ${findutils-output:xargs} ${rdiff-backup:location}/bin/rdiff-backup --calculate-average > $${:statistic_log}
else
${coreutils-output:echo} "`${coreutils-output:date} --iso-8601=seconds -u`, $${:statistic_log}, $${:hostname}, backup failed" >> $${:status_log}
fi
software/slapos-sr-testing/software.cfg
View file @
3dd443b8
...
...
@@ -43,6 +43,11 @@ setup = ${slapos-repository:location}/
egg = slapos.test.backupserver
setup = ${slapos-repository:location}/software/backupserver/test/
[slapos.test.backupserver-agent-setup]
<= setup-develop-egg
egg = slapos.test.backupserver-agent
setup = ${slapos-repository:location}/software/backupserver/agent/test/
[slapos.test.clammit-setup]
<= setup-develop-egg
egg = slapos.test.clammit
...
...
@@ -378,6 +383,7 @@ eggs +=
supervisor
${slapos.cookbook-setup:egg}
${slapos.test.backupserver-setup:egg}
${slapos.test.backupserver-agent-setup:egg}
# ${slapos.test.beremiz-ide-setup:egg}
${slapos.test.beremiz-runtime-setup:egg}
${slapos.test.caucase-setup:egg}
...
...
@@ -469,6 +475,7 @@ context =
tests =
json-schemas ${slapos.cookbook-setup:setup}
backupserver ${slapos.test.backupserver-setup:setup}
backupserver-agent ${slapos.test.backupserver-agent-setup:setup}
# beremiz-ide ${slapos.test.beremiz-ide-setup:setup}
beremiz-runtime ${slapos.test.beremiz-runtime-setup:setup}
caucase ${slapos.test.caucase-setup:setup}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment