Added artifact download traffic statistics.
Signed-off-by: Kai Zimmermann <kai.zimmermann@bosch-si.com>
This commit is contained in:
@@ -65,9 +65,11 @@ public interface ControllerManagement {
|
||||
* the ID of the {@link ActionStatus}
|
||||
* @param progressPercent
|
||||
* the progress in percentage which must be between 0-100
|
||||
* @param shippedBytes
|
||||
* since last event
|
||||
*/
|
||||
@PreAuthorize(SpringEvalExpressions.IS_CONTROLLER)
|
||||
void downloadProgressPercent(long statusId, int progressPercent);
|
||||
void downloadProgressPercent(long statusId, int progressPercent, long shippedBytes);
|
||||
|
||||
/**
|
||||
* Simple addition of a new {@link ActionStatus} entry to the {@link Action}
|
||||
|
||||
@@ -63,13 +63,18 @@ public interface SystemManagement {
|
||||
/**
|
||||
* @return {@link TenantMetaData} of {@link TenantAware#getCurrentTenant()}
|
||||
*/
|
||||
// @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY +
|
||||
// SpringEvalExpressions.HAS_AUTH_OR
|
||||
// + SpringEvalExpressions.HAS_AUTH_READ_TARGET +
|
||||
// SpringEvalExpressions.HAS_AUTH_OR
|
||||
// + SpringEvalExpressions.HAS_AUTH_TENANT_CONFIGURATION)
|
||||
TenantMetaData getTenantMetadata();
|
||||
|
||||
/**
|
||||
* Returns {@link TenantMetaData} of given and current tenant. Creates for
|
||||
* new tenants also two {@link SoftwareModuleType} (os and app) and
|
||||
* {@link RepositoryConstants#DEFAULT_DS_TYPES_IN_TENANT} {@link DistributionSetType}s
|
||||
* (os and os_app).
|
||||
* {@link RepositoryConstants#DEFAULT_DS_TYPES_IN_TENANT}
|
||||
* {@link DistributionSetType}s (os and os_app).
|
||||
*
|
||||
* DISCLAIMER: this variant is used during initial login (where the tenant
|
||||
* is not yet in the session). Please user {@link #getTenantMetadata()} for
|
||||
@@ -79,6 +84,7 @@ public interface SystemManagement {
|
||||
* to retrieve data for
|
||||
* @return {@link TenantMetaData} of given tenant
|
||||
*/
|
||||
// @PreAuthorize(SpringEvalExpressions.IS_SYSTEM_CODE)
|
||||
TenantMetaData getTenantMetadata(@NotNull String tenant);
|
||||
|
||||
/**
|
||||
@@ -88,6 +94,7 @@ public interface SystemManagement {
|
||||
* to update
|
||||
* @return updated {@link TenantMetaData} entity
|
||||
*/
|
||||
// @PreAuthorize(SpringEvalExpressions.HAS_AUTH_TENANT_CONFIGURATION)
|
||||
TenantMetaData updateTenantMetadata(@NotNull TenantMetaData metaData);
|
||||
|
||||
}
|
||||
@@ -16,19 +16,23 @@ import org.springframework.security.access.prepost.PreAuthorize;
|
||||
* Management service for statistics of a single tenant.
|
||||
*
|
||||
*/
|
||||
@FunctionalInterface
|
||||
public interface TenantStatsManagement {
|
||||
|
||||
/**
|
||||
* Service for stats of a single tenant. Opens a new transaction and as a
|
||||
* result can an be used for multiple tenants, i.e. to allow in one session
|
||||
* to collect data of all tenants in the system.
|
||||
* Service for stats of a single tenant.
|
||||
*
|
||||
* @param tenant
|
||||
* to collect for
|
||||
* @return collected statistics
|
||||
*/
|
||||
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_SYSTEM_ADMIN)
|
||||
TenantUsage getStatsOfTenant(String tenant);
|
||||
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY + SpringEvalExpressions.HAS_AUTH_OR
|
||||
+ SpringEvalExpressions.HAS_AUTH_READ_TARGET + SpringEvalExpressions.HAS_AUTH_OR
|
||||
+ SpringEvalExpressions.HAS_AUTH_TENANT_CONFIGURATION)
|
||||
TenantUsage getStatsOfTenant();
|
||||
|
||||
/**
|
||||
* Resets {@link TenantUsage#getOverallArtifactTrafficInBytes()} to zero.
|
||||
*
|
||||
*/
|
||||
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_TENANT_CONFIGURATION)
|
||||
void resetTrafficStatsOfTenant();
|
||||
|
||||
}
|
||||
@@ -19,6 +19,7 @@ public class TenantUsage {
|
||||
private long artifacts;
|
||||
private long actions;
|
||||
private long overallArtifactVolumeInBytes;
|
||||
private long overallArtifactTrafficInBytes;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
@@ -105,12 +106,28 @@ public class TenantUsage {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the overallArtifactTrafficInBytes
|
||||
*/
|
||||
public long getOverallArtifactTrafficInBytes() {
|
||||
return overallArtifactTrafficInBytes;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param overallArtifactTrafficInBytes
|
||||
* the overallArtifactTrafficInBytes to set
|
||||
*/
|
||||
public void setOverallArtifactTrafficInBytes(final long overallArtifactTrafficInBytes) {
|
||||
this.overallArtifactTrafficInBytes = overallArtifactTrafficInBytes;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() { // NOSONAR - as this is generated code
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + (int) (actions ^ (actions >>> 32));
|
||||
result = prime * result + (int) (artifacts ^ (artifacts >>> 32));
|
||||
result = prime * result + (int) (overallArtifactTrafficInBytes ^ (overallArtifactTrafficInBytes >>> 32));
|
||||
result = prime * result + (int) (overallArtifactVolumeInBytes ^ (overallArtifactVolumeInBytes >>> 32));
|
||||
result = prime * result + (int) (targets ^ (targets >>> 32));
|
||||
result = prime * result + ((tenantName == null) ? 0 : tenantName.hashCode());
|
||||
@@ -118,8 +135,7 @@ public class TenantUsage {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(final Object obj) { // NOSONAR - as this is generated
|
||||
// code
|
||||
public boolean equals(final Object obj) {
|
||||
if (this == obj) {
|
||||
return true;
|
||||
}
|
||||
@@ -136,6 +152,9 @@ public class TenantUsage {
|
||||
if (artifacts != other.artifacts) {
|
||||
return false;
|
||||
}
|
||||
if (overallArtifactTrafficInBytes != other.overallArtifactTrafficInBytes) {
|
||||
return false;
|
||||
}
|
||||
if (overallArtifactVolumeInBytes != other.overallArtifactVolumeInBytes) {
|
||||
return false;
|
||||
}
|
||||
@@ -154,8 +173,9 @@ public class TenantUsage {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "SystemUsage [tenantName=" + tenantName + ", targets=" + targets + ", artifacts=" + artifacts
|
||||
+ ", actions=" + actions + ", overallArtifactVolumeInBytes=" + overallArtifactVolumeInBytes + "]";
|
||||
return "TenantUsage [tenantName=" + tenantName + ", targets=" + targets + ", artifacts=" + artifacts
|
||||
+ ", actions=" + actions + ", overallArtifactVolumeInBytes=" + overallArtifactVolumeInBytes
|
||||
+ ", overallArtifactTrafficInBytes=" + overallArtifactTrafficInBytes + "]";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user