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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,6 @@ target/

# VS Code Files #
.vscode

.flattened-pom.xml
.idea/*
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import io.cloudbeat.common.client.CbClientException;
import io.cloudbeat.common.client.RetrofitApiBase;
import io.cloudbeat.common.client.dto.CaseStatusInfoDto;
import io.cloudbeat.common.client.dto.LoadTestMetricsUpdateRequest;
import io.cloudbeat.common.client.dto.TestStatusRequest;
import io.cloudbeat.common.model.runtime.NewInstanceOptions;
import io.cloudbeat.common.model.runtime.NewRunOptions;
Expand All @@ -20,7 +21,13 @@ public class GatewayApi extends RetrofitApiBase {
public GatewayApi(GatewayApiRetro retroApi) {
this.retroApi = retroApi;
}

public void updateLoadTestMetrics(
String runId,
String instanceId,
LoadTestMetricsUpdateRequest request
) throws CbClientException {
executeAsync(retroApi.updateLoadTestMetrics(runId, instanceId, request));
}
public void updateTestCaseStatus(
String runId,
String instanceId,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
package io.cloudbeat.common.client.api;

import io.cloudbeat.common.client.CbApiResponse;
import io.cloudbeat.common.client.dto.LoadTestMetricsUpdateRequest;
import io.cloudbeat.common.client.dto.TestStatusRequest;
import io.cloudbeat.common.model.runtime.NewInstanceOptions;
import io.cloudbeat.common.model.runtime.NewRunOptions;
import io.cloudbeat.common.reporter.model.RunStatus;
import io.cloudbeat.common.reporter.model.TestResult;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;

public interface GatewayApiRetro {
@POST("testresult/Status")
Call<Void> updateTestCaseStatus(@Body TestStatusRequest statusRequest);
@POST("testresult/load/run/{runId}/instance/{instanceId}/metrics")
Call<Void> updateLoadTestMetrics(@Path("runId") String runId, @Path("instanceId") String instanceId, @Body LoadTestMetricsUpdateRequest request);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import io.cloudbeat.common.client.CbClientException;
import io.cloudbeat.common.client.RetrofitApiBase;
import io.cloudbeat.common.client.dto.CaseStatusInfoDto;
import io.cloudbeat.common.client.dto.LoadTestMetricsUpdateRequest;
import io.cloudbeat.common.client.dto.TestStatusRequest;
import io.cloudbeat.common.model.runtime.NewInstanceOptions;
import io.cloudbeat.common.model.runtime.NewRunOptions;
Expand Down Expand Up @@ -34,6 +35,13 @@ public void updateRunStatus(String runId, RunStatus status) throws CbClientExcep
public void updateInstanceStatus(String runId, String instanceId, RunStatus status) throws CbClientException {
execute(retroApi.updateInstanceStatus(runId, instanceId, status));
}
public void updateLoadTestMetrics(
String runId,
String instanceId,
LoadTestMetricsUpdateRequest request
) throws CbClientException {
executeAsync(retroApi.updateLoadTestMetrics(runId, instanceId, request));
}
public void updateTestCaseStatus(
String runId,
String instanceId,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package io.cloudbeat.common.client.api;

import io.cloudbeat.common.client.CbApiResponse;
import io.cloudbeat.common.client.dto.CaseMetricsUpdateDto;
import io.cloudbeat.common.client.dto.LoadTestMetricsUpdateRequest;
import io.cloudbeat.common.client.dto.TestStatusRequest;
import io.cloudbeat.common.model.runtime.NewInstanceOptions;
import io.cloudbeat.common.model.runtime.NewRunOptions;
Expand All @@ -25,6 +27,8 @@ public interface RuntimeApiRetro {
Call<Void> updateInstanceStatus(@Path("runId") String runId, @Path("instanceId") String instanceId, @Body RunStatus status);
@POST("api/run/{runId}/instance/{instanceId}/case")
Call<Void> updateTestCaseStatus(@Path("runId") String runId, @Path("instanceId") String instanceId, @Body TestStatusRequest status);
@POST("load/api/run/{runId}/instance/{instanceId}/metrics")
Call<Void> updateLoadTestMetrics(@Path("runId") String runId, @Path("instanceId") String instanceId, @Body LoadTestMetricsUpdateRequest request);
@POST("api/run/{runId}/instance/{instanceId}/end")
Call<Void> endInstance(@Path("runId") String runId, @Path("instanceId") String instanceId);
@PUT("runs/api/run/{runId}/instance/{instanceId}/result")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
package io.cloudbeat.common.client.dto;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.cloudbeat.common.reporter.model.StepType;
import io.cloudbeat.common.reporter.model.extra.IStepExtra;
import io.cloudbeat.common.reporter.serializer.EpochTimeSerializer;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class CaseMetricsUpdateDto {
@JsonSerialize(using = EpochTimeSerializer.class)
long timestamp;
String name;
String fqn;
final Map<String, Number> metrics = new HashMap<>();
final ArrayList<StepMetricsUpdateDto> stepList = new ArrayList<>();

public long getTimestamp() {
return timestamp;
}

public void setTimestamp(long timestamp) {
this.timestamp = timestamp;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getFqn() {
return fqn;
}

public void setFqn(String fqn) {
this.fqn = fqn;
}

public Map<String, Number> getMetrics() {
return metrics;
}

public ArrayList<StepMetricsUpdateDto> getStepList() {
return stepList;
}

public static class StepMetricsUpdateDto {
String name;
String fqn;
StepType type;
final Map<String, Number> metrics = new HashMap<>();
final Map<String, IStepExtra> extra = new HashMap<>();
final ArrayList<StepMetricsUpdateDto> stepList = new ArrayList<>();

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getFqn() {
return fqn;
}

public void setFqn(String fqn) {
this.fqn = fqn;
}

public void setType(StepType type) {
this.type = type;
}

public StepType getType() {
return type;
}

public Map<String, Number> getMetrics() {
return metrics;
}

public Map<String, IStepExtra> getExtra() {
return extra;
}

public ArrayList<StepMetricsUpdateDto> getStepList() {
return stepList;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package io.cloudbeat.common.client.dto;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.cloudbeat.common.reporter.serializer.EpochTimeSerializer;

import javax.annotation.Nonnull;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class LoadTestMetricsUpdateRequest {
@Nonnull
String runId;
@Nonnull
String instanceId;
@Nonnull
@JsonSerialize(using = EpochTimeSerializer.class)
long timestamp;
@Nonnull
final ArrayList<CaseMetricsUpdateDto> caseList = new ArrayList<>();

@Nonnull
final Map<String, Number> metrics = new HashMap<>();

public ArrayList<CaseMetricsUpdateDto> getCaseList() {
return caseList;
}

public Map<String, Number> getMetrics() {
return metrics;
}

public String getRunId() {
return runId;
}

public String getInstanceId() {
return instanceId;
}

public long getTimestamp() {
return timestamp;
}

public void setRunId(@Nonnull String runId) {
this.runId = runId;
}

public void setInstanceId(@Nonnull String instanceId) {
this.instanceId = instanceId;
}

public void setTimestamp(long timestamp) {
this.timestamp = timestamp;
}

public void addCaseMetrics(CaseMetricsUpdateDto caseMetrics) {
caseList.add(caseMetrics);
}
}
Loading