[Notes] [Git][BuildStream/buildstream][jmac/remote_execution_client] 5 commits: _sandboxremote: Fix copyright and some style things



Title: GitLab

Jim MacArthur pushed to branch jmac/remote_execution_client at BuildStream / buildstream

Commits:

4 changed files:

Changes:

  • buildstream/element.py
    ... ... @@ -95,6 +95,7 @@ from . import _site
    95 95
     from ._platform import Platform
    
    96 96
     from .plugin import CoreWarnings
    
    97 97
     from .sandbox._config import SandboxConfig
    
    98
    +from .sandbox._sandboxremote import SandboxRemote
    
    98 99
     
    
    99 100
     from .storage.directory import Directory
    
    100 101
     from .storage._filebaseddirectory import FileBasedDirectory
    
    ... ... @@ -1548,6 +1549,8 @@ class Element(Plugin):
    1548 1549
                     finally:
    
    1549 1550
                         if collect is not None:
    
    1550 1551
                             try:
    
    1552
    +                            # Sandbox will probably have replaced its virtual directory, so get it again
    
    1553
    +                            sandbox_vroot = sandbox.get_virtual_directory()
    
    1551 1554
                                 collectvdir = sandbox_vroot.descend(collect.lstrip(os.sep).split(os.sep))
    
    1552 1555
                             except VirtualDirectoryError:
    
    1553 1556
                                 # No collect directory existed
    
    ... ... @@ -2120,7 +2123,24 @@ class Element(Plugin):
    2120 2123
             project = self._get_project()
    
    2121 2124
             platform = Platform.get_platform()
    
    2122 2125
     
    
    2123
    -        if directory is not None and os.path.exists(directory):
    
    2126
    +        if self.__remote_execution_url and self.BST_VIRTUAL_DIRECTORY:
    
    2127
    +            if not self.__artifacts.has_push_remotes(element=self):
    
    2128
    +                # Give an early warning if remote execution will not work
    
    2129
    +                raise ElementError("Artifact {} is configured to use remote execution but has no push remotes. "
    
    2130
    +                                   .format(self.name) +
    
    2131
    +                                   "The remote artifact server(s) may not be correctly configured or contactable.")
    
    2132
    +
    
    2133
    +            self.info("Using a remote 'sandbox' for artifact {}".format(self.name))
    
    2134
    +            sandbox = SandboxRemote(context, project,
    
    2135
    +                                    directory,
    
    2136
    +                                    stdout=stdout,
    
    2137
    +                                    stderr=stderr,
    
    2138
    +                                    config=config,
    
    2139
    +                                    server_url=self.__remote_execution_url,
    
    2140
    +                                    allow_real_directory=False)
    
    2141
    +            yield sandbox
    
    2142
    +        elif directory is not None and os.path.exists(directory):
    
    2143
    +            self.info("Using a local sandbox for artifact {}".format(self.name))
    
    2124 2144
                 sandbox = platform.create_sandbox(context, project,
    
    2125 2145
                                                   directory,
    
    2126 2146
                                                   stdout=stdout,
    

  • buildstream/plugins/elements/autotools.py
    ... ... @@ -57,7 +57,7 @@ from buildstream import BuildElement
    57 57
     
    
    58 58
     # Element implementation for the 'autotools' kind.
    
    59 59
     class AutotoolsElement(BuildElement):
    
    60
    -    pass
    
    60
    +    BST_VIRTUAL_DIRECTORY = True
    
    61 61
     
    
    62 62
     
    
    63 63
     # Plugin entry point
    

  • buildstream/sandbox/__init__.py
    ... ... @@ -20,3 +20,4 @@
    20 20
     from .sandbox import Sandbox, SandboxFlags
    
    21 21
     from ._sandboxchroot import SandboxChroot
    
    22 22
     from ._sandboxbwrap import SandboxBwrap
    
    23
    +from ._sandboxremote import SandboxRemote

  • buildstream/sandbox/_sandboxremote.py
    1 1
     #!/usr/bin/env python3
    
    2 2
     #
    
    3
    -#  Copyright (C) 2018 Codethink Limited
    
    3
    +#  Copyright (C) 2018 Bloomberg LP
    
    4 4
     #
    
    5 5
     #  This program is free software; you can redistribute it and/or
    
    6 6
     #  modify it under the terms of the GNU Lesser General Public
    
    ... ... @@ -27,7 +27,6 @@ from . import Sandbox
    27 27
     from ..storage._filebaseddirectory import FileBasedDirectory
    
    28 28
     from ..storage._casbaseddirectory import CasBasedDirectory
    
    29 29
     from .._protos.build.bazel.remote.execution.v2 import remote_execution_pb2, remote_execution_pb2_grpc
    
    30
    -
    
    31 30
     from .._artifactcache.cascache import CASCache
    
    32 31
     
    
    33 32
     
    



  • [Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]