collect validation errors during save
This commit is contained in:
parent
6e5d51384b
commit
855c5e44b0
@ -480,7 +480,7 @@ public class ImportHostingAssets extends ImportOfficeData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String vmName(final String zonenfileName) {
|
private String vmName(final String zonenfileName) {
|
||||||
return zonenfileName.substring(zonenfileName.length()-"vm0000.json".length()).substring(0, 6);
|
return zonenfileName.substring(zonenfileName.length() - "vm0000.json".length()).substring(0, 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -783,22 +783,22 @@ public class ImportHostingAssets extends ImportOfficeData {
|
|||||||
|
|
||||||
private void persistHostingAssetsOfType(final HsHostingAssetType... hsHostingAssetTypes) {
|
private void persistHostingAssetsOfType(final HsHostingAssetType... hsHostingAssetTypes) {
|
||||||
final var hsHostingAssetTypeSet = stream(hsHostingAssetTypes).collect(toSet());
|
final var hsHostingAssetTypeSet = stream(hsHostingAssetTypes).collect(toSet());
|
||||||
// jpaAttempt.transacted(() -> {
|
|
||||||
hostingAssets.forEach((key, ha) -> {
|
hostingAssets.forEach((key, ha) -> {
|
||||||
jpaAttempt.transacted(() -> {
|
logError(() ->
|
||||||
context(rbacSuperuser);
|
jpaAttempt.transacted(() -> {
|
||||||
if (hsHostingAssetTypeSet.contains(ha.getType())) {
|
context(rbacSuperuser);
|
||||||
new HostingAssetEntitySaveProcessor(em, ha)
|
if (hsHostingAssetTypeSet.contains(ha.getType())) {
|
||||||
.preprocessEntity()
|
new HostingAssetEntitySaveProcessor(em, ha)
|
||||||
.validateEntityIgnoring("'EMAIL_ALIAS:.*\\.config\\.target' .*")
|
.preprocessEntity()
|
||||||
.prepareForSave()
|
.validateEntityIgnoring("'EMAIL_ALIAS:.*\\.config\\.target' .*")
|
||||||
.saveUsing(entity -> persist(key, entity))
|
.prepareForSave()
|
||||||
.validateContext();
|
.saveUsing(entity -> persist(key, entity))
|
||||||
}
|
.validateContext();
|
||||||
}).assertSuccessful();
|
}
|
||||||
}
|
}).assertSuccessful()
|
||||||
);
|
);
|
||||||
// }).assertSuccessful();
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void importIpNumbers(final String[] header, final List<String[]> records) {
|
private void importIpNumbers(final String[] header, final List<String[]> records) {
|
||||||
@ -1249,14 +1249,18 @@ public class ImportHostingAssets extends ImportOfficeData {
|
|||||||
entry("multiviews", options.contains("multiviews")),
|
entry("multiviews", options.contains("multiviews")),
|
||||||
entry("subdomains", withDefault(rec.getString("valid_subdomain_names"), "*")
|
entry("subdomains", withDefault(rec.getString("valid_subdomain_names"), "*")
|
||||||
.split(",")),
|
.split(",")),
|
||||||
entry("fcgi-php-bin", withDefault(rec.getString("fcgi_php_bin"),
|
entry("fcgi-php-bin", withDefault(
|
||||||
httpDomainSetupValidator.getProperty("fcgi-php-bin").defaultValue() )),
|
rec.getString("fcgi_php_bin"),
|
||||||
entry("passenger-nodejs", withDefault(rec.getString("passenger_nodejs"),
|
httpDomainSetupValidator.getProperty("fcgi-php-bin").defaultValue())),
|
||||||
httpDomainSetupValidator.getProperty("passenger-nodejs").defaultValue() )),
|
entry("passenger-nodejs", withDefault(
|
||||||
entry("passenger-python", withDefault(rec.getString("passenger_python"),
|
rec.getString("passenger_nodejs"),
|
||||||
httpDomainSetupValidator.getProperty("passenger-python").defaultValue() )),
|
httpDomainSetupValidator.getProperty("passenger-nodejs").defaultValue())),
|
||||||
entry("passenger-ruby", withDefault(rec.getString("passenger_ruby"),
|
entry("passenger-python", withDefault(
|
||||||
httpDomainSetupValidator.getProperty("passenger-ruby").defaultValue() ))
|
rec.getString("passenger_python"),
|
||||||
|
httpDomainSetupValidator.getProperty("passenger-python").defaultValue())),
|
||||||
|
entry("passenger-ruby", withDefault(
|
||||||
|
rec.getString("passenger_ruby"),
|
||||||
|
httpDomainSetupValidator.getProperty("passenger-ruby").defaultValue()))
|
||||||
))
|
))
|
||||||
.build();
|
.build();
|
||||||
hostingAssets.put(DOMAIN_HTTP_SETUP_OFFSET + domain_id, domainHttpSetupAsset);
|
hostingAssets.put(DOMAIN_HTTP_SETUP_OFFSET + domain_id, domainHttpSetupAsset);
|
||||||
@ -1304,7 +1308,9 @@ public class ImportHostingAssets extends ImportOfficeData {
|
|||||||
if (defaultValue instanceof String defaultStringValue) {
|
if (defaultValue instanceof String defaultStringValue) {
|
||||||
return givenValue != null && !givenValue.isBlank() ? givenValue : defaultStringValue;
|
return givenValue != null && !givenValue.isBlank() ? givenValue : defaultStringValue;
|
||||||
}
|
}
|
||||||
throw new RuntimeException("property default value expected to be of type string, but is of type " + defaultValue.getClass().getSimpleName());
|
throw new RuntimeException(
|
||||||
|
"property default value expected to be of type string, but is of type " + defaultValue.getClass()
|
||||||
|
.getSimpleName());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void importZonefiles(final String vmName, final String zonenfilesJson) {
|
private void importZonefiles(final String vmName, final String zonenfilesJson) {
|
||||||
@ -1317,11 +1323,11 @@ public class ImportHostingAssets extends ImportOfficeData {
|
|||||||
final Map<String, Map<String, Object>> zoneData = jsonMapper.readValue(zonenfilesJson, Map.class);
|
final Map<String, Map<String, Object>> zoneData = jsonMapper.readValue(zonenfilesJson, Map.class);
|
||||||
importZonenfile(vmName, zoneData);
|
importZonenfile(vmName, zoneData);
|
||||||
} catch (JsonProcessingException e) {
|
} catch (JsonProcessingException e) {
|
||||||
throw new RuntimeException("cannot read zonefile JSON: '"+zonenfilesJson+"'", e);
|
throw new RuntimeException("cannot read zonefile JSON: '" + zonenfilesJson + "'", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void importZonenfile( final String vmName, final Map<String, Map<String, Object>> zoneDataForVM) {
|
private void importZonenfile(final String vmName, final Map<String, Map<String, Object>> zoneDataForVM) {
|
||||||
zoneDataForVM.forEach((domainName, zoneData) -> {
|
zoneDataForVM.forEach((domainName, zoneData) -> {
|
||||||
final var domainAsset = domainSetupsByName.get(domainName);
|
final var domainAsset = domainSetupsByName.get(domainName);
|
||||||
if (domainAsset != null) {
|
if (domainAsset != null) {
|
||||||
@ -1336,8 +1342,8 @@ public class ImportHostingAssets extends ImportOfficeData {
|
|||||||
.getAssignedToAsset();
|
.getAssignedToAsset();
|
||||||
final var domOwner = zoneData.remove("DOM_OWNER");
|
final var domOwner = zoneData.remove("DOM_OWNER");
|
||||||
final var expectedDomOwner = domUser.getIdentifier();
|
final var expectedDomOwner = domUser.getIdentifier();
|
||||||
if ( domOwner.equals(expectedDomOwner) ) {
|
if (domOwner.equals(expectedDomOwner)) {
|
||||||
logError( () -> assertThat(vmName).isEqualTo(domUser.getParentAsset().getParentAsset().getIdentifier() ));
|
logError(() -> assertThat(vmName).isEqualTo(domUser.getParentAsset().getParentAsset().getIdentifier()));
|
||||||
|
|
||||||
//noinspection unchecked
|
//noinspection unchecked
|
||||||
zoneData.put("user-RR", ((ArrayList<ArrayList<Object>>) zoneData.get("user-RR")).stream()
|
zoneData.put("user-RR", ((ArrayList<ArrayList<Object>>) zoneData.get("user-RR")).stream()
|
||||||
@ -1346,7 +1352,8 @@ public class ImportHostingAssets extends ImportOfficeData {
|
|||||||
);
|
);
|
||||||
domainDnsSetupAsset.getConfig().putAll(zoneData);
|
domainDnsSetupAsset.getConfig().putAll(zoneData);
|
||||||
} else {
|
} else {
|
||||||
logError("zonedata dom_owner of " + domainAsset.getIdentifier() + " is " + domOwner + " but expected to be " + expectedDomOwner);
|
logError("zonedata dom_owner of " + domainAsset.getIdentifier() + " is " + domOwner + " but expected to be "
|
||||||
|
+ expectedDomOwner);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user