Skip to content

Commit

Permalink
refactor(vrli): restructured code (vmware#599)
Browse files Browse the repository at this point in the history
* refactor(vrli): restructured code
Signed-off-by: Stefan Genov <[email protected]>

* style(lint): fixed reported errors
Signed-off-by: Stefan Genov <[email protected]>

Signed-off-by: Stefan Genov <[email protected]>

* style(lint): Declared class as final
Signed-off-by: Stefan Genov <[email protected]>

* fix: Missing import
Signed-off-by: Stefan Genov <[email protected]>

* refactor(vro): Restructure
Signed-off-by: Stefan Genov <[email protected]>

* refactor(VroWorkflowExecutor): Moved to aria.orchestrator folder
Signed-off-by: Stefan Genov <[email protected]>

* refactor(vcd): Restructuring
Signed-off-by: Stefan Genov <[email protected]>

* refactor(vcd): Restructuring
Signed-off-by: Stefan Genov <[email protected]>

* style(lint): Lint errors
Signed-off-by: Stefan Genov <[email protected]>

* style(lint): Declared 2 classes as final. Added RELEASE notes
Signed-off-by: Stefan Genov <[email protected]>

---------

Signed-off-by: Stefan Genov <[email protected]>
  • Loading branch information
Michaelpalacce authored Jan 21, 2025
1 parent c64f742 commit 2bd7e85
Show file tree
Hide file tree
Showing 65 changed files with 640 additions and 431 deletions.
2 changes: 1 addition & 1 deletion .github/linters/sun_checks.xml
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ https://www.oracle.com/java/technologies/javase/codeconventions-contents.html
<module name="EqualsHashCode" />
<module name="IllegalInstantiation" />
<module name="InnerAssignment" />
<module name="MagicNumber" />
<!-- <module name="MagicNumber" /> -->
<module name="MissingSwitchDefault" />
<module name="MultipleVariableDeclarations" />
<module name="SimplifyBooleanExpression" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ The structure of this folder is being reworked. Classes are being moved based on
## Progress

- [x] Aria Automation
- [ ] Aria Orchestrator
- [ ] Aria Logs
- [x] Aria Orchestrator
- [x] Aria Logs
- [x] Aria Operations
- [ ] SSH
- [ ] vCD
- [x] vCD
- [ ] CS
- [ ] ABX
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,23 @@

import com.vmware.pscoe.iac.artifact.configuration.*;
import com.vmware.pscoe.iac.artifact.rest.*;
import com.vmware.pscoe.iac.artifact.rest.client.vrli.RestClientVrliV1;
import com.vmware.pscoe.iac.artifact.rest.client.vrli.RestClientVrliV2;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.vmware.pscoe.iac.artifact.aria.automation.rest.RestClientVraNg;
import com.vmware.pscoe.iac.artifact.aria.logs.configuration.ConfigurationVrli;
import com.vmware.pscoe.iac.artifact.aria.logs.rest.v1.RestClientVrliV1;
import com.vmware.pscoe.iac.artifact.aria.logs.rest.v2.RestClientVrliV2;
import com.vmware.pscoe.iac.artifact.aria.logs.store.v1.VrliPackageStoreV1;
import com.vmware.pscoe.iac.artifact.aria.logs.store.v2.VrliPackageStoreV2;
import com.vmware.pscoe.iac.artifact.aria.operations.configuration.ConfigurationVrops;
import com.vmware.pscoe.iac.artifact.aria.operations.rest.RestClientVrops;
import com.vmware.pscoe.iac.artifact.aria.operations.store.VropsPackageStore;
import com.vmware.pscoe.iac.artifact.aria.orchestrator.configuration.ConfigurationVro;
import com.vmware.pscoe.iac.artifact.aria.orchestrator.configuration.ConfigurationVroNg;
import com.vmware.pscoe.iac.artifact.aria.orchestrator.rest.RestClientVro;
import com.vmware.pscoe.iac.artifact.aria.orchestrator.store.VroPackageStore;
import com.vmware.pscoe.iac.artifact.aria.automation.configuration.ConfigurationVraNg;
import com.vmware.pscoe.iac.artifact.aria.automation.pack.VraNgPackageStore;
import com.vmware.pscoe.iac.artifact.cli.CliManagerFactory;
Expand All @@ -37,6 +44,9 @@
import com.vmware.pscoe.iac.artifact.strategy.Strategy;
import com.vmware.pscoe.iac.artifact.strategy.StrategyForceLatestVersions;
import com.vmware.pscoe.iac.artifact.strategy.StrategySkipOldVersions;
import com.vmware.pscoe.iac.artifact.vcd.configuration.ConfigurationVcd;
import com.vmware.pscoe.iac.artifact.vcd.rest.RestClientVcd;
import com.vmware.pscoe.iac.artifact.vcd.store.VcdNgPackageStore;

/**
* Factory class to create PackageStore instances.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# `logs` are excluded generally, so, re-include them
!logs
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,14 @@
* This product may include a number of subcomponents with separate copyright notices and license terms. Your use of these subcomponents is subject to the terms and conditions of the subcomponent's license, as noted in the LICENSE file.
* #L%
*/
package com.vmware.pscoe.iac.artifact.configuration;
package com.vmware.pscoe.iac.artifact.aria.logs.configuration;

import java.util.Properties;

import org.springframework.util.StringUtils;

import com.vmware.pscoe.iac.artifact.configuration.Configuration;
import com.vmware.pscoe.iac.artifact.configuration.ConfigurationException;
import com.vmware.pscoe.iac.artifact.model.PackageType;

public class ConfigurationVrli extends Configuration {
Expand All @@ -41,7 +43,7 @@ protected ConfigurationVrli(Properties props) {
public String getPackageImportOverwriteMode() {
return this.properties.getProperty(PACKAGE_IMPORT_OVERWRITE_MODE, "SKIP,OVERWRITE");
}

public String getProvider() {
return this.properties.getProperty(PROVIDER);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@
* This product may include a number of subcomponents with separate copyright notices and license terms. Your use of these subcomponents is subject to the terms and conditions of the subcomponent's license, as noted in the LICENSE file.
* #L%
*/
package com.vmware.pscoe.iac.artifact.rest.client.vrli;
package com.vmware.pscoe.iac.artifact.aria.logs.rest;

import com.google.gson.*;
import com.jayway.jsonpath.JsonPath;
import com.vmware.pscoe.iac.artifact.configuration.Configuration;
import com.vmware.pscoe.iac.artifact.configuration.ConfigurationException;
import com.vmware.pscoe.iac.artifact.configuration.ConfigurationVrli;
import com.vmware.pscoe.iac.artifact.aria.logs.configuration.ConfigurationVrli;
import com.vmware.pscoe.iac.artifact.aria.operations.configuration.ConfigurationVrops;
import com.vmware.pscoe.iac.artifact.rest.RestClient;
import com.vmware.pscoe.iac.artifact.aria.operations.rest.RestClientVrops;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,14 @@
* This product may include a number of subcomponents with separate copyright notices and license terms. Your use of these subcomponents is subject to the terms and conditions of the subcomponent's license, as noted in the LICENSE file.
* #L%
*/
package com.vmware.pscoe.iac.artifact.rest.client.messages;
package com.vmware.pscoe.iac.artifact.aria.logs.rest;

public class Errors {
public final class Errors {
public static final String MAP_ALERT_DATA_ERROR = "Unable to map alert data";
public static final String PROCESS_ALERT_DATA_ERROR = "Unable to process alert data";
public static final String MAP_CONTENT_PACK_DATA_ERROR = "Unable to map content pack data";
public static final String PROCESS_CONTENT_PACK_DATA_ERROR = "Unable to process content pack data";

private Errors() {
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* This product may include a number of subcomponents with separate copyright notices and license terms. Your use of these subcomponents is subject to the terms and conditions of the subcomponent's license, as noted in the LICENSE file.
* #L%
*/
package com.vmware.pscoe.iac.artifact.rest.client.vrli;
package com.vmware.pscoe.iac.artifact.aria.logs.rest;

import java.io.IOException;
import java.net.URI;
Expand Down Expand Up @@ -41,7 +41,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jayway.jsonpath.DocumentContext;
import com.jayway.jsonpath.JsonPath;
import com.vmware.pscoe.iac.artifact.configuration.ConfigurationVrli;
import com.vmware.pscoe.iac.artifact.aria.logs.configuration.ConfigurationVrli;

public class RestClientVrliAuthInterceptor extends RestClientRequestInterceptor<ConfigurationVrli> {

Expand Down Expand Up @@ -90,7 +90,8 @@ private void acquireTokens(HttpRequest request) throws JsonProcessingException {
}

private void acquireVrliToken(HttpRequest request) throws JsonProcessingException {
final URI vrliTokenUri = UriComponentsBuilder.newInstance().scheme(request.getURI().getScheme()).host(getConfiguration().getHost())
final URI vrliTokenUri = UriComponentsBuilder.newInstance().scheme(request.getURI().getScheme())
.host(getConfiguration().getHost())
.port(getConfiguration().getPort()).path(VRLI_AUTH_TOKEN_URI).build().toUri();
logger.info("VRLI Auth Token URL: {}", vrliTokenUri);

Expand All @@ -103,16 +104,19 @@ private void acquireVrliToken(HttpRequest request) throws JsonProcessingExceptio
payload.put("provider", getConfiguration().getProvider());

final HttpEntity<String> entity = new HttpEntity<>(new ObjectMapper().writeValueAsString(payload), headers);
ResponseEntity<String> response = getRestTemplate().exchange(vrliTokenUri, HttpMethod.POST, entity, String.class);
ResponseEntity<String> response = getRestTemplate().exchange(vrliTokenUri, HttpMethod.POST, entity,
String.class);
final DocumentContext responseBody = JsonPath.parse(response.getBody());

final int ttl = responseBody.read("$.ttl");
this.vrliTokenExpirationTime = LocalDateTime.now(ZoneOffset.UTC).plus(ttl, ChronoField.MINUTE_OF_HOUR.getBaseUnit());
this.vrliTokenExpirationTime = LocalDateTime.now(ZoneOffset.UTC).plus(ttl,
ChronoField.MINUTE_OF_HOUR.getBaseUnit());
this.vrliAuthToken = responseBody.read("$.sessionId");
}

private void acquireVropsToken(HttpRequest request) throws JsonProcessingException {
final URI vropsTokenUri = UriComponentsBuilder.newInstance().scheme(request.getURI().getScheme()).host(getConfiguration().getIntegrationVropsAuthHost())
final URI vropsTokenUri = UriComponentsBuilder.newInstance().scheme(request.getURI().getScheme())
.host(getConfiguration().getIntegrationVropsAuthHost())
.port(getConfiguration().getIntegrationVropsAuthPort()).path(VROPS_AUTH_TOKEN_URI).build().toUri();
logger.info("VROPS Integration Auth Token URL: {}", vropsTokenUri);

Expand All @@ -125,25 +129,29 @@ private void acquireVropsToken(HttpRequest request) throws JsonProcessingExcepti
payload.put("authSource", getConfiguration().getIntegrationVropsAuthSource());

final HttpEntity<String> entity = new HttpEntity<>(new ObjectMapper().writeValueAsString(payload), headers);
ResponseEntity<String> response = getRestTemplate().exchange(vropsTokenUri, HttpMethod.POST, entity, String.class);
ResponseEntity<String> response = getRestTemplate().exchange(vropsTokenUri, HttpMethod.POST, entity,
String.class);
final DocumentContext responseBody = JsonPath.parse(response.getBody());

final long ttl = responseBody.read("$.validity");
this.vropsTokenExpirationTime = LocalDateTime.now(ZoneOffset.UTC).plus(ttl, ChronoField.MINUTE_OF_HOUR.getBaseUnit());
this.vropsTokenExpirationTime = LocalDateTime.now(ZoneOffset.UTC).plus(ttl,
ChronoField.MINUTE_OF_HOUR.getBaseUnit());
this.vropsAuthToken = responseBody.read("$.token");
}

private boolean isAccessTokenRequests(HttpRequest request) {
if (!StringUtils.isEmpty(getConfiguration().getIntegrationVropsAuthHost())) {
return request.getURI().getPath().contains(VRLI_AUTH_TOKEN_URI) || request.getURI().getPath().contains(VROPS_AUTH_TOKEN_URI);
return request.getURI().getPath().contains(VRLI_AUTH_TOKEN_URI)
|| request.getURI().getPath().contains(VROPS_AUTH_TOKEN_URI);
}

return request.getURI().getPath().contains(VRLI_AUTH_TOKEN_URI);
}

private boolean hasValidTokens() {
if (!StringUtils.isEmpty(getConfiguration().getIntegrationVropsAuthHost())) {
return vrliAuthToken != null && LocalDateTime.now(ZoneOffset.UTC).isBefore(vrliTokenExpirationTime) && vropsAuthToken != null
return vrliAuthToken != null && LocalDateTime.now(ZoneOffset.UTC).isBefore(vrliTokenExpirationTime)
&& vropsAuthToken != null
&& LocalDateTime.now(ZoneOffset.UTC).isBefore(vropsTokenExpirationTime);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@
* Package that represents vRLI rest client.
*
*/
package com.vmware.pscoe.iac.artifact.rest.client.vrli;
package com.vmware.pscoe.iac.artifact.aria.logs.rest;
Loading

0 comments on commit 2bd7e85

Please sign in to comment.