Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 108-integration-tests-not-idempotent-and-self-contained
  • 131-behavior-of-except-argument-is-frustrating-and-confusing
  • 132-loading-external-plugins-works-without-explicit-requirement-in-project-conf
  • 135-expire-artifacts-in-local-cache
  • 135-expire-artifacts-in-local-cache-clean
  • 138-aborting-bst-push-command-causes-stack-trace-3
  • 142-potentially-printing-provenance-more-than-once-in-loaderrors
  • 188-trigger-external-commands-on-certain-events
  • 214-filter-workspacing-rework
  • 218-allow-specifying-the-chroot-binary-to-use-for-sandboxes-on-unix-platforms
  • 239-use-pylint-for-linting
  • 372-allow-queues-to-run-auxilliary-jobs-after-an-element-s-job-finishes
  • 380-untagged-bst
  • 463-make-dependency-type-default-to-build
  • 537-mirror-fallback-does-not-work-for-git
  • 64-clarify-about-plugins-importing-other-plugins
  • 716-add-example-with-build-directory-outside-of-source-directory
  • 716-add-example-with-build-directory-outside-of-source-directory-2
  • 81-non-empty-read-only-directories-not-handled-during-bst-build-and-others
  • BenjaminSchubert/fix-quota-tests
  • Qinusty/235-manifest
  • Qinusty/397
  • Qinusty/470-bst-track-yaml-indent
  • Qinusty/553-backport-1.2
  • Qinusty/663-missing-cache-key-workspace-open
  • Qinusty/backport-576
  • Qinusty/backport-skipped-562
  • Qinusty/gitlab-ci
  • Qinusty/gitlab-ci-duration
  • Qinusty/message-helpers
  • Qinusty/pytest_cache_gitignore
  • abderrahim/cached-failure
  • abderrahim/cachekey-strictrebuild
  • abderrahim/cleanup-speedup
  • abderrahim/makemaker
  • abderrahim/resolve-remotes
  • abderrahim/source-cache
  • abderrahim/stage-artifact-scriptelement
  • abderrahim/virtual-extract
  • adamjones/contributing
  • adamjones/contribution-guide
  • aevri/assert_no_unexpected_size_writes
  • aevri/casdprocessmanager2
  • aevri/check_spawn_ci_working
  • aevri/enable_spawn_ci_4
  • aevri/enable_spawn_ci_6
  • aevri/enable_spawn_ci_7
  • aevri/json_artifact_meta
  • aevri/picklable_jobs
  • aevri/plugin_venvs
  • aevri/provenance_scope
  • aevri/pylint_ignore_argsdiff
  • aevri/safe_noninteractive
  • aevri/win32
  • aevri/win32_minimal
  • aevri/win32_minimal_seemstowork_20190829
  • aevri/win32_receive_signals
  • aevri/win32_temptext
  • alexfazakas/add-bst-init-argument
  • alexfazakas/use-merge-trains
  • always-do-linting
  • another-segfault
  • becky/locally_downloaded_files
  • becky/shell_launch_errors
  • bschubert/add-isolated-tests
  • bschubert/isort
  • bschubert/merge-parent-child-job
  • bschubert/more-mypy
  • bschubert/no-multiprocessing-bak
  • bschubert/no-multiprocessing-full
  • bschubert/optimize-deps
  • bschubert/optimize-element-init
  • bschubert/optimize-loader-sorting
  • bschubert/optimize-mapping-node
  • bschubert/optimize-splits
  • bschubert/remove-multiline-switch-for-re
  • bschubert/remove-parent-child-pipe
  • bschubert/remove-pip-source
  • bschubert/standardize-source-tests
  • bschubert/test-plugins
  • bschubert/update-coverage
  • bst-1
  • bst-1.0
  • bst-1.2
  • bst-1.4
  • bst-pull
  • bst-push
  • buildbox-pre-will
  • cache-key-v0
  • caching_build_trees
  • cascache_timeouts
  • chandan/automate-pypi-release
  • chandan/cli-deps
  • chandan/contrib-dependencies
  • chandan/element-cache
  • chandan/enums
  • chandan/extras-require
  • chandan/macos-multiprocessing
  • chandan/moar-parallelism
  • chandan/moar-runners
  • 1.0.0
  • 1.0.1
  • 1.1.0
  • 1.1.1
  • 1.1.2
  • 1.1.3
  • 1.1.4
  • 1.1.5
  • 1.1.6
  • 1.1.7
  • 1.2.0
  • 1.2.1
  • 1.2.2
  • 1.2.3
  • 1.2.4
  • 1.2.5
  • 1.2.6
  • 1.2.7
  • 1.2.8
  • 1.3.0
  • 1.3.1
  • 1.4.0
  • 1.4.1
  • 1.4.2
  • 1.4.3
  • 1.5.0
  • 1.5.1
  • 1.6.0
  • 1.6.1
  • 1.91.0
  • 1.91.1
  • 1.91.2
  • 1.91.3
  • 1.93.0
  • 1.93.1
  • 1.93.2
  • 1.93.3
  • 1.93.4
  • 1.93.5
  • CROSS_PLATFORM_SEPT_2017
  • PRE_CAS_MERGE_JULY_2018
  • bst-1-branchpoint
  • bst-1.2-branchpoint
  • bst-1.4-branchpoint
144 results

Target

Select target project
  • willsalmon/buildstream
  • CumHoleZH/buildstream
  • tchaik/buildstream
  • DCotyPortfolio/buildstream
  • jesusoctavioas/buildstream
  • patrickmmartin/buildstream
  • franred/buildstream
  • tintou/buildstream
  • alatiera/buildstream
  • martinblanchard/buildstream
  • neverdie22042524/buildstream
  • Mattlk13/buildstream
  • PServers/buildstream
  • phamnghia610909/buildstream
  • chiaratolentino/buildstream
  • eysz7-x-x/buildstream
  • kerrick1/buildstream
  • matthew-yates/buildstream
  • twofeathers/buildstream
  • mhadjimichael/buildstream
  • pointswaves/buildstream
  • Mr.JackWilson/buildstream
  • Tw3akG33k/buildstream
  • AlexFazakas/buildstream
  • eruidfkiy/buildstream
  • clamotion2/buildstream
  • nanonyme/buildstream
  • wickyjaaa/buildstream
  • nmanchev/buildstream
  • bojorquez.ja/buildstream
  • mostynb/buildstream
  • highpit74/buildstream
  • Demo112/buildstream
  • ba2014sheer/buildstream
  • tonimadrino/buildstream
  • usuario2o/buildstream
  • Angelika123456/buildstream
  • neo355/buildstream
  • corentin-ferlay/buildstream
  • coldtom/buildstream
  • wifitvbox81/buildstream
  • 358253885/buildstream
  • seanborg/buildstream
  • SotK/buildstream
  • DouglasWinship/buildstream
  • karansthr97/buildstream
  • louib/buildstream
  • bwh-ct/buildstream
  • robjh/buildstream
  • we88c0de/buildstream
  • zhengxian5555/buildstream
51 results
Select Git revision
  • 108-integration-tests-not-idempotent-and-self-contained
  • 131-behavior-of-except-argument-is-frustrating-and-confusing
  • 132-loading-external-plugins-works-without-explicit-requirement-in-project-conf
  • 135-expire-artifacts-in-local-cache
  • 135-expire-artifacts-in-local-cache-clean
  • 138-aborting-bst-push-command-causes-stack-trace-3
  • 142-potentially-printing-provenance-more-than-once-in-loaderrors
  • 188-trigger-external-commands-on-certain-events
  • 214-filter-workspacing-rework
  • 218-allow-specifying-the-chroot-binary-to-use-for-sandboxes-on-unix-platforms
  • 239-use-pylint-for-linting
  • 372-allow-queues-to-run-auxilliary-jobs-after-an-element-s-job-finishes
  • 380-untagged-bst
  • 463-make-dependency-type-default-to-build
  • 537-mirror-fallback-does-not-work-for-git
  • 64-clarify-about-plugins-importing-other-plugins
  • 716-add-example-with-build-directory-outside-of-source-directory
  • 716-add-example-with-build-directory-outside-of-source-directory-2
  • 81-non-empty-read-only-directories-not-handled-during-bst-build-and-others
  • BenjaminSchubert/fix-quota-tests
  • Qinusty/235-manifest
  • Qinusty/397
  • Qinusty/470-bst-track-yaml-indent
  • Qinusty/553-backport-1.2
  • Qinusty/663-missing-cache-key-workspace-open
  • Qinusty/backport-576
  • Qinusty/backport-skipped-562
  • Qinusty/gitlab-ci
  • Qinusty/gitlab-ci-duration
  • Qinusty/message-helpers
  • Qinusty/pytest_cache_gitignore
  • abderrahim/cached-failure
  • abderrahim/cachekey-strictrebuild
  • abderrahim/cleanup-speedup
  • abderrahim/makemaker
  • abderrahim/resolve-remotes
  • abderrahim/source-cache
  • abderrahim/stage-artifact-scriptelement
  • abderrahim/virtual-extract
  • adamjones/contributing
  • adamjones/contribution-guide
  • aevri/assert_no_unexpected_size_writes
  • aevri/casdprocessmanager2
  • aevri/check_spawn_ci_working
  • aevri/enable_spawn_ci_4
  • aevri/enable_spawn_ci_6
  • aevri/enable_spawn_ci_7
  • aevri/json_artifact_meta
  • aevri/picklable_jobs
  • aevri/plugin_venvs
  • aevri/provenance_scope
  • aevri/pylint_ignore_argsdiff
  • aevri/safe_noninteractive
  • aevri/win32
  • aevri/win32_minimal
  • aevri/win32_minimal_seemstowork_20190829
  • aevri/win32_receive_signals
  • aevri/win32_temptext
  • alexfazakas/add-bst-init-argument
  • alexfazakas/use-merge-trains
  • always-do-linting
  • another-segfault
  • becky/locally_downloaded_files
  • becky/shell_launch_errors
  • bschubert/add-isolated-tests
  • bschubert/isort
  • bschubert/merge-parent-child-job
  • bschubert/more-mypy
  • bschubert/no-multiprocessing-bak
  • bschubert/no-multiprocessing-full
  • bschubert/optimize-deps
  • bschubert/optimize-element-init
  • bschubert/optimize-loader-sorting
  • bschubert/optimize-mapping-node
  • bschubert/optimize-splits
  • bschubert/remove-multiline-switch-for-re
  • bschubert/remove-parent-child-pipe
  • bschubert/remove-pip-source
  • bschubert/standardize-source-tests
  • bschubert/test-plugins
  • bschubert/update-coverage
  • bst-1
  • bst-1.0
  • bst-1.2
  • bst-1.4
  • bst-pull
  • bst-push
  • buildbox-pre-will
  • cache-key-v0
  • caching_build_trees
  • cascache_timeouts
  • chandan/automate-pypi-release
  • chandan/cli-deps
  • chandan/contrib-dependencies
  • chandan/element-cache
  • chandan/enums
  • chandan/extras-require
  • chandan/macos-multiprocessing
  • chandan/moar-parallelism
  • chandan/moar-runners
  • 1.0.0
  • 1.0.1
  • 1.1.0
  • 1.1.1
  • 1.1.2
  • 1.1.3
  • 1.1.4
  • 1.1.5
  • 1.1.6
  • 1.1.7
  • 1.2.0
  • 1.2.1
  • 1.2.2
  • 1.2.3
  • 1.2.4
  • 1.2.5
  • 1.2.6
  • 1.2.7
  • 1.2.8
  • 1.3.0
  • 1.3.1
  • 1.4.0
  • 1.4.1
  • 1.4.2
  • 1.4.3
  • 1.5.0
  • 1.5.1
  • 1.6.0
  • 1.6.1
  • 1.91.0
  • 1.91.1
  • 1.91.2
  • 1.91.3
  • 1.93.0
  • 1.93.1
  • 1.93.2
  • 1.93.3
  • 1.93.4
  • 1.93.5
  • CROSS_PLATFORM_SEPT_2017
  • PRE_CAS_MERGE_JULY_2018
  • bst-1-branchpoint
  • bst-1.2-branchpoint
  • bst-1.4-branchpoint
144 results
Show changes
Commits on Source (2)
...@@ -83,6 +83,7 @@ class CASRemote(): ...@@ -83,6 +83,7 @@ class CASRemote():
self.spec = spec self.spec = spec
self._initialized = False self._initialized = False
self.channel = None self.channel = None
self.instance_name = None
self.bytestream = None self.bytestream = None
self.cas = None self.cas = None
self.ref_storage = None self.ref_storage = None
...@@ -125,6 +126,8 @@ class CASRemote(): ...@@ -125,6 +126,8 @@ class CASRemote():
else: else:
raise CASRemoteError("Unsupported URL: {}".format(self.spec.url)) raise CASRemoteError("Unsupported URL: {}".format(self.spec.url))
self.instance_name = self.spec.instance_name or None
self.bytestream = bytestream_pb2_grpc.ByteStreamStub(self.channel) self.bytestream = bytestream_pb2_grpc.ByteStreamStub(self.channel)
self.cas = remote_execution_pb2_grpc.ContentAddressableStorageStub(self.channel) self.cas = remote_execution_pb2_grpc.ContentAddressableStorageStub(self.channel)
self.capabilities = remote_execution_pb2_grpc.CapabilitiesStub(self.channel) self.capabilities = remote_execution_pb2_grpc.CapabilitiesStub(self.channel)
...@@ -133,6 +136,8 @@ class CASRemote(): ...@@ -133,6 +136,8 @@ class CASRemote():
self.max_batch_total_size_bytes = _MAX_PAYLOAD_BYTES self.max_batch_total_size_bytes = _MAX_PAYLOAD_BYTES
try: try:
request = remote_execution_pb2.GetCapabilitiesRequest() request = remote_execution_pb2.GetCapabilitiesRequest()
if self.instance_name:
request.instance_name = self.instance_name
response = self.capabilities.GetCapabilities(request) response = self.capabilities.GetCapabilities(request)
server_max_batch_total_size_bytes = response.cache_capabilities.max_batch_total_size_bytes server_max_batch_total_size_bytes = response.cache_capabilities.max_batch_total_size_bytes
if 0 < server_max_batch_total_size_bytes < self.max_batch_total_size_bytes: if 0 < server_max_batch_total_size_bytes < self.max_batch_total_size_bytes:
...@@ -146,6 +151,8 @@ class CASRemote(): ...@@ -146,6 +151,8 @@ class CASRemote():
self.batch_read_supported = False self.batch_read_supported = False
try: try:
request = remote_execution_pb2.BatchReadBlobsRequest() request = remote_execution_pb2.BatchReadBlobsRequest()
if self.instance_name:
request.instance_name = self.instance_name
response = self.cas.BatchReadBlobs(request) response = self.cas.BatchReadBlobs(request)
self.batch_read_supported = True self.batch_read_supported = True
except grpc.RpcError as e: except grpc.RpcError as e:
...@@ -156,6 +163,8 @@ class CASRemote(): ...@@ -156,6 +163,8 @@ class CASRemote():
self.batch_update_supported = False self.batch_update_supported = False
try: try:
request = remote_execution_pb2.BatchUpdateBlobsRequest() request = remote_execution_pb2.BatchUpdateBlobsRequest()
if self.instance_name:
request.instance_name = self.instance_name
response = self.cas.BatchUpdateBlobs(request) response = self.cas.BatchUpdateBlobs(request)
self.batch_update_supported = True self.batch_update_supported = True
except grpc.RpcError as e: except grpc.RpcError as e:
...@@ -224,6 +233,8 @@ class CASRemote(): ...@@ -224,6 +233,8 @@ class CASRemote():
self.init() self.init()
request = remote_execution_pb2.FindMissingBlobsRequest() request = remote_execution_pb2.FindMissingBlobsRequest()
if self.instance_name:
request.instance_name = self.instance_name
request.blob_digests.extend([digest]) request.blob_digests.extend([digest])
response = self.cas.FindMissingBlobs(request) response = self.cas.FindMissingBlobs(request)
...@@ -258,7 +269,13 @@ class CASRemote(): ...@@ -258,7 +269,13 @@ class CASRemote():
# Local Private Methods # # Local Private Methods #
################################################ ################################################
def _fetch_blob(self, digest, stream): def _fetch_blob(self, digest, stream):
resource_name = '/'.join(['blobs', digest.hash, str(digest.size_bytes)]) if self.instance_name:
resource_name = '/'.join([self.instance_name, 'blobs',
digest.hash, str(digest.size_bytes)])
else:
resource_name = '/'.join(['blobs',
digest.hash, str(digest.size_bytes)])
request = bytestream_pb2.ReadRequest() request = bytestream_pb2.ReadRequest()
request.resource_name = resource_name request.resource_name = resource_name
request.read_offset = 0 request.read_offset = 0
...@@ -269,8 +286,12 @@ class CASRemote(): ...@@ -269,8 +286,12 @@ class CASRemote():
assert digest.size_bytes == os.fstat(stream.fileno()).st_size assert digest.size_bytes == os.fstat(stream.fileno()).st_size
def _send_blob(self, digest, stream, u_uid=uuid.uuid4()): def _send_blob(self, digest, stream, u_uid=uuid.uuid4()):
resource_name = '/'.join(['uploads', str(u_uid), 'blobs', if self.instance_name:
digest.hash, str(digest.size_bytes)]) resource_name = '/'.join([self.instance_name, 'uploads', str(u_uid), 'blobs',
digest.hash, str(digest.size_bytes)])
else:
resource_name = '/'.join(['uploads', str(u_uid), 'blobs',
digest.hash, str(digest.size_bytes)])
def request_stream(resname, instream): def request_stream(resname, instream):
offset = 0 offset = 0
...@@ -304,6 +325,8 @@ class _CASBatchRead(): ...@@ -304,6 +325,8 @@ class _CASBatchRead():
self._remote = remote self._remote = remote
self._max_total_size_bytes = remote.max_batch_total_size_bytes self._max_total_size_bytes = remote.max_batch_total_size_bytes
self._request = remote_execution_pb2.BatchReadBlobsRequest() self._request = remote_execution_pb2.BatchReadBlobsRequest()
if remote.instance_name:
self._request.instance_name = remote.instance_name
self._size = 0 self._size = 0
self._sent = False self._sent = False
...@@ -351,6 +374,8 @@ class _CASBatchUpdate(): ...@@ -351,6 +374,8 @@ class _CASBatchUpdate():
self._remote = remote self._remote = remote
self._max_total_size_bytes = remote.max_batch_total_size_bytes self._max_total_size_bytes = remote.max_batch_total_size_bytes
self._request = remote_execution_pb2.BatchUpdateBlobsRequest() self._request = remote_execution_pb2.BatchUpdateBlobsRequest()
if remote.instance_name:
self._request.instance_name = remote.instance_name
self._size = 0 self._size = 0
self._sent = False self._sent = False
......
...@@ -243,6 +243,7 @@ using the `remote-execution` option: ...@@ -243,6 +243,7 @@ using the `remote-execution` option:
instance-name: development-emea-1 instance-name: development-emea-1
action-cache-service: action-cache-service:
url: http://bar.action.com:50052 url: http://bar.action.com:50052
instance-name: development-emea-1
storage-service specifies a remote CAS store and the parameters are the storage-service specifies a remote CAS store and the parameters are the
same as those used to specify an :ref:`artifact server <artifacts>`. same as those used to specify an :ref:`artifact server <artifacts>`.
......
...@@ -122,13 +122,14 @@ configuration will be used as fallback. ...@@ -122,13 +122,14 @@ configuration will be used as fallback.
url: http://execution.fallback.example.com:50051 url: http://execution.fallback.example.com:50051
instance-name: main instance-name: main
storage-service: storage-service:
url: https://storage.fallback.example.com:11002/ url: https://storage.fallback.example.com:11002
server-cert: /keys/server.crt server-cert: /keys/server.crt
client-cert: /keys/client.crt client-cert: /keys/client.crt
client-key: /keys/client.key client-key: /keys/client.key
instance-name: main instance-name: main
action-cache-service: action-cache-service:
url: http://action.flalback.example.com:50052 url: http://cache.flalback.example.com:50052
instance-name: main
2. Project override: 2. Project override:
...@@ -141,13 +142,14 @@ configuration will be used as fallback. ...@@ -141,13 +142,14 @@ configuration will be used as fallback.
url: http://execution.some_project.example.com:50051 url: http://execution.some_project.example.com:50051
instance-name: main instance-name: main
storage-service: storage-service:
url: https://storage.some_project.example.com:11002/ url: https://storage.some_project.example.com:11002
server-cert: /some_project_keys/server.crt server-cert: /some_project_keys/server.crt
client-cert: /some_project_keys/client.crt client-cert: /some_project_keys/client.crt
client-key: /some_project_keys/client.key client-key: /some_project_keys/client.key
instance-name: main instance-name: main
action-cache-service: action-cache-service:
url: http://action.some_project.example.com:50052 url: http://cache.some_project.example.com:50052
instance-name: main
Strict build plan Strict build plan
......