[elbe-devel] [PATCH v2 2/2] initvmaction: Add sync action
Olivier Dion
dion at linutronix.de
Mon May 25 15:01:24 CEST 2020
On Mon, 25 May 2020, Torben Hohn <torben.hohn at linutronix.de> wrote:
> On Mon, May 18, 2020 at 12:11:54PM -0400, Olivier Dion wrote:
>> On Mon, 18 May 2020, Olivier Dion <dion at linutronix.de> wrote:
>> > The initvm sync command will synchronize the local repository with the
>> > initvm. This does not check if there's a build in progress nor if the
>> > files are okay. The elbe-daemon _could crash silently_.
>> >
>> > Signed-off-by: Olivier Dion <dion at linutronix.de>
>> > ---
>> > elbepack/initvmaction.py | 16 ++++++++++++++++
>> > 1 file changed, 16 insertions(+)
>> >
>> > diff --git a/elbepack/initvmaction.py b/elbepack/initvmaction.py
>> > index c6c1943f..219cc3a9 100644
>> > --- a/elbepack/initvmaction.py
>> > +++ b/elbepack/initvmaction.py
>> > @@ -628,3 +628,19 @@ class SubmitAction(InitVMAction):
>> >
>> > submit_and_dl_result(xmlfile, cdrom, opt)
>> >
>> > + at InitVMAction.register('sync')
>> > +class SyncAction(InitVMAction):
>> > +
>> > + def __init__(self, node):
>> > + super(SyncAction, self).__init__(node)
>> > +
>> > + def execute(self, _initvmdir, opt, args):
>> > + top_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
>> > + try:
>> > + system("rsync --info=name1,stats1 --archive --times "
>> > + "--exclude='*.pyc' --exclude='__pycache__' --exclude='__init__.py' "
>> > + "--rsh='ssh -p %s' --chown=root:root "
>> > + "%s/{schema,elbepack}/ %s/elbe root at localhost:/var/cache/elbe/devel" %
>> > + (cfg["sshport"], top_dir, top_dir))
>> > + except CommandError as E:
>> > + print(E)
>> > --
>> > 2.26.2
>> >
>>
>> Note that I correct the invocation yet again:
>> ----------------------------------------------------------------------
>> "rsync --info=name1,stats1 --archive --times "
>> "--exclude='.git' --exclude='*.pyc' --exclude='elbe-build*' "
>> "--exclude='initvm' --exclude='__pycache__' --exclude='docs' "
>> "--exclude='examples' "
>> "--rsh='ssh -p %s' --chown=root:root "
>> "%s/ root at localhost:/var/cache/elbe/devel" %
>> (cfg["sshport"], top_dir))
>> ----------------------------------------------------------------------
>
> do you send another patch ?
If you feel like it. Otherwise this invocation has been working for me
for the last week. We might want to change '--times' for '--checksum'
tho. There might be some conflict with Git checkout sometime and rsync
will copy file that are identical but have different timestamp.
--
Olivier Dion
Linutronix GmbH | Bahnhofstrasse 3 | D-88690 Uhldingen-Mühlhofen
More information about the elbe-devel
mailing list