[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