Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions compose/cryostat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ services:
QUARKUS_HTTP_PORT: ${CRYOSTAT_HTTP_PORT}
QUARKUS_HIBERNATE_ORM_LOG_SQL: "true"
STORAGE_METADATA_STORAGE_MODE: ${CRYOSTAT_STORAGE_MODE:-tagging}
STORAGE_BUCKETS_METADATA_NAME: ${CRYOSTAT_METADATA_BUCKET_NAME:-cryostatmeta}
CRYOSTAT_DISCOVERY_JDP_ENABLED: ${CRYOSTAT_DISCOVERY_JDP_ENABLED:-true}
CRYOSTAT_DISCOVERY_PODMAN_ENABLED: ${CRYOSTAT_DISCOVERY_PODMAN_ENABLED:-true}
CRYOSTAT_DISCOVERY_DOCKER_ENABLED: ${CRYOSTAT_DISCOVERY_DOCKER_ENABLED:-true}
Expand Down
1 change: 0 additions & 1 deletion compose/jfr-datasource.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ services:
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.local.only=false
CRYOSTAT_STORAGE_BASE_URI: http://s3:8333
healthcheck:
test: curl --fail http://localhost:8080/ || exit 1
retries: 3
Expand Down
1 change: 0 additions & 1 deletion compose/reports.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ services:
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.local.only=false
QUARKUS_HTTP_PORT: 10001
CRYOSTAT_STORAGE_BASE_URI: http://s3:8333
healthcheck:
test: curl --fail http://localhost:10001/ || exit 1
retries: 3
Expand Down
3 changes: 1 addition & 2 deletions compose/s3-ext.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@ services:
# before running the smoketest.bash script. The region should be overridden to match the
# endpoint, if necessary. The storage mode should be changed if the selected object storage
# provider does not support the object Tag API.
CRYOSTAT_ARCHIVED_RECORDINGS_METADATA_STORAGE_MODE: ${METADATA_STORAGE_MODE:-tagging}
QUARKUS_S3_ENDPOINT_OVERRIDE: ${S3_ENDPOINT}
# STORAGE_EXT_URL: /storage/
QUARKUS_S3_PATH_STYLE_ACCESS: "false"
QUARKUS_S3_PATH_STYLE_ACCESS: ${S3_PATH_STYLE_ACCESS:-false}
QUARKUS_S3_AWS_REGION: ${S3_REGION:-us-east-1}
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
Expand Down
2 changes: 1 addition & 1 deletion smoketest.bash
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ PULL_IMAGES=${PULL_IMAGES:-true}
KEEP_VOLUMES=${KEEP_VOLUMES:-false}
OPEN_TABS=${OPEN_TABS:-false}

PRECREATE_BUCKETS=${PRECREATE_BUCKETS:-archivedrecordings,archivedreports,eventtemplates,probes,threaddumps,heapdumps}
PRECREATE_BUCKETS=${PRECREATE_BUCKETS:-metadata,archivedrecordings,archivedreports,eventtemplates,probes,threaddumps,heapdumps}

LOG_LEVEL=0
CRYOSTAT_HTTP_HOST=${CRYOSTAT_HTTP_HOST:-cryostat}
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/io/cryostat/events/S3TemplateService.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.nio.file.Path;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
Expand Down Expand Up @@ -249,7 +250,7 @@ private Template convertObject(S3Object object)
break;
case METADATA:
var headReq = HeadObjectRequest.builder().bucket(bucket).key(object.key()).build();
var meta = storage.headObject(headReq).metadata();
var meta = new HashMap<>(storage.headObject(headReq).metadata());
label = Objects.requireNonNull(meta.get(META_KEY_NAME));
description = Objects.requireNonNull(meta.get(META_KEY_DESCRIPTION));
provider = Objects.requireNonNull(meta.get(META_KEY_PROVIDER));
Expand Down
8 changes: 3 additions & 5 deletions src/main/java/io/cryostat/recordings/RecordingHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -1039,7 +1039,7 @@ public Optional<Metadata> getArchivedRecordingMetadata(String storageKey) {
if (!resp.hasMetadata()) {
return Optional.empty();
}
return Optional.of(new Metadata(resp.metadata()));
return Optional.of(new Metadata(new HashMap<>(resp.metadata())));
case BUCKET:
return metadataService.get().read(storageKey);
default:
Expand Down Expand Up @@ -1486,7 +1486,7 @@ private Uni<String> uploadPresignedToJFRDatasource(String jvmId, String filename
throws URISyntaxException {
var uri = getPresignedPath(jvmId, filename);
return datasourceClient
.uploadPresigned(uri.getPath(), uri.getQuery())
.uploadPresigned(uri.toString())
.onItem()
.transform(
r -> {
Expand Down Expand Up @@ -1640,8 +1640,6 @@ Uni<Response> upload(
@POST
@jakarta.ws.rs.Path("/load_presigned")
@Consumes(MediaType.MULTIPART_FORM_DATA)
Uni<Response> uploadPresigned(
@RestForm("path") @PartType(MediaType.TEXT_PLAIN) String path,
@RestForm("query") @PartType(MediaType.TEXT_PLAIN) String query);
Uni<Response> uploadPresigned(@RestForm("uri") @PartType(MediaType.TEXT_PLAIN) String uri);
}
}
3 changes: 1 addition & 2 deletions src/main/java/io/cryostat/reports/ReportSidecarService.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ Uni<Map<String, AnalysisResult>> generate(
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
Uni<Map<String, AnalysisResult>> generatePresigned(
@RestForm("path") @PartType(MediaType.TEXT_PLAIN) String path,
@RestForm("query") @PartType(MediaType.TEXT_PLAIN) String query,
@RestForm("uri") @PartType(MediaType.TEXT_PLAIN) String uri,
@RestForm("filter") @PartType(MediaType.TEXT_PLAIN) String filter);
}
2 changes: 1 addition & 1 deletion src/main/java/io/cryostat/reports/ReportsServiceImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ public Uni<Map<String, AnalysisResult>> reportFor(
logger.tracev(
"sidecar reportFor presigned archived recording {0} {1}", jvmId, filename);
var uri = getPresignedPath(jvmId, filename);
return sidecar.generatePresigned(uri.getPath(), uri.getQuery(), filter);
return sidecar.generatePresigned(uri.toString(), filter);
} else {
InputStream stream = helper.getArchivedRecordingStream(jvmId, filename);
logger.tracev("sidecar reportFor archived recording {0} {1}", jvmId, filename);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,7 @@ public class ReportsSidecarResource
private static final int REPORTS_PORT = 10001;
private static final String IMAGE_NAME = "quay.io/cryostat/cryostat-reports:latest";
private static final Map<String, String> envMap =
Map.of(
"QUARKUS_HTTP_PORT", String.valueOf(REPORTS_PORT),
// TODO localhost:8333 should be dynamically set to the host and port of the
// S3StorageResource
"CRYOSTAT_STORAGE_BASE_URI", String.format("http://%s:%d", "localhost", 8333));
Map.of("QUARKUS_HTTP_PORT", String.valueOf(REPORTS_PORT));

private Optional<String> containerNetworkId;
private GenericContainer<?> container;
Expand Down
Loading