Raoul Hidalgo Charman pushed to branch raoul/802-refactor-artifactcache at BuildStream / buildstream
Commits:
-
a7f0178a
by Raoul Hidalgo Charman at 2018-12-11T13:35:54Z
4 changed files:
- buildstream/_artifactcache.py
- buildstream/_cas/cascache.py
- buildstream/_cas/casremote.py
- buildstream/sandbox/_sandboxremote.py
Changes:
... | ... | @@ -733,7 +733,7 @@ class ArtifactCache(): |
733 | 733 |
"servers are configured as push remotes.")
|
734 | 734 |
|
735 | 735 |
for remote in push_remotes:
|
736 |
- message_digest = self.cas.push_message(remote, message)
|
|
736 |
+ message_digest = remote.push_message(message)
|
|
737 | 737 |
|
738 | 738 |
return message_digest
|
739 | 739 |
|
... | ... | @@ -19,7 +19,6 @@ |
19 | 19 |
|
20 | 20 |
import hashlib
|
21 | 21 |
import itertools
|
22 |
-import io
|
|
23 | 22 |
import os
|
24 | 23 |
import stat
|
25 | 24 |
import tempfile
|
... | ... | @@ -331,29 +330,6 @@ class CASCache(): |
331 | 330 |
|
332 | 331 |
self._send_directory(remote, directory.ref)
|
333 | 332 |
|
334 |
- # push_message():
|
|
335 |
- #
|
|
336 |
- # Push the given protobuf message to a remote.
|
|
337 |
- #
|
|
338 |
- # Args:
|
|
339 |
- # remote (CASRemote): The remote to push to
|
|
340 |
- # message (Message): A protobuf message to push.
|
|
341 |
- #
|
|
342 |
- # Raises:
|
|
343 |
- # (CASError): if there was an error
|
|
344 |
- #
|
|
345 |
- def push_message(self, remote, message):
|
|
346 |
- |
|
347 |
- message_buffer = message.SerializeToString()
|
|
348 |
- message_digest = utils._message_digest(message_buffer)
|
|
349 |
- |
|
350 |
- remote.init()
|
|
351 |
- |
|
352 |
- with io.BytesIO(message_buffer) as b:
|
|
353 |
- remote._send_blob(message_digest, b)
|
|
354 |
- |
|
355 |
- return message_digest
|
|
356 |
- |
|
357 | 333 |
# objpath():
|
358 | 334 |
#
|
359 | 335 |
# Return the path of an object based on its digest.
|
1 | 1 |
from collections import namedtuple
|
2 |
+import io
|
|
2 | 3 |
import os
|
3 | 4 |
import multiprocessing
|
4 | 5 |
import signal
|
... | ... | @@ -229,6 +230,28 @@ class CASRemote(): |
229 | 230 |
|
230 | 231 |
return True
|
231 | 232 |
|
233 |
+ # push_message():
|
|
234 |
+ #
|
|
235 |
+ # Push the given protobuf message to a remote.
|
|
236 |
+ #
|
|
237 |
+ # Args:
|
|
238 |
+ # message (Message): A protobuf message to push.
|
|
239 |
+ #
|
|
240 |
+ # Raises:
|
|
241 |
+ # (CASError): if there was an error
|
|
242 |
+ #
|
|
243 |
+ def push_message(self, message):
|
|
244 |
+ |
|
245 |
+ message_buffer = message.SerializeToString()
|
|
246 |
+ message_digest = utils._message_digest(message_buffer)
|
|
247 |
+ |
|
248 |
+ self.init()
|
|
249 |
+ |
|
250 |
+ with io.BytesIO(message_buffer) as b:
|
|
251 |
+ self._send_blob(message_digest, b)
|
|
252 |
+ |
|
253 |
+ return message_digest
|
|
254 |
+ |
|
232 | 255 |
################################################
|
233 | 256 |
# Local Private Methods #
|
234 | 257 |
################################################
|
... | ... | @@ -310,12 +310,12 @@ class SandboxRemote(Sandbox): |
310 | 310 |
|
311 | 311 |
# Push command and action
|
312 | 312 |
try:
|
313 |
- cascache.push_message(casremote, command_proto)
|
|
313 |
+ casremote.push_message(command_proto)
|
|
314 | 314 |
except grpc.RpcError as e:
|
315 | 315 |
raise SandboxError("Failed to push command to remote: {}".format(e))
|
316 | 316 |
|
317 | 317 |
try:
|
318 |
- cascache.push_message(casremote, action)
|
|
318 |
+ casremote.push_message(action)
|
|
319 | 319 |
except grpc.RpcError as e:
|
320 | 320 |
raise SandboxError("Failed to push action to remote: {}".format(e))
|
321 | 321 |
|