Skip to content

Commit 3ae1f5e

Browse files
committed
Create NOOP graffiti manager
1 parent 40a1beb commit 3ae1f5e

File tree

5 files changed

+52
-13
lines changed

5 files changed

+52
-13
lines changed

Diff for: teku/src/main/java/tech/pegasys/teku/cli/subcommand/debug/DebugToolsCommand.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@
4141
import tech.pegasys.teku.spec.SpecFactory;
4242
import tech.pegasys.teku.spec.datastructures.state.CommitteeAssignment;
4343
import tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState;
44-
import tech.pegasys.teku.validator.api.GraffitiManager;
4544
import tech.pegasys.teku.validator.api.ValidatorApiChannel;
45+
import tech.pegasys.teku.validator.api.noop.NoOpGraffitiManager;
4646
import tech.pegasys.teku.validator.beaconnode.GenesisDataProvider;
4747
import tech.pegasys.teku.validator.client.KeyManager;
4848
import tech.pegasys.teku.validator.client.NoOpKeyManager;
@@ -167,7 +167,7 @@ public int generateSwaggerDocs(
167167
new SystemTimeProvider(),
168168
Optional.empty(),
169169
new DoppelgangerDetectionAlert(),
170-
new GraffitiManager(dataDirLayout));
170+
new NoOpGraffitiManager());
171171

172172
if (api.getRestApiDocs().isPresent()) {
173173
final String docs = api.getRestApiDocs().get();

Diff for: validator/api/src/main/java/tech/pegasys/teku/validator/api/GraffitiManager.java

+6-8
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,20 @@
2626
import tech.pegasys.teku.service.serviceutils.layout.DataDirLayout;
2727

2828
public class GraffitiManager {
29+
private static final Logger LOG = LogManager.getLogger();
2930
static final String GRAFFITI_DIR = "graffiti";
3031

31-
private static final Logger LOG = LogManager.getLogger();
3232
private final Path graffitiPath;
3333

3434
public GraffitiManager(final DataDirLayout dataDirLayout) {
35-
this.graffitiPath = createManagementDirectory(dataDirLayout);
35+
this(dataDirLayout.getValidatorDataDirectory().resolve(GRAFFITI_DIR));
3636
}
3737

38-
private Path createManagementDirectory(final DataDirLayout dataDirLayout) {
39-
final Path graffitiDirectory = dataDirLayout.getValidatorDataDirectory().resolve(GRAFFITI_DIR);
40-
if (!graffitiDirectory.toFile().exists() && !graffitiDirectory.toFile().mkdirs()) {
41-
throw new IllegalStateException(
42-
"Unable to create " + GRAFFITI_DIR + " directory for graffiti management.");
38+
public GraffitiManager(final Path graffitiPath) {
39+
this.graffitiPath = graffitiPath;
40+
if (!graffitiPath.toFile().exists() && !graffitiPath.toFile().mkdirs()) {
41+
throw new IllegalStateException("Unable to create directory for graffiti management.");
4342
}
44-
return graffitiDirectory;
4543
}
4644

4745
public Optional<String> setGraffiti(final BLSPublicKey publicKey, final String graffiti) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
* Copyright Consensys Software Inc., 2024
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
5+
* the License. You may obtain a copy of the License at
6+
*
7+
* http://www.apache.org/licenses/LICENSE-2.0
8+
*
9+
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
10+
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
11+
* specific language governing permissions and limitations under the License.
12+
*/
13+
14+
package tech.pegasys.teku.validator.api.noop;
15+
16+
import java.nio.file.Path;
17+
import java.util.Optional;
18+
import org.apache.tuweni.bytes.Bytes32;
19+
import tech.pegasys.teku.bls.BLSPublicKey;
20+
import tech.pegasys.teku.validator.api.GraffitiManager;
21+
22+
public class NoOpGraffitiManager extends GraffitiManager {
23+
public NoOpGraffitiManager() {
24+
super(Path.of("."));
25+
}
26+
27+
@Override
28+
public Optional<String> setGraffiti(final BLSPublicKey publicKey, final String graffiti) {
29+
return Optional.empty();
30+
}
31+
32+
@Override
33+
public Optional<String> deleteGraffiti(final BLSPublicKey publicKey) {
34+
return Optional.empty();
35+
}
36+
37+
@Override
38+
public Optional<Bytes32> getGraffiti(final BLSPublicKey publicKey) {
39+
return Optional.empty();
40+
}
41+
}

Diff for: validator/api/src/test/java/tech/pegasys/teku/validator/api/GraffitiManagerTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ void shouldThrowExceptionWhenUnableToCreateManagementDirectory(@TempDir final Pa
5050

5151
assertThatThrownBy(() -> new GraffitiManager(dataDirLayout))
5252
.isInstanceOf(IllegalStateException.class)
53-
.hasMessage("Unable to create graffiti directory for graffiti management.");
53+
.hasMessage("Unable to create directory for graffiti management.");
5454
}
5555

5656
@Test

Diff for: validator/client/src/test/java/tech/pegasys/teku/validator/client/restapi/ValidatorOpenApiTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
import tech.pegasys.teku.service.serviceutils.layout.DataDirLayout;
3232
import tech.pegasys.teku.spec.Spec;
3333
import tech.pegasys.teku.spec.SpecFactory;
34-
import tech.pegasys.teku.validator.api.GraffitiManager;
3534
import tech.pegasys.teku.validator.api.ValidatorApiChannel;
35+
import tech.pegasys.teku.validator.api.noop.NoOpGraffitiManager;
3636
import tech.pegasys.teku.validator.beaconnode.GenesisDataProvider;
3737
import tech.pegasys.teku.validator.client.OwnedKeyManager;
3838
import tech.pegasys.teku.validator.client.ProposerConfigManager;
@@ -71,7 +71,7 @@ void setup() throws IOException {
7171
new SystemTimeProvider(),
7272
Optional.empty(),
7373
doppelgangerDetectionAction,
74-
new GraffitiManager(dataDirLayout));
74+
new NoOpGraffitiManager());
7575
final Optional<String> maybeJson = restApi.getRestApiDocs();
7676
assertThat(maybeJson).isPresent();
7777
jsonNode = util.parseSwagger(maybeJson.orElseThrow());

0 commit comments

Comments
 (0)