34
34
import com .google .devtools .build .lib .actions .Artifact .TreeFileArtifact ;
35
35
import com .google .devtools .build .lib .actions .FileArtifactValue ;
36
36
import com .google .devtools .build .lib .actions .FileArtifactValue .RemoteFileArtifactValue ;
37
+ import com .google .devtools .build .lib .actions .FileStatusWithMetadata ;
37
38
import com .google .devtools .build .lib .actions .InputMetadataProvider ;
38
- import com .google .devtools .build .lib .actions .RemoteFileStatus ;
39
39
import com .google .devtools .build .lib .actions .cache .MetadataInjector ;
40
40
import com .google .devtools .build .lib .clock .Clock ;
41
41
import com .google .devtools .build .lib .skyframe .TreeArtifactValue ;
@@ -247,14 +247,6 @@ private void maybeInjectMetadataForSymlinkOrDownload(PathFragment linkPath, Arti
247
247
}
248
248
}
249
249
250
- private RemoteFileArtifactValue createRemoteMetadata (RemoteFileInfo remoteFile ) {
251
- return RemoteFileArtifactValue .create (
252
- remoteFile .getFastDigest (),
253
- remoteFile .getSize (),
254
- /* locationIndex= */ 1 ,
255
- remoteFile .getExpireAtEpochMilli ());
256
- }
257
-
258
250
@ Override
259
251
public String getFileSystemType (PathFragment path ) {
260
252
return "remoteActionFS" ;
@@ -520,7 +512,7 @@ protected FileStatus stat(PathFragment path, boolean followSymlinks) throws IOEx
520
512
}
521
513
522
514
private static FileStatus statFromRemoteMetadata (RemoteFileArtifactValue m ) {
523
- return new RemoteFileStatus () {
515
+ return new FileStatusWithMetadata () {
524
516
@ Override
525
517
public byte [] getDigest () {
526
518
return m .getDigest ();
@@ -567,7 +559,7 @@ public long getNodeId() {
567
559
}
568
560
569
561
@ Override
570
- public RemoteFileArtifactValue getRemoteMetadata () {
562
+ public RemoteFileArtifactValue getMetadata () {
571
563
return m ;
572
564
}
573
565
};
@@ -596,7 +588,7 @@ public FileArtifactValue getOutputMetadataForTopLevelArtifactDownloader(ActionIn
596
588
remoteOutputTree .getRemoteFileInfo (
597
589
execRoot .getRelative (input .getExecPath ()), /* followSymlinks= */ true );
598
590
if (remoteFile != null ) {
599
- return createRemoteMetadata ( remoteFile );
591
+ return remoteFile . getMetadata ( );
600
592
}
601
593
602
594
// TODO(tjgq): This should not work.
@@ -627,7 +619,7 @@ private FileArtifactValue getMetadataByExecPath(PathFragment execPath) {
627
619
remoteOutputTree .getRemoteFileInfo (
628
620
execRoot .getRelative (execPath ), /* followSymlinks= */ true );
629
621
if (remoteFile != null ) {
630
- return createRemoteMetadata ( remoteFile );
622
+ return remoteFile . getMetadata ( );
631
623
}
632
624
633
625
return null ;
@@ -846,7 +838,10 @@ void injectRemoteFile(PathFragment path, byte[] digest, long size, long expireAt
846
838
}
847
839
848
840
RemoteFileInfo remoteFileInfo = (RemoteFileInfo ) node ;
849
- remoteFileInfo .set (digest , size , expireAtEpochMilli );
841
+
842
+ var metadata =
843
+ RemoteFileArtifactValue .create (digest , size , /* locationIndex= */ 1 , expireAtEpochMilli );
844
+ remoteFileInfo .set (metadata );
850
845
}
851
846
852
847
@ Nullable
@@ -859,21 +854,15 @@ RemoteFileInfo getRemoteFileInfo(PathFragment path, boolean followSymlinks) {
859
854
}
860
855
}
861
856
862
- static class RemoteFileInfo extends FileInfo {
863
-
864
- private byte [] digest ;
865
- private long size ;
866
-
867
- private long expireAtEpochMilli ;
857
+ static class RemoteFileInfo extends FileInfo implements FileStatusWithMetadata {
858
+ private RemoteFileArtifactValue metadata ;
868
859
869
860
RemoteFileInfo (Clock clock ) {
870
861
super (clock );
871
862
}
872
863
873
- private void set (byte [] digest , long size , long expireAtEpochMilli ) {
874
- this .digest = digest ;
875
- this .size = size ;
876
- this .expireAtEpochMilli = expireAtEpochMilli ;
864
+ private void set (RemoteFileArtifactValue metadata ) {
865
+ this .metadata = metadata ;
877
866
}
878
867
879
868
@ Override
@@ -893,16 +882,26 @@ public byte[] getxattr(String name) throws IOException {
893
882
894
883
@ Override
895
884
public byte [] getFastDigest () {
896
- return digest ;
885
+ return metadata .getDigest ();
886
+ }
887
+
888
+ @ Override
889
+ public byte [] getDigest () throws IOException {
890
+ return metadata .getDigest ();
897
891
}
898
892
899
893
@ Override
900
894
public long getSize () {
901
- return size ;
895
+ return metadata . getSize () ;
902
896
}
903
897
904
898
public long getExpireAtEpochMilli () {
905
- return expireAtEpochMilli ;
899
+ return metadata .getExpireAtEpochMilli ();
900
+ }
901
+
902
+ @ Override
903
+ public RemoteFileArtifactValue getMetadata () {
904
+ return metadata ;
906
905
}
907
906
}
908
907
}
0 commit comments