diff --git a/src/main/java/net/hostsharing/hsadminng/hs/hosting/asset/validators/HsEMailAddressHostingAssetValidator.java b/src/main/java/net/hostsharing/hsadminng/hs/hosting/asset/validators/HsEMailAddressHostingAssetValidator.java
index 3ee8f3d3..3ad83e2e 100644
--- a/src/main/java/net/hostsharing/hsadminng/hs/hosting/asset/validators/HsEMailAddressHostingAssetValidator.java
+++ b/src/main/java/net/hostsharing/hsadminng/hs/hosting/asset/validators/HsEMailAddressHostingAssetValidator.java
@@ -14,17 +14,18 @@ class HsEMailAddressHostingAssetValidator extends HostingAssetEntityValidator {
private static final String UNIX_USER_REGEX = "^[a-z][a-z0-9]{2}[0-9]{2}(-[a-z0-9][a-z0-9\\._-]*)?$"; // also accepts legacy pac-names
private static final String EMAIL_ADDRESS_LOCAL_PART_REGEX = "[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+"; // RFC 5322
private static final String EMAIL_ADDRESS_DOMAIN_PART_REGEX = "[a-zA-Z0-9.-]+";
- private static final String EMAIL_ADDRESS_FULL_REGEX = "^" + EMAIL_ADDRESS_LOCAL_PART_REGEX + "@" + EMAIL_ADDRESS_DOMAIN_PART_REGEX + "$";
+ private static final String EMAIL_ADDRESS_FULL_REGEX = "^(" + EMAIL_ADDRESS_LOCAL_PART_REGEX + ")?@" + EMAIL_ADDRESS_DOMAIN_PART_REGEX + "$";
+ private static final String NOBODY_REGEX = "^(nobody|nomail|bounce)$"; // FIXME: map all to nobody
public static final int EMAIL_ADDRESS_MAX_LENGTH = 320; // according to RFC 5321 and RFC 5322
HsEMailAddressHostingAssetValidator() {
super( HsHostingAssetType.EMAIL_ADDRESS,
AlarmContact.isOptional(),
- stringProperty("local-part").matchesRegEx("^" + EMAIL_ADDRESS_LOCAL_PART_REGEX + "$").required(),
- stringProperty("sub-domain").matchesRegEx("^" + EMAIL_ADDRESS_LOCAL_PART_REGEX + "$").optional(),
+ stringProperty("local-part").matchesRegEx("^" + EMAIL_ADDRESS_LOCAL_PART_REGEX + "$").writeOnce().optional(),
+ stringProperty("sub-domain").matchesRegEx("^" + EMAIL_ADDRESS_LOCAL_PART_REGEX + "$").writeOnce().optional(),
arrayOf(
- stringProperty("target").maxLength(EMAIL_ADDRESS_MAX_LENGTH).matchesRegEx(UNIX_USER_REGEX, EMAIL_ADDRESS_FULL_REGEX)
+ stringProperty("target").maxLength(EMAIL_ADDRESS_MAX_LENGTH).matchesRegEx(UNIX_USER_REGEX, EMAIL_ADDRESS_FULL_REGEX, NOBODY_REGEX)
).required().minLength(1));
}
@@ -43,9 +44,9 @@ class HsEMailAddressHostingAssetValidator extends HostingAssetEntityValidator {
}
private static String combineIdentifier(final HsHostingAsset emailAddressAssetEntity) {
- return emailAddressAssetEntity.getDirectValue("local-part", String.class) +
- ofNullable(emailAddressAssetEntity.getDirectValue("sub-domain", String.class)).map(s -> "." + s).orElse("") +
- "@" +
- emailAddressAssetEntity.getParentAsset().getIdentifier();
+ return ofNullable(emailAddressAssetEntity.getDirectValue("local-part", String.class)).orElse("")
+ + "@"
+ + ofNullable(emailAddressAssetEntity.getDirectValue("sub-domain", String.class)).map(s -> s + ".").orElse("")
+ + emailAddressAssetEntity.getParentAsset().getParentAsset().getIdentifier();
}
}
diff --git a/src/main/java/net/hostsharing/hsadminng/hs/validation/ArrayProperty.java b/src/main/java/net/hostsharing/hsadminng/hs/validation/ArrayProperty.java
index 9001ea81..085d9e0f 100644
--- a/src/main/java/net/hostsharing/hsadminng/hs/validation/ArrayProperty.java
+++ b/src/main/java/net/hostsharing/hsadminng/hs/validation/ArrayProperty.java
@@ -43,10 +43,10 @@ public class ArrayProperty
, E> extends Valid
@Override
protected void validate(final List result, final E[] propValue, final PropertiesProvider propProvider) {
if (minLength != null && propValue.length < minLength) {
- result.add(propertyName + "' length is expected to be at min " + minLength + " but length of " + display(propValue) + " is " + propValue.length);
+ result.add(propertyName + "' length is expected to be at min " + minLength + " but length of " + displayArray(propValue) + " is " + propValue.length);
}
if (maxLength != null && propValue.length > maxLength) {
- result.add(propertyName + "' length is expected to be at max " + maxLength + " but length of " + display(propValue) + " is " + propValue.length);
+ result.add(propertyName + "' length is expected to be at max " + maxLength + " but length of " + displayArray(propValue) + " is " + propValue.length);
}
stream(propValue).forEach(e -> elementsOf.validate(result, e, propProvider));
}
@@ -57,7 +57,7 @@ public class ArrayProperty, E> extends Valid
}
@SafeVarargs
- private String display(final E... propValue) {
+ private String displayArray(final E... propValue) {
return "[" + Arrays.toString(propValue) + "]";
}
}
diff --git a/src/main/java/net/hostsharing/hsadminng/hs/validation/StringProperty.java b/src/main/java/net/hostsharing/hsadminng/hs/validation/StringProperty.java
index 7870ca87..f9a27e85 100644
--- a/src/main/java/net/hostsharing/hsadminng/hs/validation/StringProperty.java
+++ b/src/main/java/net/hostsharing/hsadminng/hs/validation/StringProperty.java
@@ -77,6 +77,7 @@ public class StringProperty
> extends ValidatableProp
@Override
protected void validate(final List result, final String propValue, final PropertiesProvider propProvider) {
+ super.validate(result, propValue, propProvider);
if (minLength != null && propValue.length()> extends ValidatableProp
stream(matchesRegEx).map(p -> p.matcher(propValue)).noneMatch(Matcher::matches)) {
result.add(propertyName + "' is expected to match any of " + Arrays.toString(matchesRegEx) + " but " + display(propValue) + " does not match" + (matchesRegEx.length>1?" any":""));
}
- if (isReadOnly() && propValue != null) {
- result.add(propertyName + "' is readonly but given as " + display(propValue));
- }
}
- private String display(final String propValue) {
+ @Override
+ protected String display(final String propValue) {
return undisclosed ? "provided value" : ("'" + propValue + "'");
}
diff --git a/src/main/java/net/hostsharing/hsadminng/hs/validation/ValidatableProperty.java b/src/main/java/net/hostsharing/hsadminng/hs/validation/ValidatableProperty.java
index 0d8fa604..72fc444f 100644
--- a/src/main/java/net/hostsharing/hsadminng/hs/validation/ValidatableProperty.java
+++ b/src/main/java/net/hostsharing/hsadminng/hs/validation/ValidatableProperty.java
@@ -34,7 +34,7 @@ import static org.apache.commons.lang3.ObjectUtils.isArray;
public abstract class ValidatableProperty, T> {
protected static final String[] KEY_ORDER_HEAD = Array.of("propertyName");
- protected static final String[] KEY_ORDER_TAIL = Array.of("required", "requiresAtLeastOneOf", "requiresAtMaxOneOf", "defaultValue", "readOnly", "writeOnly", "computed", "isTotalsValidator", "thresholdPercentage");
+ protected static final String[] KEY_ORDER_TAIL = Array.of("required", "requiresAtLeastOneOf", "requiresAtMaxOneOf", "defaultValue", "readOnly", "writeOnce","writeOnly", "computed", "isTotalsValidator", "thresholdPercentage");
protected static final String[] KEY_ORDER = Array.join(KEY_ORDER_HEAD, KEY_ORDER_TAIL);
final Class type;
@@ -66,6 +66,9 @@ public abstract class ValidatableProperty, T
@Accessors(makeFinal = true, chain = true, fluent = false)
private boolean writeOnly;
+ @Accessors(makeFinal = true, chain = true, fluent = false)
+ private boolean writeOnce;
+
private Function[], T[]> deferredInit;
private boolean isTotalsValidator = false;
@@ -97,7 +100,12 @@ public abstract class ValidatableProperty, T
public P writeOnly() {
this.writeOnly = true;
- optional();
+ optional(); // FIXME: sounds wrong
+ return self();
+ }
+
+ public P writeOnce() {
+ this.writeOnce = true;
return self();
}
@@ -239,7 +247,12 @@ public abstract class ValidatableProperty
, T
}
}
- protected abstract void validate(final List result, final T propValue, final PropertiesProvider propProvider);
+ protected void validate(final List result, final T propValue, final PropertiesProvider propProvider) {
+
+ if (isReadOnly() && propValue != null) {
+ result.add(propertyName + "' is readonly but given as " + display(propValue));
+ }
+ }
public void verifyConsistency(final Map.Entry extends Enum>, ?> typeDef) {
if (required == null && requiresAtLeastOneOf == null && requiresAtMaxOneOf == null && !readOnly && defaultValue == null) {
@@ -252,6 +265,10 @@ public abstract class ValidatableProperty, T
return (T) Optional.ofNullable(propValues.get(propertyName)).orElse(defaultValue);
}
+ protected String display(final T propValue) {
+ return propValue == null ? null : propValue.toString();
+ }
+
protected abstract String simpleTypeName();
public Map toOrderedMap() {
diff --git a/src/test/java/net/hostsharing/hsadminng/hs/hosting/asset/validators/HsDomainDnsSetupHostingAssetValidatorUnitTest.java b/src/test/java/net/hostsharing/hsadminng/hs/hosting/asset/validators/HsDomainDnsSetupHostingAssetValidatorUnitTest.java
index 3234ba28..a907dc60 100644
--- a/src/test/java/net/hostsharing/hsadminng/hs/hosting/asset/validators/HsDomainDnsSetupHostingAssetValidatorUnitTest.java
+++ b/src/test/java/net/hostsharing/hsadminng/hs/hosting/asset/validators/HsDomainDnsSetupHostingAssetValidatorUnitTest.java
@@ -5,8 +5,10 @@ import net.hostsharing.hsadminng.hs.booking.item.HsBookingItemType;
import net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetEntity;
import net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetEntity.HsHostingAssetEntityBuilder;
import net.hostsharing.hsadminng.mapper.Array;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import java.util.ArrayList;
import java.util.Map;
import static java.util.Map.entry;
@@ -60,6 +62,11 @@ class HsDomainDnsSetupHostingAssetValidatorUnitTest {
));
}
+ @BeforeEach
+ void reset() {
+ HsDomainDnsSetupHostingAssetValidator.addZonefileErrorsTo(null);
+ }
+
@Test
void containsExpectedProperties() {
// when
@@ -318,4 +325,30 @@ class HsDomainDnsSetupHostingAssetValidatorUnitTest {
"[example.org|DNS] zone example.org/IN: not loaded due to errors."
);
}
+
+ @Test
+ void acceptsInvalidZonefileWithActiveErrorFilter() {
+ // given
+ final var givenEntity = validEntityBuilder().config(Map.ofEntries(
+ entry("user-RR", Array.of(
+ "example.org. 1814400 IN SOA example.org. root.example.org (1234 10800 900 604800 86400)",
+ "example.org. 1814400 IN SOA example.org. root.example.org (4321 10800 900 604800 86400)"
+ ))
+ ))
+ .build();
+ final var validator = HostingAssetEntityValidatorRegistry.forType(givenEntity.getType());
+
+ // when
+ final var zonefileErrors = new ArrayList();
+ HsDomainDnsSetupHostingAssetValidator.addZonefileErrorsTo(zonefileErrors);
+ final var errors = validator.validateContext(givenEntity);
+
+ // then
+ assertThat(errors).isEmpty();
+ assertThat(zonefileErrors).containsExactlyInAnyOrder(
+ "[example.org|DNS] dns_master_load:line 26: example.org: multiple RRs of singleton type",
+ "[example.org|DNS] zone example.org/IN: loading from master file (null) failed: multiple RRs of singleton type",
+ "[example.org|DNS] zone example.org/IN: not loaded due to errors."
+ );
+ }
}
diff --git a/src/test/java/net/hostsharing/hsadminng/hs/hosting/asset/validators/HsEMailAddressHostingAssetValidatorUnitTest.java b/src/test/java/net/hostsharing/hsadminng/hs/hosting/asset/validators/HsEMailAddressHostingAssetValidatorUnitTest.java
index 4a30f394..a7d4da20 100644
--- a/src/test/java/net/hostsharing/hsadminng/hs/hosting/asset/validators/HsEMailAddressHostingAssetValidatorUnitTest.java
+++ b/src/test/java/net/hostsharing/hsadminng/hs/hosting/asset/validators/HsEMailAddressHostingAssetValidatorUnitTest.java
@@ -15,14 +15,19 @@ import static org.assertj.core.api.Assertions.assertThat;
class HsEMailAddressHostingAssetValidatorUnitTest {
- final static HsHostingAssetEntity domainMboxetup = HsHostingAssetEntity.builder()
+ final static HsHostingAssetEntity domainSetup = HsHostingAssetEntity.builder()
.type(DOMAIN_MBOX_SETUP)
.identifier("example.org")
.build();
+ final static HsHostingAssetEntity domainMboxSetup = HsHostingAssetEntity.builder()
+ .type(DOMAIN_MBOX_SETUP)
+ .identifier("example.org|MBOX")
+ .parentAsset(domainSetup)
+ .build();
static HsHostingAssetEntity.HsHostingAssetEntityBuilder validEntityBuilder() {
return HsHostingAssetEntity.builder()
.type(EMAIL_ADDRESS)
- .parentAsset(domainMboxetup)
+ .parentAsset(domainMboxSetup)
.identifier("test@example.org")
.config(Map.ofEntries(
entry("local-part", "test"),
@@ -37,9 +42,9 @@ class HsEMailAddressHostingAssetValidatorUnitTest {
// then
assertThat(validator.properties()).map(Map::toString).containsExactlyInAnyOrder(
- "{type=string, propertyName=local-part, matchesRegEx=[^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+$], required=true}",
- "{type=string, propertyName=sub-domain, matchesRegEx=[^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+$]}",
- "{type=string[], propertyName=target, elementsOf={type=string, propertyName=target, matchesRegEx=[^[a-z][a-z0-9]{2}[0-9]{2}(-[a-z0-9][a-z0-9\\._-]*)?$, ^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$], maxLength=320}, required=true, minLength=1}");
+ "{type=string, propertyName=local-part, matchesRegEx=[^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+$], writeOnce=true}",
+ "{type=string, propertyName=sub-domain, matchesRegEx=[^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+$], writeOnce=true}",
+ "{type=string[], propertyName=target, elementsOf={type=string, propertyName=target, matchesRegEx=[^[a-z][a-z0-9]{2}[0-9]{2}(-[a-z0-9][a-z0-9\\._-]*)?$, ^([a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+)?@[a-zA-Z0-9.-]+$, ^(nobody|nomail)$], maxLength=320}, required=true, minLength=1}");
}
@Test
@@ -73,7 +78,7 @@ class HsEMailAddressHostingAssetValidatorUnitTest {
assertThat(result).containsExactlyInAnyOrder(
"'EMAIL_ADDRESS:test@example.org.config.local-part' is expected to match any of [^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+$] but 'no@allowed' does not match",
"'EMAIL_ADDRESS:test@example.org.config.sub-domain' is expected to match any of [^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+$] but 'no@allowedeither' does not match",
- "'EMAIL_ADDRESS:test@example.org.config.target' is expected to match any of [^[a-z][a-z0-9]{2}[0-9]{2}(-[a-z0-9][a-z0-9\\._-]*)?$, ^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$] but 'garbage' does not match any");
+ "'EMAIL_ADDRESS:test@example.org.config.target' is expected to match any of [^[a-z][a-z0-9]{2}[0-9]{2}(-[a-z0-9][a-z0-9\\._-]*)?$, ^([a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+)?@[a-zA-Z0-9.-]+$, ^(nobody|nomail)$] but 'garbage' does not match any");
}
@Test
diff --git a/src/test/java/net/hostsharing/hsadminng/hs/migration/ImportHostingAssets.java b/src/test/java/net/hostsharing/hsadminng/hs/migration/ImportHostingAssets.java
index c3a0f467..01149610 100644
--- a/src/test/java/net/hostsharing/hsadminng/hs/migration/ImportHostingAssets.java
+++ b/src/test/java/net/hostsharing/hsadminng/hs/migration/ImportHostingAssets.java
@@ -16,6 +16,7 @@ import net.hostsharing.hsadminng.hs.hosting.asset.validators.HostingAssetEntityV
import net.hostsharing.hsadminng.hs.hosting.asset.validators.HsDomainDnsSetupHostingAssetValidator;
import net.hostsharing.hsadminng.rbac.test.JpaAttempt;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Tag;
@@ -35,6 +36,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.TreeMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
@@ -54,6 +56,7 @@ import static net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType.DOMA
import static net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType.DOMAIN_MBOX_SETUP;
import static net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType.DOMAIN_SETUP;
import static net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType.DOMAIN_SMTP_SETUP;
+import static net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType.EMAIL_ADDRESS;
import static net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType.EMAIL_ALIAS;
import static net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType.IPV4_NUMBER;
import static net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType.MANAGED_SERVER;
@@ -118,19 +121,9 @@ import static org.assertj.core.api.Assumptions.assumeThat;
@ExtendWith(OrderedDependedTestsExtension.class)
public class ImportHostingAssets extends ImportOfficeData {
- static final Integer IP_NUMBER_ID_OFFSET = 1000000;
- static final Integer HIVE_ID_OFFSET = 2000000;
- static final Integer PACKET_ID_OFFSET = 3000000;
- static final Integer UNIXUSER_ID_OFFSET = 4000000;
- static final Integer EMAILALIAS_ID_OFFSET = 5000000;
- static final Integer DBINSTANCE_ID_OFFSET = 6000000;
- static final Integer DBUSER_ID_OFFSET = 7000000;
- static final Integer DB_ID_OFFSET = 8000000;
- static final Integer DOMAIN_SETUP_OFFSET = 10000000;
- static final Integer DOMAIN_DNS_SETUP_OFFSET = 11000000;
- static final Integer DOMAIN_HTTP_SETUP_OFFSET = 12000000;
- static final Integer DOMAIN_MBOX_SETUP_OFFSET = 13000000;
- static final Integer DOMAIN_SMTP_SETUP_OFFSET = 14000000;
+ static final int BI_HIVE_ID_OFFSET = 2000000;
+ static final int BI_PACKET_ID_OFFSET = 3000000;
+
static List zonefileErrors = new ArrayList<>();
record Hive(int hive_id, String hive_name, int inet_addr_id, AtomicReference serverRef) {}
@@ -138,7 +131,21 @@ public class ImportHostingAssets extends ImportOfficeData {
static Map bookingProjects = new WriteOnceMap<>();
static Map bookingItems = new WriteOnceMap<>();
static Map hives = new WriteOnceMap<>();
- static Map hostingAssets = new WriteOnceMap<>(); // TODO.impl: separate maps for each type?
+
+ static Map ipNumberAssets = new WriteOnceMap<>();
+ static Map packetAssets = new WriteOnceMap<>();
+ static Map unixUserAssets = new WriteOnceMap<>();
+ static Map emailAliasAssets = new WriteOnceMap<>();
+ static Map dbInstanceAssets = new WriteOnceMap<>();
+ static Map dbUserAssets = new WriteOnceMap<>();
+ static Map dbAssets = new WriteOnceMap<>();
+ static Map domainSetupAssets = new WriteOnceMap<>();
+ static Map domainDnsSetupAssets = new WriteOnceMap<>();
+ static Map domainHttpSetupAssets = new WriteOnceMap<>();
+ static Map domainMBoxSetupAssets = new WriteOnceMap<>();
+ static Map domainSmtpSetupAssets = new WriteOnceMap<>();
+ static Map emailAddressAssets = new WriteOnceMap<>();
+
static Map dbUsersByEngineAndName = new WriteOnceMap<>();
static Map domainSetupsByName = new WriteOnceMap<>();
@@ -171,13 +178,13 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyIpNumbers() {
assumeThatWeAreImportingControlledTestData();
- assertThat(firstOfEachType(5, IPV4_NUMBER)).isEqualToIgnoringWhitespace("""
+ assertThat(firstOfEach(5, ipNumberAssets)).isEqualToIgnoringWhitespace("""
{
- 1000363=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.34),
- 1000381=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.52),
- 1000402=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.73),
- 1000433=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.104),
- 1000457=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.128)
+ 363=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.34),
+ 381=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.52),
+ 402=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.73),
+ 433=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.104),
+ 457=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.128)
}
""");
}
@@ -200,11 +207,11 @@ public class ImportHostingAssets extends ImportOfficeData {
assertThat(toJsonFormattedString(first(5, hives))).isEqualToIgnoringWhitespace("""
{
- 2000001=Hive[hive_id=1, hive_name=h00, inet_addr_id=358, serverRef=null],
- 2000002=Hive[hive_id=2, hive_name=h01, inet_addr_id=359, serverRef=null],
- 2000004=Hive[hive_id=4, hive_name=h02, inet_addr_id=360, serverRef=null],
- 2000007=Hive[hive_id=7, hive_name=h03, inet_addr_id=361, serverRef=null],
- 2000013=Hive[hive_id=13, hive_name=h04, inet_addr_id=430, serverRef=null]
+ 1001=Hive[hive_id=1001, hive_name=h00, inet_addr_id=358, serverRef=null],
+ 1002=Hive[hive_id=1002, hive_name=h01, inet_addr_id=359, serverRef=null],
+ 1004=Hive[hive_id=1004, hive_name=h02, inet_addr_id=360, serverRef=null],
+ 1007=Hive[hive_id=1007, hive_name=h03, inet_addr_id=361, serverRef=null],
+ 1013=Hive[hive_id=1013, hive_name=h04, inet_addr_id=430, serverRef=null]
}
""");
}
@@ -225,32 +232,34 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyPackets() {
assumeThatWeAreImportingControlledTestData();
- assertThat(firstOfEachType(3, CLOUD_SERVER, MANAGED_SERVER, MANAGED_WEBSPACE)).isEqualToIgnoringWhitespace("""
- {
- 3000630=HsHostingAssetRealEntity(MANAGED_WEBSPACE, hsh00, HA hsh00, MANAGED_SERVER:vm1050, D-1000000:hsh default project:BI hsh00),
- 3000968=HsHostingAssetRealEntity(MANAGED_SERVER, vm1061, HA vm1061, D-1015200:rar default project:BI vm1061),
- 3000978=HsHostingAssetRealEntity(MANAGED_SERVER, vm1050, HA vm1050, D-1000000:hsh default project:BI vm1050),
- 3001061=HsHostingAssetRealEntity(MANAGED_SERVER, vm1068, HA vm1068, D-1000300:mim default project:BI vm1068),
- 3001094=HsHostingAssetRealEntity(MANAGED_WEBSPACE, lug00, HA lug00, MANAGED_SERVER:vm1068, D-1000300:mim default project:BI lug00),
- 3001112=HsHostingAssetRealEntity(MANAGED_WEBSPACE, mim00, HA mim00, MANAGED_SERVER:vm1068, D-1000300:mim default project:BI mim00),
- 3023611=HsHostingAssetRealEntity(CLOUD_SERVER, vm2097, HA vm2097, D-1101800:wws default project:BI vm2097)
- }
- """);
assertThat(firstOfEachType(
3,
HsBookingItemType.CLOUD_SERVER,
HsBookingItemType.MANAGED_SERVER,
HsBookingItemType.MANAGED_WEBSPACE)).isEqualToIgnoringWhitespace("""
{
- 3000630=HsBookingItemEntity(D-1000000:hsh default project, MANAGED_WEBSPACE, [2001-06-01,), BI hsh00),
- 3000968=HsBookingItemEntity(D-1015200:rar default project, MANAGED_SERVER, [2013-04-01,), BI vm1061),
- 3000978=HsBookingItemEntity(D-1000000:hsh default project, MANAGED_SERVER, [2013-04-01,), BI vm1050),
- 3001061=HsBookingItemEntity(D-1000300:mim default project, MANAGED_SERVER, [2013-08-19,), BI vm1068),
- 3001094=HsBookingItemEntity(D-1000300:mim default project, MANAGED_WEBSPACE, [2013-09-10,), BI lug00),
- 3001112=HsBookingItemEntity(D-1000300:mim default project, MANAGED_WEBSPACE, [2013-09-17,), BI mim00),
+ 3010630=HsBookingItemEntity(D-1000000:hsh default project, MANAGED_WEBSPACE, [2001-06-01,), BI hsh00),
+ 3010968=HsBookingItemEntity(D-1015200:rar default project, MANAGED_SERVER, [2013-04-01,), BI vm1061),
+ 3010978=HsBookingItemEntity(D-1000000:hsh default project, MANAGED_SERVER, [2013-04-01,), BI vm1050),
+ 3011061=HsBookingItemEntity(D-1000300:mim default project, MANAGED_SERVER, [2013-08-19,), BI vm1068),
+ 3011094=HsBookingItemEntity(D-1000300:mim default project, MANAGED_WEBSPACE, [2013-09-10,), BI lug00),
+ 3011112=HsBookingItemEntity(D-1000300:mim default project, MANAGED_WEBSPACE, [2013-09-17,), BI mim00),
3023611=HsBookingItemEntity(D-1101800:wws default project, CLOUD_SERVER, [2022-08-10,), BI vm2097)
}
""");
+ assertThat(firstOfEach(9, packetAssets)).isEqualToIgnoringWhitespace("""
+ {
+ 10630=HsHostingAssetRealEntity(MANAGED_WEBSPACE, hsh00, HA hsh00, MANAGED_SERVER:vm1050, D-1000000:hsh default project:BI hsh00),
+ 10968=HsHostingAssetRealEntity(MANAGED_SERVER, vm1061, HA vm1061, D-1015200:rar default project:BI vm1061),
+ 10978=HsHostingAssetRealEntity(MANAGED_SERVER, vm1050, HA vm1050, D-1000000:hsh default project:BI vm1050),
+ 11061=HsHostingAssetRealEntity(MANAGED_SERVER, vm1068, HA vm1068, D-1000300:mim default project:BI vm1068),
+ 11094=HsHostingAssetRealEntity(MANAGED_WEBSPACE, lug00, HA lug00, MANAGED_SERVER:vm1068, D-1000300:mim default project:BI lug00),
+ 11112=HsHostingAssetRealEntity(MANAGED_WEBSPACE, mim00, HA mim00, MANAGED_SERVER:vm1068, D-1000300:mim default project:BI mim00),
+ 11447=HsHostingAssetRealEntity(MANAGED_SERVER, vm1093, HA vm1093, D-1000000:hsh default project:BI vm1093),
+ 19959=HsHostingAssetRealEntity(MANAGED_WEBSPACE, dph00, HA dph00, MANAGED_SERVER:vm1093, D-1101900:dph default project:BI dph00),
+ 23611=HsHostingAssetRealEntity(CLOUD_SERVER, vm2097, HA vm2097, D-1101800:wws default project:BI vm2097)
+ }
+ """);
}
@Test
@@ -269,18 +278,16 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyPacketComponents() {
assumeThatWeAreImportingControlledTestData();
- assertThat(firstOfEachType(5, CLOUD_SERVER, MANAGED_SERVER, MANAGED_WEBSPACE))
+ assertThat(firstOfEach(7, packetAssets))
.isEqualToIgnoringWhitespace("""
{
- 3000630=HsHostingAssetRealEntity(MANAGED_WEBSPACE, hsh00, HA hsh00, MANAGED_SERVER:vm1050, D-1000000:hsh default project:BI hsh00),
- 3000968=HsHostingAssetRealEntity(MANAGED_SERVER, vm1061, HA vm1061, D-1015200:rar default project:BI vm1061),
- 3000978=HsHostingAssetRealEntity(MANAGED_SERVER, vm1050, HA vm1050, D-1000000:hsh default project:BI vm1050),
- 3001061=HsHostingAssetRealEntity(MANAGED_SERVER, vm1068, HA vm1068, D-1000300:mim default project:BI vm1068),
- 3001094=HsHostingAssetRealEntity(MANAGED_WEBSPACE, lug00, HA lug00, MANAGED_SERVER:vm1068, D-1000300:mim default project:BI lug00),
- 3001112=HsHostingAssetRealEntity(MANAGED_WEBSPACE, mim00, HA mim00, MANAGED_SERVER:vm1068, D-1000300:mim default project:BI mim00),
- 3001447=HsHostingAssetRealEntity(MANAGED_SERVER, vm1093, HA vm1093, D-1000000:hsh default project:BI vm1093),
- 3019959=HsHostingAssetRealEntity(MANAGED_WEBSPACE, dph00, HA dph00, MANAGED_SERVER:vm1093, D-1101900:dph default project:BI dph00),
- 3023611=HsHostingAssetRealEntity(CLOUD_SERVER, vm2097, HA vm2097, D-1101800:wws default project:BI vm2097)
+ 10630=HsHostingAssetRealEntity(MANAGED_WEBSPACE, hsh00, HA hsh00, MANAGED_SERVER:vm1050, D-1000000:hsh default project:BI hsh00),
+ 10968=HsHostingAssetRealEntity(MANAGED_SERVER, vm1061, HA vm1061, D-1015200:rar default project:BI vm1061),
+ 10978=HsHostingAssetRealEntity(MANAGED_SERVER, vm1050, HA vm1050, D-1000000:hsh default project:BI vm1050),
+ 11061=HsHostingAssetRealEntity(MANAGED_SERVER, vm1068, HA vm1068, D-1000300:mim default project:BI vm1068),
+ 11094=HsHostingAssetRealEntity(MANAGED_WEBSPACE, lug00, HA lug00, MANAGED_SERVER:vm1068, D-1000300:mim default project:BI lug00),
+ 11112=HsHostingAssetRealEntity(MANAGED_WEBSPACE, mim00, HA mim00, MANAGED_SERVER:vm1068, D-1000300:mim default project:BI mim00),
+ 11447=HsHostingAssetRealEntity(MANAGED_SERVER, vm1093, HA vm1093, D-1000000:hsh default project:BI vm1093)
}
""");
assertThat(firstOfEachType(
@@ -290,13 +297,13 @@ public class ImportHostingAssets extends ImportOfficeData {
HsBookingItemType.MANAGED_WEBSPACE))
.isEqualToIgnoringWhitespace("""
{
- 3000630=HsBookingItemEntity(D-1000000:hsh default project, MANAGED_WEBSPACE, [2001-06-01,), BI hsh00, {"HDD": 10, "Multi": 25, "SLA-Platform": "EXT24H", "SSD": 16, "Traffic": 50}),
- 3000968=HsBookingItemEntity(D-1015200:rar default project, MANAGED_SERVER, [2013-04-01,), BI vm1061, {"CPU": 6, "HDD": 250, "RAM": 14, "SLA-EMail": true, "SLA-Maria": true, "SLA-Office": true, "SLA-PgSQL": true, "SLA-Platform": "EXT4H", "SLA-Web": true, "SSD": 375, "Traffic": 250}),
- 3000978=HsBookingItemEntity(D-1000000:hsh default project, MANAGED_SERVER, [2013-04-01,), BI vm1050, {"CPU": 4, "HDD": 250, "RAM": 32, "SLA-EMail": true, "SLA-Maria": true, "SLA-Office": true, "SLA-PgSQL": true, "SLA-Platform": "EXT4H", "SLA-Web": true, "SSD": 150, "Traffic": 250}),
- 3001061=HsBookingItemEntity(D-1000300:mim default project, MANAGED_SERVER, [2013-08-19,), BI vm1068, {"CPU": 2, "HDD": 250, "RAM": 4, "SLA-EMail": true, "SLA-Maria": true, "SLA-Office": true, "SLA-PgSQL": true, "SLA-Platform": "EXT2H", "SLA-Web": true, "Traffic": 250}),
- 3001094=HsBookingItemEntity(D-1000300:mim default project, MANAGED_WEBSPACE, [2013-09-10,), BI lug00, {"Multi": 5, "SLA-Platform": "EXT24H", "SSD": 1, "Traffic": 10}),
- 3001112=HsBookingItemEntity(D-1000300:mim default project, MANAGED_WEBSPACE, [2013-09-17,), BI mim00, {"Multi": 5, "SLA-Platform": "EXT24H", "SSD": 3, "Traffic": 20}),
- 3001447=HsBookingItemEntity(D-1000000:hsh default project, MANAGED_SERVER, [2014-11-28,), BI vm1093, {"CPU": 6, "HDD": 500, "RAM": 16, "SLA-EMail": true, "SLA-Maria": true, "SLA-Office": true, "SLA-PgSQL": true, "SLA-Platform": "EXT4H", "SLA-Web": true, "SSD": 300, "Traffic": 250}),
+ 3010630=HsBookingItemEntity(D-1000000:hsh default project, MANAGED_WEBSPACE, [2001-06-01,), BI hsh00, {"HDD": 10, "Multi": 25, "SLA-Platform": "EXT24H", "SSD": 16, "Traffic": 50}),
+ 3010968=HsBookingItemEntity(D-1015200:rar default project, MANAGED_SERVER, [2013-04-01,), BI vm1061, {"CPU": 6, "HDD": 250, "RAM": 14, "SLA-EMail": true, "SLA-Maria": true, "SLA-Office": true, "SLA-PgSQL": true, "SLA-Platform": "EXT4H", "SLA-Web": true, "SSD": 375, "Traffic": 250}),
+ 3010978=HsBookingItemEntity(D-1000000:hsh default project, MANAGED_SERVER, [2013-04-01,), BI vm1050, {"CPU": 4, "HDD": 250, "RAM": 32, "SLA-EMail": true, "SLA-Maria": true, "SLA-Office": true, "SLA-PgSQL": true, "SLA-Platform": "EXT4H", "SLA-Web": true, "SSD": 150, "Traffic": 250}),
+ 3011061=HsBookingItemEntity(D-1000300:mim default project, MANAGED_SERVER, [2013-08-19,), BI vm1068, {"CPU": 2, "HDD": 250, "RAM": 4, "SLA-EMail": true, "SLA-Maria": true, "SLA-Office": true, "SLA-PgSQL": true, "SLA-Platform": "EXT2H", "SLA-Web": true, "Traffic": 250}),
+ 3011094=HsBookingItemEntity(D-1000300:mim default project, MANAGED_WEBSPACE, [2013-09-10,), BI lug00, {"Multi": 5, "SLA-Platform": "EXT24H", "SSD": 1, "Traffic": 10}),
+ 3011112=HsBookingItemEntity(D-1000300:mim default project, MANAGED_WEBSPACE, [2013-09-17,), BI mim00, {"Multi": 5, "SLA-Platform": "EXT24H", "SSD": 3, "Traffic": 20}),
+ 3011447=HsBookingItemEntity(D-1000000:hsh default project, MANAGED_SERVER, [2014-11-28,), BI vm1093, {"CPU": 6, "HDD": 500, "RAM": 16, "SLA-EMail": true, "SLA-Maria": true, "SLA-Office": true, "SLA-PgSQL": true, "SLA-Platform": "EXT4H", "SLA-Web": true, "SSD": 300, "Traffic": 250}),
3019959=HsBookingItemEntity(D-1101900:dph default project, MANAGED_WEBSPACE, [2021-06-02,), BI dph00, {"Multi": 1, "SLA-Platform": "EXT24H", "SSD": 25, "Traffic": 20}),
3023611=HsBookingItemEntity(D-1101800:wws default project, CLOUD_SERVER, [2022-08-10,), BI vm2097, {"CPU": 8, "RAM": 12, "SLA-Infrastructure": "EXT4H", "SSD": 25, "Traffic": 250})
}
@@ -319,22 +326,22 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyUnixUsers() {
assumeThatWeAreImportingControlledTestData();
- assertThat(firstOfEachType(15, UNIX_USER)).isEqualToIgnoringWhitespace("""
+ assertThat(firstOfEach(15, unixUserAssets)).isEqualToIgnoringWhitespace("""
{
- 4005803=HsHostingAssetRealEntity(UNIX_USER, lug00, LUGs, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 102090}),
- 4005805=HsHostingAssetRealEntity(UNIX_USER, lug00-wla.1, Paul Klemm, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 102091}),
- 4005809=HsHostingAssetRealEntity(UNIX_USER, lug00-wla.2, Walter Müller, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 8, "SSD soft quota": 4, "locked": false, "shell": "/bin/bash", "userid": 102093}),
- 4005811=HsHostingAssetRealEntity(UNIX_USER, lug00-ola.a, LUG OLA - POP a, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/usr/bin/passwd", "userid": 102094}),
- 4005813=HsHostingAssetRealEntity(UNIX_USER, lug00-ola.b, LUG OLA - POP b, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/usr/bin/passwd", "userid": 102095}),
- 4005835=HsHostingAssetRealEntity(UNIX_USER, lug00-test, Test, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 1024, "SSD soft quota": 1024, "locked": false, "shell": "/usr/bin/passwd", "userid": 102106}),
- 4005964=HsHostingAssetRealEntity(UNIX_USER, mim00, Michael Mellis, MANAGED_WEBSPACE:mim00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 102147}),
- 4005966=HsHostingAssetRealEntity(UNIX_USER, mim00-1981, Jahrgangstreffen 1981, MANAGED_WEBSPACE:mim00, {"SSD hard quota": 256, "SSD soft quota": 128, "locked": false, "shell": "/bin/bash", "userid": 102148}),
- 4005990=HsHostingAssetRealEntity(UNIX_USER, mim00-mail, Mailbox, MANAGED_WEBSPACE:mim00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 102160}),
- 4100705=HsHostingAssetRealEntity(UNIX_USER, hsh00-mim, Michael Mellis, MANAGED_WEBSPACE:hsh00, {"HDD hard quota": 0, "HDD soft quota": 0, "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/false", "userid": 10003}),
- 4100824=HsHostingAssetRealEntity(UNIX_USER, hsh00, Hostsharing Paket, MANAGED_WEBSPACE:hsh00, {"HDD hard quota": 0, "HDD soft quota": 0, "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 10000}),
- 4167846=HsHostingAssetRealEntity(UNIX_USER, hsh00-dph, hsh00-uph, MANAGED_WEBSPACE:hsh00, {"HDD hard quota": 0, "HDD soft quota": 0, "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/false", "userid": 110568}),
- 4169546=HsHostingAssetRealEntity(UNIX_USER, dph00, Reinhard Wiese, MANAGED_WEBSPACE:dph00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 110593}),
- 4169596=HsHostingAssetRealEntity(UNIX_USER, dph00-dph, Domain admin, MANAGED_WEBSPACE:dph00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 110594})
+ 100705=HsHostingAssetRealEntity(UNIX_USER, hsh00-mim, Michael Mellis, MANAGED_WEBSPACE:hsh00, {"HDD hard quota": 0, "HDD soft quota": 0, "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/false", "userid": 10003}),
+ 100824=HsHostingAssetRealEntity(UNIX_USER, hsh00, Hostsharing Paket, MANAGED_WEBSPACE:hsh00, {"HDD hard quota": 0, "HDD soft quota": 0, "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 10000}),
+ 167846=HsHostingAssetRealEntity(UNIX_USER, hsh00-dph, hsh00-uph, MANAGED_WEBSPACE:hsh00, {"HDD hard quota": 0, "HDD soft quota": 0, "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/false", "userid": 110568}),
+ 169546=HsHostingAssetRealEntity(UNIX_USER, dph00, Reinhard Wiese, MANAGED_WEBSPACE:dph00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 110593}),
+ 169596=HsHostingAssetRealEntity(UNIX_USER, dph00-dph, Domain admin, MANAGED_WEBSPACE:dph00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 110594}),
+ 5803=HsHostingAssetRealEntity(UNIX_USER, lug00, LUGs, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 102090}),
+ 5805=HsHostingAssetRealEntity(UNIX_USER, lug00-wla.1, Paul Klemm, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 102091}),
+ 5809=HsHostingAssetRealEntity(UNIX_USER, lug00-wla.2, Walter Müller, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 8, "SSD soft quota": 4, "locked": false, "shell": "/bin/bash", "userid": 102093}),
+ 5811=HsHostingAssetRealEntity(UNIX_USER, lug00-ola.a, LUG OLA - POP a, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/usr/bin/passwd", "userid": 102094}),
+ 5813=HsHostingAssetRealEntity(UNIX_USER, lug00-ola.b, LUG OLA - POP b, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/usr/bin/passwd", "userid": 102095}),
+ 5835=HsHostingAssetRealEntity(UNIX_USER, lug00-test, Test, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 1024, "SSD soft quota": 1024, "locked": false, "shell": "/usr/bin/passwd", "userid": 102106}),
+ 5964=HsHostingAssetRealEntity(UNIX_USER, mim00, Michael Mellis, MANAGED_WEBSPACE:mim00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 102147}),
+ 5966=HsHostingAssetRealEntity(UNIX_USER, mim00-1981, Jahrgangstreffen 1981, MANAGED_WEBSPACE:mim00, {"SSD hard quota": 256, "SSD soft quota": 128, "locked": false, "shell": "/bin/bash", "userid": 102148}),
+ 5990=HsHostingAssetRealEntity(UNIX_USER, mim00-mail, Mailbox, MANAGED_WEBSPACE:mim00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 102160})
}
""");
}
@@ -355,17 +362,17 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyEmailAliases() {
assumeThatWeAreImportingControlledTestData();
- assertThat(firstOfEachType(15, EMAIL_ALIAS)).isEqualToIgnoringWhitespace("""
+ assertThat(firstOfEach(15, emailAliasAssets)).isEqualToIgnoringWhitespace("""
{
- 5002403=HsHostingAssetRealEntity(EMAIL_ALIAS, lug00, lug00, MANAGED_WEBSPACE:lug00, {"target": [ "michael.mellis@example.com" ]}),
- 5002405=HsHostingAssetRealEntity(EMAIL_ALIAS, lug00-wla-listar, lug00-wla-listar, MANAGED_WEBSPACE:lug00, {"target": [ "|/home/pacs/lug00/users/in/mailinglist/listar" ]}),
- 5002429=HsHostingAssetRealEntity(EMAIL_ALIAS, mim00, mim00, MANAGED_WEBSPACE:mim00, {"target": [ "mim12-mi@mim12.hostsharing.net" ]}),
- 5002431=HsHostingAssetRealEntity(EMAIL_ALIAS, mim00-abruf, mim00-abruf, MANAGED_WEBSPACE:mim00, {"target": [ "michael.mellis@hostsharing.net" ]}),
- 5002449=HsHostingAssetRealEntity(EMAIL_ALIAS, mim00-hhfx, mim00-hhfx, MANAGED_WEBSPACE:mim00, {"target": [ "mim00-hhfx", "|/usr/bin/formail -I 'Reply-To: hamburger-fx@example.net' | /usr/lib/sendmail mim00-hhfx-l" ]}),
- 5002451=HsHostingAssetRealEntity(EMAIL_ALIAS, mim00-hhfx-l, mim00-hhfx-l, MANAGED_WEBSPACE:mim00, {"target": [ ":include:/home/pacs/mim00/etc/hhfx.list" ]}),
- 5002454=HsHostingAssetRealEntity(EMAIL_ALIAS, mim00-dev.null, mim00-dev.null, MANAGED_WEBSPACE:mim00, {"target": [ "/dev/null" ]}),
- 5002455=HsHostingAssetRealEntity(EMAIL_ALIAS, mim00-1_with_space, mim00-1_with_space, MANAGED_WEBSPACE:mim00, {"target": [ "|/home/pacs/mim00/install/corpslistar/listar" ]}),
- 5002456=HsHostingAssetRealEntity(EMAIL_ALIAS, mim00-1_with_single_quotes, mim00-1_with_single_quotes, MANAGED_WEBSPACE:mim00, {"target": [ "|/home/pacs/rir00/mailinglist/ecartis -r kybs06-intern" ]})
+ 2403=HsHostingAssetRealEntity(EMAIL_ALIAS, lug00, lug00, MANAGED_WEBSPACE:lug00, {"target": [ "michael.mellis@example.com" ]}),
+ 2405=HsHostingAssetRealEntity(EMAIL_ALIAS, lug00-wla-listar, lug00-wla-listar, MANAGED_WEBSPACE:lug00, {"target": [ "|/home/pacs/lug00/users/in/mailinglist/listar" ]}),
+ 2429=HsHostingAssetRealEntity(EMAIL_ALIAS, mim00, mim00, MANAGED_WEBSPACE:mim00, {"target": [ "mim12-mi@mim12.hostsharing.net" ]}),
+ 2431=HsHostingAssetRealEntity(EMAIL_ALIAS, mim00-abruf, mim00-abruf, MANAGED_WEBSPACE:mim00, {"target": [ "michael.mellis@hostsharing.net" ]}),
+ 2449=HsHostingAssetRealEntity(EMAIL_ALIAS, mim00-hhfx, mim00-hhfx, MANAGED_WEBSPACE:mim00, {"target": [ "mim00-hhfx", "|/usr/bin/formail -I 'Reply-To: hamburger-fx@example.net' | /usr/lib/sendmail mim00-hhfx-l" ]}),
+ 2451=HsHostingAssetRealEntity(EMAIL_ALIAS, mim00-hhfx-l, mim00-hhfx-l, MANAGED_WEBSPACE:mim00, {"target": [ ":include:/home/pacs/mim00/etc/hhfx.list" ]}),
+ 2454=HsHostingAssetRealEntity(EMAIL_ALIAS, mim00-dev.null, mim00-dev.null, MANAGED_WEBSPACE:mim00, {"target": [ "/dev/null" ]}),
+ 2455=HsHostingAssetRealEntity(EMAIL_ALIAS, mim00-1_with_space, mim00-1_with_space, MANAGED_WEBSPACE:mim00, {"target": [ "|/home/pacs/mim00/install/corpslistar/listar" ]}),
+ 2456=HsHostingAssetRealEntity(EMAIL_ALIAS, mim00-1_with_single_quotes, mim00-1_with_single_quotes, MANAGED_WEBSPACE:mim00, {"target": [ "|/home/pacs/rir00/mailinglist/ecartis -r kybs06-intern" ]})
}
""");
}
@@ -373,7 +380,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Test
@Order(15000)
void createDatabaseInstances() {
- createDatabaseInstances(hostingAssets.values().stream().filter(ha -> ha.getType() == MANAGED_SERVER).toList());
+ createDatabaseInstances(packetAssets.values().stream().filter(ha -> ha.getType() == MANAGED_SERVER).toList());
}
@Test
@@ -381,16 +388,16 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyDatabaseInstances() {
assumeThatWeAreImportingControlledTestData();
- assertThat(firstOfEachType(5, PGSQL_INSTANCE, MARIADB_INSTANCE)).isEqualToIgnoringWhitespace("""
+ assertThat(firstOfEach(8, dbInstanceAssets)).isEqualToIgnoringWhitespace("""
{
- 6000000=HsHostingAssetRealEntity(PGSQL_INSTANCE, vm1061|PgSql.default, vm1061-PostgreSQL default instance, MANAGED_SERVER:vm1061),
- 6000001=HsHostingAssetRealEntity(MARIADB_INSTANCE, vm1061|MariaDB.default, vm1061-MariaDB default instance, MANAGED_SERVER:vm1061),
- 6000002=HsHostingAssetRealEntity(PGSQL_INSTANCE, vm1050|PgSql.default, vm1050-PostgreSQL default instance, MANAGED_SERVER:vm1050),
- 6000003=HsHostingAssetRealEntity(MARIADB_INSTANCE, vm1050|MariaDB.default, vm1050-MariaDB default instance, MANAGED_SERVER:vm1050),
- 6000004=HsHostingAssetRealEntity(PGSQL_INSTANCE, vm1068|PgSql.default, vm1068-PostgreSQL default instance, MANAGED_SERVER:vm1068),
- 6000005=HsHostingAssetRealEntity(MARIADB_INSTANCE, vm1068|MariaDB.default, vm1068-MariaDB default instance, MANAGED_SERVER:vm1068),
- 6000006=HsHostingAssetRealEntity(PGSQL_INSTANCE, vm1093|PgSql.default, vm1093-PostgreSQL default instance, MANAGED_SERVER:vm1093),
- 6000007=HsHostingAssetRealEntity(MARIADB_INSTANCE, vm1093|MariaDB.default, vm1093-MariaDB default instance, MANAGED_SERVER:vm1093)
+ 0=HsHostingAssetRealEntity(PGSQL_INSTANCE, vm1061|PgSql.default, vm1061-PostgreSQL default instance, MANAGED_SERVER:vm1061),
+ 1=HsHostingAssetRealEntity(MARIADB_INSTANCE, vm1061|MariaDB.default, vm1061-MariaDB default instance, MANAGED_SERVER:vm1061),
+ 2=HsHostingAssetRealEntity(PGSQL_INSTANCE, vm1050|PgSql.default, vm1050-PostgreSQL default instance, MANAGED_SERVER:vm1050),
+ 3=HsHostingAssetRealEntity(MARIADB_INSTANCE, vm1050|MariaDB.default, vm1050-MariaDB default instance, MANAGED_SERVER:vm1050),
+ 4=HsHostingAssetRealEntity(PGSQL_INSTANCE, vm1068|PgSql.default, vm1068-PostgreSQL default instance, MANAGED_SERVER:vm1068),
+ 5=HsHostingAssetRealEntity(MARIADB_INSTANCE, vm1068|MariaDB.default, vm1068-MariaDB default instance, MANAGED_SERVER:vm1068),
+ 6=HsHostingAssetRealEntity(PGSQL_INSTANCE, vm1093|PgSql.default, vm1093-PostgreSQL default instance, MANAGED_SERVER:vm1093),
+ 7=HsHostingAssetRealEntity(MARIADB_INSTANCE, vm1093|MariaDB.default, vm1093-MariaDB default instance, MANAGED_SERVER:vm1093)
}
""");
}
@@ -411,18 +418,18 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyDatabaseUsers() {
assumeThatWeAreImportingControlledTestData();
- assertThat(firstOfEachType(5, PGSQL_USER, MARIADB_USER)).isEqualToIgnoringWhitespace("""
+ assertThat(firstOfEach(10, dbUserAssets)).isEqualToIgnoringWhitespace("""
{
- 7001857=HsHostingAssetRealEntity(PGSQL_USER, PGU|hsh00, hsh00, MANAGED_WEBSPACE:hsh00, PGSQL_INSTANCE:vm1050|PgSql.default, { "password": "SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$JDiZmaxU+O+ByArLY/CkYZ8HbOk0r/I8LyABnno5gQs=:NI3T500/63dzI1B07Jh3UtQGlukS6JxuS0XoxM/QgAc="}),
- 7001858=HsHostingAssetRealEntity(MARIADB_USER, MAU|hsh00, hsh00, MANAGED_WEBSPACE:hsh00, MARIADB_INSTANCE:vm1050|MariaDB.default, { "password": "*59067A36BA197AD0A47D74909296C5B002A0FB9F"}),
- 7001859=HsHostingAssetRealEntity(PGSQL_USER, PGU|hsh00_vorstand, hsh00_vorstand, MANAGED_WEBSPACE:hsh00, PGSQL_INSTANCE:vm1050|PgSql.default, { "password": "SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$54Wh+OGx/GaIvAia+I3k78jHGhqmYwe4+iLssmH5zhk=:D4Gq1z2Li2BVSaZrz1azDrs6pwsIzhq4+suK1Hh6ZIg="}),
- 7001860=HsHostingAssetRealEntity(PGSQL_USER, PGU|hsh00_hsadmin, hsh00_hsadmin, MANAGED_WEBSPACE:hsh00, PGSQL_INSTANCE:vm1050|PgSql.default, { "password": "SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$54Wh+OGx/GaIvAia+I3k78jHGhqmYwe4+iLssmH5zhk=:D4Gq1z2Li2BVSaZrz1azDrs6pwsIzhq4+suK1Hh6ZIg="}),
- 7001861=HsHostingAssetRealEntity(PGSQL_USER, PGU|hsh00_hsadmin_ro, hsh00_hsadmin_ro, MANAGED_WEBSPACE:hsh00, PGSQL_INSTANCE:vm1050|PgSql.default, { "password": "SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$UhJnJJhmKANbcaG+izWK3rz5bmhhluSuiCJFlUmDVI8=:6AC4mbLfJGiGlEOWhpz9BivvMODhLLHOnRnnktJPgn8="}),
- 7004908=HsHostingAssetRealEntity(MARIADB_USER, MAU|hsh00_mantis, hsh00_mantis, MANAGED_WEBSPACE:hsh00, MARIADB_INSTANCE:vm1050|MariaDB.default, { "password": "*EA4C0889A22AAE66BBEBC88161E8CF862D73B44F"}),
- 7004909=HsHostingAssetRealEntity(MARIADB_USER, MAU|hsh00_mantis_ro, hsh00_mantis_ro, MANAGED_WEBSPACE:hsh00, MARIADB_INSTANCE:vm1050|MariaDB.default, { "password": "*B3BB6D0DA2EC01958616E9B3BCD2926FE8C38383"}),
- 7004931=HsHostingAssetRealEntity(PGSQL_USER, PGU|hsh00_phpPgSqlAdmin, hsh00_phpPgSqlAdmin, MANAGED_WEBSPACE:hsh00, PGSQL_INSTANCE:vm1050|PgSql.default, { "password": "SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$UhJnJJhmKANbcaG+izWK3rz5bmhhluSuiCJFlUmDVI8=:6AC4mbLfJGiGlEOWhpz9BivvMODhLLHOnRnnktJPgn8="}),
- 7004932=HsHostingAssetRealEntity(MARIADB_USER, MAU|hsh00_phpMyAdmin, hsh00_phpMyAdmin, MANAGED_WEBSPACE:hsh00, MARIADB_INSTANCE:vm1050|MariaDB.default, { "password": "*3188720B1889EF5447C722629765F296F40257C2"}),
- 7007520=HsHostingAssetRealEntity(MARIADB_USER, MAU|lug00_wla, lug00_wla, MANAGED_WEBSPACE:lug00, MARIADB_INSTANCE:vm1068|MariaDB.default, { "password": "*11667C0EAC42BF8B0295ABEDC7D2868A835E4DB5"})
+ 1857=HsHostingAssetRealEntity(PGSQL_USER, PGU|hsh00, hsh00, MANAGED_WEBSPACE:hsh00, PGSQL_INSTANCE:vm1050|PgSql.default, { "password": "SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$JDiZmaxU+O+ByArLY/CkYZ8HbOk0r/I8LyABnno5gQs=:NI3T500/63dzI1B07Jh3UtQGlukS6JxuS0XoxM/QgAc="}),
+ 1858=HsHostingAssetRealEntity(MARIADB_USER, MAU|hsh00, hsh00, MANAGED_WEBSPACE:hsh00, MARIADB_INSTANCE:vm1050|MariaDB.default, { "password": "*59067A36BA197AD0A47D74909296C5B002A0FB9F"}),
+ 1859=HsHostingAssetRealEntity(PGSQL_USER, PGU|hsh00_vorstand, hsh00_vorstand, MANAGED_WEBSPACE:hsh00, PGSQL_INSTANCE:vm1050|PgSql.default, { "password": "SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$54Wh+OGx/GaIvAia+I3k78jHGhqmYwe4+iLssmH5zhk=:D4Gq1z2Li2BVSaZrz1azDrs6pwsIzhq4+suK1Hh6ZIg="}),
+ 1860=HsHostingAssetRealEntity(PGSQL_USER, PGU|hsh00_hsadmin, hsh00_hsadmin, MANAGED_WEBSPACE:hsh00, PGSQL_INSTANCE:vm1050|PgSql.default, { "password": "SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$54Wh+OGx/GaIvAia+I3k78jHGhqmYwe4+iLssmH5zhk=:D4Gq1z2Li2BVSaZrz1azDrs6pwsIzhq4+suK1Hh6ZIg="}),
+ 1861=HsHostingAssetRealEntity(PGSQL_USER, PGU|hsh00_hsadmin_ro, hsh00_hsadmin_ro, MANAGED_WEBSPACE:hsh00, PGSQL_INSTANCE:vm1050|PgSql.default, { "password": "SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$UhJnJJhmKANbcaG+izWK3rz5bmhhluSuiCJFlUmDVI8=:6AC4mbLfJGiGlEOWhpz9BivvMODhLLHOnRnnktJPgn8="}),
+ 4908=HsHostingAssetRealEntity(MARIADB_USER, MAU|hsh00_mantis, hsh00_mantis, MANAGED_WEBSPACE:hsh00, MARIADB_INSTANCE:vm1050|MariaDB.default, { "password": "*EA4C0889A22AAE66BBEBC88161E8CF862D73B44F"}),
+ 4909=HsHostingAssetRealEntity(MARIADB_USER, MAU|hsh00_mantis_ro, hsh00_mantis_ro, MANAGED_WEBSPACE:hsh00, MARIADB_INSTANCE:vm1050|MariaDB.default, { "password": "*B3BB6D0DA2EC01958616E9B3BCD2926FE8C38383"}),
+ 4931=HsHostingAssetRealEntity(PGSQL_USER, PGU|hsh00_phpPgSqlAdmin, hsh00_phpPgSqlAdmin, MANAGED_WEBSPACE:hsh00, PGSQL_INSTANCE:vm1050|PgSql.default, { "password": "SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$UhJnJJhmKANbcaG+izWK3rz5bmhhluSuiCJFlUmDVI8=:6AC4mbLfJGiGlEOWhpz9BivvMODhLLHOnRnnktJPgn8="}),
+ 4932=HsHostingAssetRealEntity(MARIADB_USER, MAU|hsh00_phpMyAdmin, hsh00_phpMyAdmin, MANAGED_WEBSPACE:hsh00, MARIADB_INSTANCE:vm1050|MariaDB.default, { "password": "*3188720B1889EF5447C722629765F296F40257C2"}),
+ 7520=HsHostingAssetRealEntity(MARIADB_USER, MAU|lug00_wla, lug00_wla, MANAGED_WEBSPACE:lug00, MARIADB_INSTANCE:vm1068|MariaDB.default, { "password": "*11667C0EAC42BF8B0295ABEDC7D2868A835E4DB5"})
}
""");
}
@@ -443,18 +450,18 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyDatabases() {
assumeThatWeAreImportingControlledTestData();
- assertThat(firstOfEachType(5, PGSQL_DATABASE, MARIADB_DATABASE)).isEqualToIgnoringWhitespace("""
+ assertThat(firstOfEach(10, dbAssets)).isEqualToIgnoringWhitespace("""
{
- 8000077=HsHostingAssetRealEntity(PGSQL_DATABASE, PGD|hsh00_vorstand, hsh00_vorstand, PGSQL_USER:PGU|hsh00_vorstand, { "encoding": "LATIN1"}),
- 8000786=HsHostingAssetRealEntity(MARIADB_DATABASE, MAD|hsh00_addr, hsh00_addr, MARIADB_USER:MAU|hsh00, { "encoding": "latin1"}),
- 8000805=HsHostingAssetRealEntity(MARIADB_DATABASE, MAD|hsh00_db2, hsh00_db2, MARIADB_USER:MAU|hsh00, { "encoding": "latin1"}),
- 8001858=HsHostingAssetRealEntity(PGSQL_DATABASE, PGD|hsh00, hsh00, PGSQL_USER:PGU|hsh00, { "encoding": "LATIN1"}),
- 8001860=HsHostingAssetRealEntity(PGSQL_DATABASE, PGD|hsh00_hsadmin, hsh00_hsadmin, PGSQL_USER:PGU|hsh00_hsadmin, { "encoding": "UTF8"}),
- 8004908=HsHostingAssetRealEntity(MARIADB_DATABASE, MAD|hsh00_mantis, hsh00_mantis, MARIADB_USER:MAU|hsh00_mantis, { "encoding": "utf8"}),
- 8004931=HsHostingAssetRealEntity(PGSQL_DATABASE, PGD|hsh00_phpPgSqlAdmin, hsh00_phpPgSqlAdmin, PGSQL_USER:PGU|hsh00_phpPgSqlAdmin, { "encoding": "UTF8"}),
- 8004932=HsHostingAssetRealEntity(PGSQL_DATABASE, PGD|hsh00_phpPgSqlAdmin_new, hsh00_phpPgSqlAdmin_new, PGSQL_USER:PGU|hsh00_phpPgSqlAdmin, { "encoding": "UTF8"}),
- 8004941=HsHostingAssetRealEntity(MARIADB_DATABASE, MAD|hsh00_phpMyAdmin, hsh00_phpMyAdmin, MARIADB_USER:MAU|hsh00_phpMyAdmin, { "encoding": "utf8"}),
- 8004942=HsHostingAssetRealEntity(MARIADB_DATABASE, MAD|hsh00_phpMyAdmin_old, hsh00_phpMyAdmin_old, MARIADB_USER:MAU|hsh00_phpMyAdmin, { "encoding": "utf8"})
+ 1077=HsHostingAssetRealEntity(PGSQL_DATABASE, PGD|hsh00_vorstand, hsh00_vorstand, PGSQL_USER:PGU|hsh00_vorstand, {"encoding": "LATIN1"}),
+ 1786=HsHostingAssetRealEntity(MARIADB_DATABASE, MAD|hsh00_addr, hsh00_addr, MARIADB_USER:MAU|hsh00, {"encoding": "latin1"}),
+ 1805=HsHostingAssetRealEntity(MARIADB_DATABASE, MAD|hsh00_dba, hsh00_dba, MARIADB_USER:MAU|hsh00, {"encoding": "latin1"}),
+ 1858=HsHostingAssetRealEntity(PGSQL_DATABASE, PGD|hsh00, hsh00, PGSQL_USER:PGU|hsh00, {"encoding": "LATIN1"}),
+ 1860=HsHostingAssetRealEntity(PGSQL_DATABASE, PGD|hsh00_hsadmin, hsh00_hsadmin, PGSQL_USER:PGU|hsh00_hsadmin, {"encoding": "UTF8"}),
+ 4908=HsHostingAssetRealEntity(MARIADB_DATABASE, MAD|hsh00_mantis, hsh00_mantis, MARIADB_USER:MAU|hsh00_mantis, {"encoding": "utf8"}),
+ 4931=HsHostingAssetRealEntity(PGSQL_DATABASE, PGD|hsh00_phpPgSqlAdmin, hsh00_phpPgSqlAdmin, PGSQL_USER:PGU|hsh00_phpPgSqlAdmin, {"encoding": "UTF8"}),
+ 4932=HsHostingAssetRealEntity(PGSQL_DATABASE, PGD|hsh00_phpPgSqlAdmin_new, hsh00_phpPgSqlAdmin_new, PGSQL_USER:PGU|hsh00_phpPgSqlAdmin, {"encoding": "UTF8"}),
+ 4941=HsHostingAssetRealEntity(MARIADB_DATABASE, MAD|hsh00_phpMyAdmin, hsh00_phpMyAdmin, MARIADB_USER:MAU|hsh00_phpMyAdmin, {"encoding": "utf8"}),
+ 4942=HsHostingAssetRealEntity(MARIADB_DATABASE, MAD|hsh00_phpMyAdmin_old, hsh00_phpMyAdmin_old, MARIADB_USER:MAU|hsh00_phpMyAdmin, {"encoding": "utf8"})
}
""");
}
@@ -490,59 +497,107 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyDomains() {
assumeThatWeAreImportingControlledTestData();
- assertThat(firstOfEachType(
- 12,
- DOMAIN_SETUP,
- DOMAIN_DNS_SETUP,
- DOMAIN_HTTP_SETUP,
- DOMAIN_MBOX_SETUP,
- DOMAIN_SMTP_SETUP)).isEqualToIgnoringWhitespace("""
+ assertThat(firstOfEach(12, domainSetupAssets)).isEqualToIgnoringWhitespace("""
{
- 10004531=HsHostingAssetRealEntity(DOMAIN_SETUP, l-u-g.org, l-u-g.org),
- 10004532=HsHostingAssetRealEntity(DOMAIN_SETUP, linuxfanboysngirls.de, linuxfanboysngirls.de),
- 10004534=HsHostingAssetRealEntity(DOMAIN_SETUP, lug-mars.de, lug-mars.de),
- 10004581=HsHostingAssetRealEntity(DOMAIN_SETUP, 1981.ist-im-netz.de, 1981.ist-im-netz.de, DOMAIN_SETUP:ist-im-netz.de),
- 10004587=HsHostingAssetRealEntity(DOMAIN_SETUP, mellis.de, mellis.de),
- 10004589=HsHostingAssetRealEntity(DOMAIN_SETUP, ist-im-netz.de, ist-im-netz.de),
- 10004600=HsHostingAssetRealEntity(DOMAIN_SETUP, waera.de, waera.de),
- 10004604=HsHostingAssetRealEntity(DOMAIN_SETUP, xn--wra-qla.de, wära.de),
- 10027662=HsHostingAssetRealEntity(DOMAIN_SETUP, dph-netzwerk.de, dph-netzwerk.de),
- 11004531=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, l-u-g.org|DNS, DNS-Setup für l-u-g.org, DOMAIN_SETUP:l-u-g.org, MANAGED_WEBSPACE:lug00, {"TTL": 21600, "auto-A-RR": true, "auto-AAAA-RR": false, "auto-AUTOCONFIG-RR": false, "auto-AUTODISCOVER-RR": false, "auto-DKIM-RR": false, "auto-MAILSERVICES-RR": false, "auto-MX-RR": true, "auto-NS-RR": true, "auto-SOA": true, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": true, "auto-WILDCARD-AAAA-RR": false, "auto-WILDCARD-MX-RR": true, "auto-WILDCARD-SPF-RR": false, "user-RR": [ ]}),
- 11004532=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, linuxfanboysngirls.de|DNS, DNS-Setup für linuxfanboysngirls.de, DOMAIN_SETUP:linuxfanboysngirls.de, MANAGED_WEBSPACE:lug00, {"TTL": 21600, "auto-A-RR": true, "auto-AAAA-RR": false, "auto-AUTOCONFIG-RR": false, "auto-AUTODISCOVER-RR": false, "auto-DKIM-RR": false, "auto-MAILSERVICES-RR": false, "auto-MX-RR": true, "auto-NS-RR": true, "auto-SOA": true, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": true, "auto-WILDCARD-AAAA-RR": false, "auto-WILDCARD-MX-RR": true, "auto-WILDCARD-SPF-RR": false, "user-RR": [ ]}),
- 11004534=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, lug-mars.de|DNS, DNS-Setup für lug-mars.de, DOMAIN_SETUP:lug-mars.de, MANAGED_WEBSPACE:lug00, {"TTL": 14400, "auto-A-RR": true, "auto-AAAA-RR": false, "auto-AUTOCONFIG-RR": false, "auto-AUTODISCOVER-RR": false, "auto-DKIM-RR": false, "auto-MAILSERVICES-RR": false, "auto-MX-RR": false, "auto-NS-RR": true, "auto-SOA": false, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": true, "auto-WILDCARD-AAAA-RR": false, "auto-WILDCARD-MX-RR": false, "auto-WILDCARD-SPF-RR": false, "user-RR": [ "lug-mars.de. 14400 IN SOA dns1.hostsharing.net. hostmaster.hostsharing.net. 1611590905 10800 3600 604800 3600", "lug-mars.de. 14400 IN MX 10 mailin1.hostsharing.net.", "lug-mars.de. 14400 IN MX 20 mailin2.hostsharing.net.", "lug-mars.de. 14400 IN MX 30 mailin3.hostsharing.net.", "bbb.lug-mars.de. 14400 IN A 83.223.79.72", "ftp.lug-mars.de. 14400 IN A 83.223.79.72", "www.lug-mars.de. 14400 IN A 83.223.79.72" ]}),
- 11004581=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, 1981.ist-im-netz.de|DNS, DNS-Setup für 1981.ist-im-netz.de, DOMAIN_SETUP:1981.ist-im-netz.de, MANAGED_WEBSPACE:mim00, {"TTL": 21600, "auto-A-RR": true, "auto-AAAA-RR": false, "auto-AUTOCONFIG-RR": false, "auto-AUTODISCOVER-RR": false, "auto-DKIM-RR": false, "auto-MAILSERVICES-RR": false, "auto-MX-RR": true, "auto-NS-RR": true, "auto-SOA": true, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": true, "auto-WILDCARD-AAAA-RR": false, "auto-WILDCARD-MX-RR": true, "auto-WILDCARD-SPF-RR": false, "user-RR": [ ]}),
- 11004587=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, mellis.de|DNS, DNS-Setup für mellis.de, DOMAIN_SETUP:mellis.de, MANAGED_WEBSPACE:mim00, {"TTL": 21600, "auto-A-RR": true, "auto-AAAA-RR": true, "auto-AUTOCONFIG-RR": true, "auto-AUTODISCOVER-RR": true, "auto-DKIM-RR": true, "auto-MAILSERVICES-RR": true, "auto-MX-RR": true, "auto-NS-RR": true, "auto-SOA": true, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": true, "auto-WILDCARD-AAAA-RR": true, "auto-WILDCARD-MX-RR": true, "auto-WILDCARD-SPF-RR": true, "user-RR": [ "dump.hoennig.de. 21600 IN CNAME mih12.hostsharing.net.", "fotos.hoennig.de. 21600 IN CNAME mih12.hostsharing.net.", "maven.hoennig.de. 21600 IN NS dns1.hostsharing.net." ]}),
- 11004589=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, ist-im-netz.de|DNS, DNS-Setup für ist-im-netz.de, DOMAIN_SETUP:ist-im-netz.de, MANAGED_WEBSPACE:mim00, {"TTL": 700, "auto-A-RR": true, "auto-AAAA-RR": false, "auto-AUTOCONFIG-RR": false, "auto-AUTODISCOVER-RR": false, "auto-DKIM-RR": false, "auto-MAILSERVICES-RR": false, "auto-MX-RR": true, "auto-NS-RR": true, "auto-SOA": true, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": true, "auto-WILDCARD-AAAA-RR": false, "auto-WILDCARD-MX-RR": false, "auto-WILDCARD-SPF-RR": false, "user-RR": [ ]}),
- 11004600=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, waera.de|DNS, DNS-Setup für waera.de, DOMAIN_SETUP:waera.de, MANAGED_WEBSPACE:mim00, {"TTL": 21600, "auto-A-RR": false, "auto-AAAA-RR": false, "auto-AUTOCONFIG-RR": false, "auto-AUTODISCOVER-RR": false, "auto-DKIM-RR": false, "auto-MAILSERVICES-RR": false, "auto-MX-RR": false, "auto-NS-RR": false, "auto-SOA": false, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": false, "auto-WILDCARD-AAAA-RR": false, "auto-WILDCARD-MX-RR": false, "auto-WILDCARD-SPF-RR": false, "user-RR": [ ]}),
- 11004604=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, xn--wra-qla.de|DNS, DNS-Setup für wära.de, DOMAIN_SETUP:xn--wra-qla.de, MANAGED_WEBSPACE:mim00, {"TTL": 21600, "auto-A-RR": false, "auto-AAAA-RR": false, "auto-AUTOCONFIG-RR": false, "auto-AUTODISCOVER-RR": false, "auto-DKIM-RR": false, "auto-MAILSERVICES-RR": false, "auto-MX-RR": false, "auto-NS-RR": false, "auto-SOA": false, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": false, "auto-WILDCARD-AAAA-RR": false, "auto-WILDCARD-MX-RR": false, "auto-WILDCARD-SPF-RR": false, "user-RR": [ ]}),
- 11027662=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, dph-netzwerk.de|DNS, DNS-Setup für dph-netzwerk.de, DOMAIN_SETUP:dph-netzwerk.de, MANAGED_WEBSPACE:dph00, {"TTL": 21600, "auto-A-RR": true, "auto-AAAA-RR": true, "auto-AUTOCONFIG-RR": true, "auto-AUTODISCOVER-RR": true, "auto-DKIM-RR": false, "auto-MAILSERVICES-RR": true, "auto-MX-RR": true, "auto-NS-RR": true, "auto-SOA": true, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": true, "auto-WILDCARD-AAAA-RR": true, "auto-WILDCARD-MX-RR": true, "auto-WILDCARD-SPF-RR": false, "user-RR": [ "dph-netzwerk.de. 21600 IN TXT \\"v=spf1 include:spf.hostsharing.net ?all\\"", "*.dph-netzwerk.de. 21600 IN TXT \\"v=spf1 include:spf.hostsharing.net ?all\\"" ]}),
- 12004531=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, l-u-g.org|HTTP, HTTP-Setup für l-u-g.org, DOMAIN_SETUP:l-u-g.org, UNIX_USER:lug00, {"autoconfig": false, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": true, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": false, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "*" ]}),
- 12004532=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, linuxfanboysngirls.de|HTTP, HTTP-Setup für linuxfanboysngirls.de, DOMAIN_SETUP:linuxfanboysngirls.de, UNIX_USER:lug00-wla.2, {"autoconfig": false, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": true, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": false, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "*" ]}),
- 12004534=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, lug-mars.de|HTTP, HTTP-Setup für lug-mars.de, DOMAIN_SETUP:lug-mars.de, UNIX_USER:lug00-wla.2, {"autoconfig": false, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": true, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": true, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "www" ]}),
- 12004581=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, 1981.ist-im-netz.de|HTTP, HTTP-Setup für 1981.ist-im-netz.de, DOMAIN_SETUP:1981.ist-im-netz.de, UNIX_USER:mim00, {"autoconfig": false, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": true, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": false, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "*" ]}),
- 12004587=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, mellis.de|HTTP, HTTP-Setup für mellis.de, DOMAIN_SETUP:mellis.de, UNIX_USER:mim00, {"autoconfig": false, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": false, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": true, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "www", "michael", "test", "photos", "static", "input" ]}),
- 12004589=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, ist-im-netz.de|HTTP, HTTP-Setup für ist-im-netz.de, DOMAIN_SETUP:ist-im-netz.de, UNIX_USER:mim00, {"autoconfig": false, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": false, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": true, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "*" ]}),
- 12004600=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, waera.de|HTTP, HTTP-Setup für waera.de, DOMAIN_SETUP:waera.de, UNIX_USER:mim00, {"autoconfig": false, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": true, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": false, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "*" ]}),
- 12004604=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, xn--wra-qla.de|HTTP, HTTP-Setup für wära.de, DOMAIN_SETUP:xn--wra-qla.de, UNIX_USER:mim00, {"autoconfig": false, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": true, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": false, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "*" ]}),
- 12027662=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, dph-netzwerk.de|HTTP, HTTP-Setup für dph-netzwerk.de, DOMAIN_SETUP:dph-netzwerk.de, UNIX_USER:dph00-dph, {"autoconfig": true, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": true, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": true, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "*" ]}),
- 13004531=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, l-u-g.org|MBOX, E-Mail-Empfang-Setup für l-u-g.org, DOMAIN_SETUP:l-u-g.org, MANAGED_WEBSPACE:lug00),
- 13004532=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, linuxfanboysngirls.de|MBOX, E-Mail-Empfang-Setup für linuxfanboysngirls.de, DOMAIN_SETUP:linuxfanboysngirls.de, MANAGED_WEBSPACE:lug00),
- 13004534=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, lug-mars.de|MBOX, E-Mail-Empfang-Setup für lug-mars.de, DOMAIN_SETUP:lug-mars.de, MANAGED_WEBSPACE:lug00),
- 13004581=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, 1981.ist-im-netz.de|MBOX, E-Mail-Empfang-Setup für 1981.ist-im-netz.de, DOMAIN_SETUP:1981.ist-im-netz.de, MANAGED_WEBSPACE:mim00),
- 13004587=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, mellis.de|MBOX, E-Mail-Empfang-Setup für mellis.de, DOMAIN_SETUP:mellis.de, MANAGED_WEBSPACE:mim00),
- 13004589=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, ist-im-netz.de|MBOX, E-Mail-Empfang-Setup für ist-im-netz.de, DOMAIN_SETUP:ist-im-netz.de, MANAGED_WEBSPACE:mim00),
- 13004600=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, waera.de|MBOX, E-Mail-Empfang-Setup für waera.de, DOMAIN_SETUP:waera.de, MANAGED_WEBSPACE:mim00),
- 13004604=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, xn--wra-qla.de|MBOX, E-Mail-Empfang-Setup für wära.de, DOMAIN_SETUP:xn--wra-qla.de, MANAGED_WEBSPACE:mim00),
- 13027662=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, dph-netzwerk.de|MBOX, E-Mail-Empfang-Setup für dph-netzwerk.de, DOMAIN_SETUP:dph-netzwerk.de, MANAGED_WEBSPACE:dph00),
- 14004531=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, l-u-g.org|SMTP, E-Mail-Versand-Setup für l-u-g.org, DOMAIN_SETUP:l-u-g.org, MANAGED_WEBSPACE:lug00),
- 14004532=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, linuxfanboysngirls.de|SMTP, E-Mail-Versand-Setup für linuxfanboysngirls.de, DOMAIN_SETUP:linuxfanboysngirls.de, MANAGED_WEBSPACE:lug00),
- 14004534=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, lug-mars.de|SMTP, E-Mail-Versand-Setup für lug-mars.de, DOMAIN_SETUP:lug-mars.de, MANAGED_WEBSPACE:lug00),
- 14004581=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, 1981.ist-im-netz.de|SMTP, E-Mail-Versand-Setup für 1981.ist-im-netz.de, DOMAIN_SETUP:1981.ist-im-netz.de, MANAGED_WEBSPACE:mim00),
- 14004587=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, mellis.de|SMTP, E-Mail-Versand-Setup für mellis.de, DOMAIN_SETUP:mellis.de, MANAGED_WEBSPACE:mim00),
- 14004589=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, ist-im-netz.de|SMTP, E-Mail-Versand-Setup für ist-im-netz.de, DOMAIN_SETUP:ist-im-netz.de, MANAGED_WEBSPACE:mim00),
- 14004600=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, waera.de|SMTP, E-Mail-Versand-Setup für waera.de, DOMAIN_SETUP:waera.de, MANAGED_WEBSPACE:mim00),
- 14004604=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, xn--wra-qla.de|SMTP, E-Mail-Versand-Setup für wära.de, DOMAIN_SETUP:xn--wra-qla.de, MANAGED_WEBSPACE:mim00),
- 14027662=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, dph-netzwerk.de|SMTP, E-Mail-Versand-Setup für dph-netzwerk.de, DOMAIN_SETUP:dph-netzwerk.de, MANAGED_WEBSPACE:dph00)
+ 4531=HsHostingAssetRealEntity(DOMAIN_SETUP, l-u-g.org, l-u-g.org),
+ 4532=HsHostingAssetRealEntity(DOMAIN_SETUP, linuxfanboysngirls.de, linuxfanboysngirls.de),
+ 4534=HsHostingAssetRealEntity(DOMAIN_SETUP, lug-mars.de, lug-mars.de),
+ 4581=HsHostingAssetRealEntity(DOMAIN_SETUP, 1981.ist-im-netz.de, 1981.ist-im-netz.de, DOMAIN_SETUP:ist-im-netz.de),
+ 4587=HsHostingAssetRealEntity(DOMAIN_SETUP, mellis.de, mellis.de),
+ 4589=HsHostingAssetRealEntity(DOMAIN_SETUP, ist-im-netz.de, ist-im-netz.de),
+ 4600=HsHostingAssetRealEntity(DOMAIN_SETUP, waera.de, waera.de),
+ 4604=HsHostingAssetRealEntity(DOMAIN_SETUP, xn--wra-qla.de, wära.de),
+ 7662=HsHostingAssetRealEntity(DOMAIN_SETUP, dph-netzwerk.de, dph-netzwerk.de)
+ }
+ """);
+
+ assertThat(firstOfEach(12, domainDnsSetupAssets)).isEqualToIgnoringWhitespace("""
+ {
+ 4531=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, l-u-g.org|DNS, DNS-Setup für l-u-g.org, DOMAIN_SETUP:l-u-g.org, MANAGED_WEBSPACE:lug00, {"TTL": 21600, "auto-A-RR": true, "auto-AAAA-RR": false, "auto-AUTOCONFIG-RR": false, "auto-AUTODISCOVER-RR": false, "auto-DKIM-RR": false, "auto-MAILSERVICES-RR": false, "auto-MX-RR": true, "auto-NS-RR": true, "auto-SOA": true, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": true, "auto-WILDCARD-AAAA-RR": false, "auto-WILDCARD-MX-RR": true, "auto-WILDCARD-SPF-RR": false, "user-RR": [ ]}),
+ 4532=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, linuxfanboysngirls.de|DNS, DNS-Setup für linuxfanboysngirls.de, DOMAIN_SETUP:linuxfanboysngirls.de, MANAGED_WEBSPACE:lug00, {"TTL": 21600, "auto-A-RR": true, "auto-AAAA-RR": false, "auto-AUTOCONFIG-RR": false, "auto-AUTODISCOVER-RR": false, "auto-DKIM-RR": false, "auto-MAILSERVICES-RR": false, "auto-MX-RR": true, "auto-NS-RR": true, "auto-SOA": true, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": true, "auto-WILDCARD-AAAA-RR": false, "auto-WILDCARD-MX-RR": true, "auto-WILDCARD-SPF-RR": false, "user-RR": [ ]}),
+ 4534=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, lug-mars.de|DNS, DNS-Setup für lug-mars.de, DOMAIN_SETUP:lug-mars.de, MANAGED_WEBSPACE:lug00, {"TTL": 14400, "auto-A-RR": true, "auto-AAAA-RR": false, "auto-AUTOCONFIG-RR": false, "auto-AUTODISCOVER-RR": false, "auto-DKIM-RR": false, "auto-MAILSERVICES-RR": false, "auto-MX-RR": false, "auto-NS-RR": true, "auto-SOA": false, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": true, "auto-WILDCARD-AAAA-RR": false, "auto-WILDCARD-MX-RR": false, "auto-WILDCARD-SPF-RR": false, "user-RR": [ "lug-mars.de. 14400 IN SOA dns1.hostsharing.net. hostmaster.hostsharing.net. 1611590905 10800 3600 604800 3600", "lug-mars.de. 14400 IN MX 10 mailin1.hostsharing.net.", "lug-mars.de. 14400 IN MX 20 mailin2.hostsharing.net.", "lug-mars.de. 14400 IN MX 30 mailin3.hostsharing.net.", "bbb.lug-mars.de. 14400 IN A 83.223.79.72", "ftp.lug-mars.de. 14400 IN A 83.223.79.72", "www.lug-mars.de. 14400 IN A 83.223.79.72" ]}),
+ 4581=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, 1981.ist-im-netz.de|DNS, DNS-Setup für 1981.ist-im-netz.de, DOMAIN_SETUP:1981.ist-im-netz.de, MANAGED_WEBSPACE:mim00, {"TTL": 21600, "auto-A-RR": true, "auto-AAAA-RR": false, "auto-AUTOCONFIG-RR": false, "auto-AUTODISCOVER-RR": false, "auto-DKIM-RR": false, "auto-MAILSERVICES-RR": false, "auto-MX-RR": true, "auto-NS-RR": true, "auto-SOA": true, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": true, "auto-WILDCARD-AAAA-RR": false, "auto-WILDCARD-MX-RR": true, "auto-WILDCARD-SPF-RR": false, "user-RR": [ ]}),
+ 4587=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, mellis.de|DNS, DNS-Setup für mellis.de, DOMAIN_SETUP:mellis.de, MANAGED_WEBSPACE:mim00, {"TTL": 21600, "auto-A-RR": true, "auto-AAAA-RR": true, "auto-AUTOCONFIG-RR": true, "auto-AUTODISCOVER-RR": true, "auto-DKIM-RR": true, "auto-MAILSERVICES-RR": true, "auto-MX-RR": true, "auto-NS-RR": true, "auto-SOA": true, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": true, "auto-WILDCARD-AAAA-RR": true, "auto-WILDCARD-MX-RR": true, "auto-WILDCARD-SPF-RR": true, "user-RR": [ "dump.hoennig.de. 21600 IN CNAME mih12.hostsharing.net.", "fotos.hoennig.de. 21600 IN CNAME mih12.hostsharing.net.", "maven.hoennig.de. 21600 IN NS dns1.hostsharing.net." ]}),
+ 4589=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, ist-im-netz.de|DNS, DNS-Setup für ist-im-netz.de, DOMAIN_SETUP:ist-im-netz.de, MANAGED_WEBSPACE:mim00, {"TTL": 700, "auto-A-RR": true, "auto-AAAA-RR": false, "auto-AUTOCONFIG-RR": false, "auto-AUTODISCOVER-RR": false, "auto-DKIM-RR": false, "auto-MAILSERVICES-RR": false, "auto-MX-RR": true, "auto-NS-RR": true, "auto-SOA": true, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": true, "auto-WILDCARD-AAAA-RR": false, "auto-WILDCARD-MX-RR": false, "auto-WILDCARD-SPF-RR": false, "user-RR": [ ]}),
+ 4600=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, waera.de|DNS, DNS-Setup für waera.de, DOMAIN_SETUP:waera.de, MANAGED_WEBSPACE:mim00, {"TTL": 21600, "auto-A-RR": false, "auto-AAAA-RR": false, "auto-AUTOCONFIG-RR": false, "auto-AUTODISCOVER-RR": false, "auto-DKIM-RR": false, "auto-MAILSERVICES-RR": false, "auto-MX-RR": false, "auto-NS-RR": false, "auto-SOA": false, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": false, "auto-WILDCARD-AAAA-RR": false, "auto-WILDCARD-MX-RR": false, "auto-WILDCARD-SPF-RR": false, "user-RR": [ ]}),
+ 4604=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, xn--wra-qla.de|DNS, DNS-Setup für wära.de, DOMAIN_SETUP:xn--wra-qla.de, MANAGED_WEBSPACE:mim00, {"TTL": 21600, "auto-A-RR": false, "auto-AAAA-RR": false, "auto-AUTOCONFIG-RR": false, "auto-AUTODISCOVER-RR": false, "auto-DKIM-RR": false, "auto-MAILSERVICES-RR": false, "auto-MX-RR": false, "auto-NS-RR": false, "auto-SOA": false, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": false, "auto-WILDCARD-AAAA-RR": false, "auto-WILDCARD-MX-RR": false, "auto-WILDCARD-SPF-RR": false, "user-RR": [ ]}),
+ 7662=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, dph-netzwerk.de|DNS, DNS-Setup für dph-netzwerk.de, DOMAIN_SETUP:dph-netzwerk.de, MANAGED_WEBSPACE:dph00, {"TTL": 21600, "auto-A-RR": true, "auto-AAAA-RR": true, "auto-AUTOCONFIG-RR": true, "auto-AUTODISCOVER-RR": true, "auto-DKIM-RR": false, "auto-MAILSERVICES-RR": true, "auto-MX-RR": true, "auto-NS-RR": true, "auto-SOA": true, "auto-SPF-RR": false, "auto-WILDCARD-A-RR": true, "auto-WILDCARD-AAAA-RR": true, "auto-WILDCARD-MX-RR": true, "auto-WILDCARD-SPF-RR": false, "user-RR": [ "dph-netzwerk.de. 21600 IN TXT \\"v=spf1 include:spf.hostsharing.net ?all\\"", "*.dph-netzwerk.de. 21600 IN TXT \\"v=spf1 include:spf.hostsharing.net ?all\\"" ]})
+ }
+ """);
+
+ assertThat(firstOfEach(12, domainHttpSetupAssets)).isEqualToIgnoringWhitespace("""
+ {
+ 4531=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, l-u-g.org|HTTP, HTTP-Setup für l-u-g.org, DOMAIN_SETUP:l-u-g.org, UNIX_USER:lug00, {"autoconfig": false, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": true, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": false, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "*" ]}),
+ 4532=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, linuxfanboysngirls.de|HTTP, HTTP-Setup für linuxfanboysngirls.de, DOMAIN_SETUP:linuxfanboysngirls.de, UNIX_USER:lug00-wla.2, {"autoconfig": false, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": true, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": false, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "*" ]}),
+ 4534=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, lug-mars.de|HTTP, HTTP-Setup für lug-mars.de, DOMAIN_SETUP:lug-mars.de, UNIX_USER:lug00-wla.2, {"autoconfig": false, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": true, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": true, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "www" ]}),
+ 4581=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, 1981.ist-im-netz.de|HTTP, HTTP-Setup für 1981.ist-im-netz.de, DOMAIN_SETUP:1981.ist-im-netz.de, UNIX_USER:mim00, {"autoconfig": false, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": true, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": false, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "*" ]}),
+ 4587=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, mellis.de|HTTP, HTTP-Setup für mellis.de, DOMAIN_SETUP:mellis.de, UNIX_USER:mim00, {"autoconfig": false, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": false, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": true, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "www", "michael", "test", "photos", "static", "input" ]}),
+ 4589=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, ist-im-netz.de|HTTP, HTTP-Setup für ist-im-netz.de, DOMAIN_SETUP:ist-im-netz.de, UNIX_USER:mim00, {"autoconfig": false, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": false, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": true, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "*" ]}),
+ 4600=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, waera.de|HTTP, HTTP-Setup für waera.de, DOMAIN_SETUP:waera.de, UNIX_USER:mim00, {"autoconfig": false, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": true, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": false, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "*" ]}),
+ 4604=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, xn--wra-qla.de|HTTP, HTTP-Setup für wära.de, DOMAIN_SETUP:xn--wra-qla.de, UNIX_USER:mim00, {"autoconfig": false, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": true, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": false, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "*" ]}),
+ 7662=HsHostingAssetRealEntity(DOMAIN_HTTP_SETUP, dph-netzwerk.de|HTTP, HTTP-Setup für dph-netzwerk.de, DOMAIN_SETUP:dph-netzwerk.de, UNIX_USER:dph00-dph, {"autoconfig": true, "cgi": true, "fastcgi": true, "fcgi-php-bin": "/usr/lib/cgi-bin/php", "greylisting": true, "htdocsfallback": true, "includes": true, "indexes": true, "letsencrypt": true, "multiviews": true, "passenger": true, "passenger-errorpage": false, "passenger-nodejs": "/usr/bin/node", "passenger-python": "/usr/bin/python3", "passenger-ruby": "/usr/bin/ruby", "subdomains": [ "*" ]})
+ }
+ """);
+
+ assertThat(firstOfEach(12, domainMBoxSetupAssets)).isEqualToIgnoringWhitespace("""
+ {
+ 4531=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, l-u-g.org|MBOX, E-Mail-Empfang-Setup für l-u-g.org, DOMAIN_SETUP:l-u-g.org, MANAGED_WEBSPACE:lug00),
+ 4532=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, linuxfanboysngirls.de|MBOX, E-Mail-Empfang-Setup für linuxfanboysngirls.de, DOMAIN_SETUP:linuxfanboysngirls.de, MANAGED_WEBSPACE:lug00),
+ 4534=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, lug-mars.de|MBOX, E-Mail-Empfang-Setup für lug-mars.de, DOMAIN_SETUP:lug-mars.de, MANAGED_WEBSPACE:lug00),
+ 4581=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, 1981.ist-im-netz.de|MBOX, E-Mail-Empfang-Setup für 1981.ist-im-netz.de, DOMAIN_SETUP:1981.ist-im-netz.de, MANAGED_WEBSPACE:mim00),
+ 4587=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, mellis.de|MBOX, E-Mail-Empfang-Setup für mellis.de, DOMAIN_SETUP:mellis.de, MANAGED_WEBSPACE:mim00),
+ 4589=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, ist-im-netz.de|MBOX, E-Mail-Empfang-Setup für ist-im-netz.de, DOMAIN_SETUP:ist-im-netz.de, MANAGED_WEBSPACE:mim00),
+ 4600=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, waera.de|MBOX, E-Mail-Empfang-Setup für waera.de, DOMAIN_SETUP:waera.de, MANAGED_WEBSPACE:mim00),
+ 4604=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, xn--wra-qla.de|MBOX, E-Mail-Empfang-Setup für wära.de, DOMAIN_SETUP:xn--wra-qla.de, MANAGED_WEBSPACE:mim00),
+ 7662=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, dph-netzwerk.de|MBOX, E-Mail-Empfang-Setup für dph-netzwerk.de, DOMAIN_SETUP:dph-netzwerk.de, MANAGED_WEBSPACE:dph00)
+ }
+ """);
+
+ assertThat(firstOfEach(12, domainSmtpSetupAssets)).isEqualToIgnoringWhitespace("""
+ {
+ 4531=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, l-u-g.org|SMTP, E-Mail-Versand-Setup für l-u-g.org, DOMAIN_SETUP:l-u-g.org, MANAGED_WEBSPACE:lug00),
+ 4532=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, linuxfanboysngirls.de|SMTP, E-Mail-Versand-Setup für linuxfanboysngirls.de, DOMAIN_SETUP:linuxfanboysngirls.de, MANAGED_WEBSPACE:lug00),
+ 4534=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, lug-mars.de|SMTP, E-Mail-Versand-Setup für lug-mars.de, DOMAIN_SETUP:lug-mars.de, MANAGED_WEBSPACE:lug00),
+ 4581=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, 1981.ist-im-netz.de|SMTP, E-Mail-Versand-Setup für 1981.ist-im-netz.de, DOMAIN_SETUP:1981.ist-im-netz.de, MANAGED_WEBSPACE:mim00),
+ 4587=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, mellis.de|SMTP, E-Mail-Versand-Setup für mellis.de, DOMAIN_SETUP:mellis.de, MANAGED_WEBSPACE:mim00),
+ 4589=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, ist-im-netz.de|SMTP, E-Mail-Versand-Setup für ist-im-netz.de, DOMAIN_SETUP:ist-im-netz.de, MANAGED_WEBSPACE:mim00),
+ 4600=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, waera.de|SMTP, E-Mail-Versand-Setup für waera.de, DOMAIN_SETUP:waera.de, MANAGED_WEBSPACE:mim00),
+ 4604=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, xn--wra-qla.de|SMTP, E-Mail-Versand-Setup für wära.de, DOMAIN_SETUP:xn--wra-qla.de, MANAGED_WEBSPACE:mim00),
+ 7662=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, dph-netzwerk.de|SMTP, E-Mail-Versand-Setup für dph-netzwerk.de, DOMAIN_SETUP:dph-netzwerk.de, MANAGED_WEBSPACE:dph00)
+ }
+ """);
+ }
+
+ @Test
+ @Order(16030)
+ void importEmailAddresses() {
+ try (Reader reader = resourceReader(MIGRATION_DATA_PATH + "/hosting/emailaddr.csv")) {
+ final var lines = readAllLines(reader);
+ importEmailAddresses(justHeader(lines), withoutHeader(lines));
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ @Test
+ @Order(16039)
+ void verifyEmailAddresses() {
+ assumeThatWeAreImportingControlledTestData();
+
+ assertThat(firstOfEach(12, emailAddressAssets)).isEqualToIgnoringWhitespace("""
+ {
+ 54746=HsHostingAssetRealEntity(EMAIL_ADDRESS, abuse@l-u-g.org, abuse@l-u-g.org, DOMAIN_MBOX_SETUP:l-u-g.org|MBOX, {"local-part": "abuse", "target": [ "lug00" ]}),
+ 54747=HsHostingAssetRealEntity(EMAIL_ADDRESS, postmaster@l-u-g.org, postmaster@l-u-g.org, DOMAIN_MBOX_SETUP:l-u-g.org|MBOX, {"local-part": "postmaster", "target": [ "lug00" ]}),
+ 54748=HsHostingAssetRealEntity(EMAIL_ADDRESS, webmaster@l-u-g.org, webmaster@l-u-g.org, DOMAIN_MBOX_SETUP:l-u-g.org|MBOX, {"local-part": "webmaster", "target": [ "lug00" ]}),
+ 54749=HsHostingAssetRealEntity(EMAIL_ADDRESS, abuse@linuxfanboysngirls.de, abuse@linuxfanboysngirls.de, DOMAIN_MBOX_SETUP:linuxfanboysngirls.de|MBOX, {"local-part": "abuse", "target": [ "lug00-mars" ]}),
+ 54750=HsHostingAssetRealEntity(EMAIL_ADDRESS, postmaster@linuxfanboysngirls.de, postmaster@linuxfanboysngirls.de, DOMAIN_MBOX_SETUP:linuxfanboysngirls.de|MBOX, {"local-part": "postmaster", "target": [ "m.hinsel@example.org" ]}),
+ 54751=HsHostingAssetRealEntity(EMAIL_ADDRESS, webmaster@linuxfanboysngirls.de, webmaster@linuxfanboysngirls.de, DOMAIN_MBOX_SETUP:linuxfanboysngirls.de|MBOX, {"local-part": "webmaster", "target": [ "m.hinsel@example.org" ]}),
+ 54755=HsHostingAssetRealEntity(EMAIL_ADDRESS, abuse@lug-mars.de, abuse@lug-mars.de, DOMAIN_MBOX_SETUP:lug-mars.de|MBOX, {"local-part": "abuse", "target": [ "lug00-marl" ]}),
+ 54756=HsHostingAssetRealEntity(EMAIL_ADDRESS, postmaster@lug-mars.de, postmaster@lug-mars.de, DOMAIN_MBOX_SETUP:lug-mars.de|MBOX, {"local-part": "postmaster", "target": [ "m.hinsel@example.org" ]}),
+ 54757=HsHostingAssetRealEntity(EMAIL_ADDRESS, webmaster@lug-mars.de, webmaster@lug-mars.de, DOMAIN_MBOX_SETUP:lug-mars.de|MBOX, {"local-part": "webmaster", "target": [ "m.hinsel@example.org" ]}),
+ 54760=HsHostingAssetRealEntity(EMAIL_ADDRESS, info@hamburg-west.l-u-g.org, info@hamburg-west.l-u-g.org, DOMAIN_MBOX_SETUP:l-u-g.org|MBOX, {"local-part": "info", "sub-domain": "hamburg-west", "target": [ "peter.lottmann@example.com" ]}),
+ 54761=HsHostingAssetRealEntity(EMAIL_ADDRESS, lugmaster@hamburg-west.l-u-g.org, lugmaster@hamburg-west.l-u-g.org, DOMAIN_MBOX_SETUP:l-u-g.org|MBOX, {"local-part": "lugmaster", "sub-domain": "hamburg-west", "target": [ "raoul.lottmann@example.com" ]}),
+ 54762=HsHostingAssetRealEntity(EMAIL_ADDRESS, postmaster@hamburg-west.l-u-g.org, postmaster@hamburg-west.l-u-g.org, DOMAIN_MBOX_SETUP:l-u-g.org|MBOX, {"local-part": "postmaster", "sub-domain": "hamburg-west", "target": [ "raoul.lottmann@example.com" ]})
}
""");
}
@@ -564,7 +619,11 @@ public class ImportHostingAssets extends ImportOfficeData {
@Test
@Order(18020)
void validateHostingAssets() {
- hostingAssets.forEach((id, ha) -> {
+ validateHostingAssets(ipNumberAssets);
+ }
+
+ void validateHostingAssets(final Map assets) {
+ assets.forEach((id, ha) -> {
try {
new HostingAssetEntitySaveProcessor(em, ha)
.preprocessEntity()
@@ -622,7 +681,7 @@ public class ImportHostingAssets extends ImportOfficeData {
System.out.println("PERSISTING cloud-servers to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
- persistHostingAssetsOfType(CLOUD_SERVER);
+ persistHostingAssets(packetAssets, CLOUD_SERVER);
}
@Test
@@ -630,7 +689,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit
void persistManagedServers() {
System.out.println("PERSISTING managed-servers to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
- persistHostingAssetsOfType(MANAGED_SERVER);
+ persistHostingAssets(packetAssets, MANAGED_SERVER);
}
@Test
@@ -638,7 +697,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit
void persistManagedWebspaces() {
System.out.println("PERSISTING managed-webspaces to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
- persistHostingAssetsOfType(MANAGED_WEBSPACE);
+ persistHostingAssets(packetAssets, MANAGED_WEBSPACE);
}
@Test
@@ -646,7 +705,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit
void persistIPNumbers() {
System.out.println("PERSISTING ip-numbers to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
- persistHostingAssetsOfType(IPV4_NUMBER);
+ persistHostingAssets(ipNumberAssets);
}
@Test
@@ -654,7 +713,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit
void persistUnixUsers() {
System.out.println("PERSISTING unix-users to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
- persistHostingAssetsOfType(UNIX_USER);
+ persistHostingAssets(unixUserAssets);
}
@Test
@@ -662,7 +721,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit
void persistEmailAliases() {
System.out.println("PERSISTING email-aliases to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
- persistHostingAssetsOfType(EMAIL_ALIAS);
+ persistHostingAssets(emailAliasAssets);
}
@Test
@@ -670,7 +729,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit
void persistDatabaseInstances() {
System.out.println("PERSISTING db-users to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
- persistHostingAssetsOfType(PGSQL_INSTANCE, MARIADB_INSTANCE);
+ persistHostingAssets(dbInstanceAssets);
}
@Test
@@ -678,7 +737,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit
void persistDatabaseUsers() {
System.out.println("PERSISTING db-users to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
- persistHostingAssetsOfType(PGSQL_USER, MARIADB_USER);
+ persistHostingAssets(dbUserAssets);
}
@Test
@@ -686,7 +745,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit
void persistDatabases() {
System.out.println("PERSISTING databases to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
- persistHostingAssetsOfType(PGSQL_DATABASE, MARIADB_DATABASE);
+ persistHostingAssets(dbAssets);
}
@Test
@@ -694,7 +753,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit
void persistDomainSetups() {
System.out.println("PERSISTING domain setups to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
- persistHostingAssetsOfType(DOMAIN_SETUP);
+ persistHostingAssets(domainSetupAssets);
}
@Test
@@ -702,7 +761,8 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit
void persistDomainDnsSetups() {
System.out.println("PERSISTING domain DNS setups to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
- persistHostingAssetsOfType(DOMAIN_DNS_SETUP);
+ HsDomainDnsSetupHostingAssetValidator.addZonefileErrorsTo(zonefileErrors);
+ persistHostingAssets(domainDnsSetupAssets);
}
@Test
@@ -710,7 +770,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit
void persistDomainHttpSetups() {
System.out.println("PERSISTING domain HTTP setups to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
- persistHostingAssetsOfType(DOMAIN_HTTP_SETUP);
+ persistHostingAssets(domainHttpSetupAssets);
}
@Test
@@ -718,7 +778,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit
void persistDomainMboxSetups() {
System.out.println("PERSISTING domain MBOX setups to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
- persistHostingAssetsOfType(DOMAIN_MBOX_SETUP);
+ persistHostingAssets(domainMBoxSetupAssets);
}
@Test
@@ -726,7 +786,15 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit
void persistDomainSmtpSetups() {
System.out.println("PERSISTING domain SMTP setups to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
- persistHostingAssetsOfType(DOMAIN_SMTP_SETUP);
+ persistHostingAssets(domainSmtpSetupAssets);
+ }
+
+ @Test
+ @Order(19400)
+ @Commit
+ void persistEmailAddresses() {
+ System.out.println("PERSISTING email-aliases to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
+ persistHostingAssets(emailAddressAssets);
}
@Test
@@ -734,22 +802,22 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyPersistedUnixUsersWithUserId() {
assumeThatWeAreImportingControlledTestData();
- assertThat(firstOfEachType(15, UNIX_USER)).isEqualToIgnoringWhitespace("""
+ assertThat(firstOfEach(15, unixUserAssets)).isEqualToIgnoringWhitespace("""
{
- 4005803=HsHostingAssetRealEntity(UNIX_USER, lug00, LUGs, MANAGED_WEBSPACE:lug00, { "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/bash", "userid": 102090}),
- 4005805=HsHostingAssetRealEntity(UNIX_USER, lug00-wla.1, Paul Klemm, MANAGED_WEBSPACE:lug00, { "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/bash", "userid": 102091}),
- 4005809=HsHostingAssetRealEntity(UNIX_USER, lug00-wla.2, Walter Müller, MANAGED_WEBSPACE:lug00, { "SSD hard quota": 8, "SSD soft quota": 4, "locked": false, "password": null, "shell": "/bin/bash", "userid": 102093}),
- 4005811=HsHostingAssetRealEntity(UNIX_USER, lug00-ola.a, LUG OLA - POP a, MANAGED_WEBSPACE:lug00, { "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/usr/bin/passwd", "userid": 102094}),
- 4005813=HsHostingAssetRealEntity(UNIX_USER, lug00-ola.b, LUG OLA - POP b, MANAGED_WEBSPACE:lug00, { "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/usr/bin/passwd", "userid": 102095}),
- 4005835=HsHostingAssetRealEntity(UNIX_USER, lug00-test, Test, MANAGED_WEBSPACE:lug00, { "SSD hard quota": 1024, "SSD soft quota": 1024, "locked": false, "password": null, "shell": "/usr/bin/passwd", "userid": 102106}),
- 4005964=HsHostingAssetRealEntity(UNIX_USER, mim00, Michael Mellis, MANAGED_WEBSPACE:mim00, { "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/bash", "userid": 102147}),
- 4005966=HsHostingAssetRealEntity(UNIX_USER, mim00-1981, Jahrgangstreffen 1981, MANAGED_WEBSPACE:mim00, { "SSD hard quota": 256, "SSD soft quota": 128, "locked": false, "password": null, "shell": "/bin/bash", "userid": 102148}),
- 4005990=HsHostingAssetRealEntity(UNIX_USER, mim00-mail, Mailbox, MANAGED_WEBSPACE:mim00, { "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/bash", "userid": 102160}),
- 4100705=HsHostingAssetRealEntity(UNIX_USER, hsh00-mim, Michael Mellis, MANAGED_WEBSPACE:hsh00, { "HDD hard quota": 0, "HDD soft quota": 0, "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/false", "userid": 10003}),
- 4100824=HsHostingAssetRealEntity(UNIX_USER, hsh00, Hostsharing Paket, MANAGED_WEBSPACE:hsh00, { "HDD hard quota": 0, "HDD soft quota": 0, "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/bash", "userid": 10000}),
- 4167846=HsHostingAssetRealEntity(UNIX_USER, hsh00-dph, hsh00-uph, MANAGED_WEBSPACE:hsh00, { "HDD hard quota": 0, "HDD soft quota": 0, "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/false", "userid": 110568}),
- 4169546=HsHostingAssetRealEntity(UNIX_USER, dph00, Reinhard Wiese, MANAGED_WEBSPACE:dph00, { "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/bash", "userid": 110593}),
- 4169596=HsHostingAssetRealEntity(UNIX_USER, dph00-dph, Domain admin, MANAGED_WEBSPACE:dph00, { "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/bash", "userid": 110594})
+ 100705=HsHostingAssetRealEntity(UNIX_USER, hsh00-mim, Michael Mellis, MANAGED_WEBSPACE:hsh00, {"HDD hard quota": 0, "HDD soft quota": 0, "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/false", "userid": 10003}),
+ 100824=HsHostingAssetRealEntity(UNIX_USER, hsh00, Hostsharing Paket, MANAGED_WEBSPACE:hsh00, {"HDD hard quota": 0, "HDD soft quota": 0, "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/bash", "userid": 10000}),
+ 167846=HsHostingAssetRealEntity(UNIX_USER, hsh00-dph, hsh00-uph, MANAGED_WEBSPACE:hsh00, {"HDD hard quota": 0, "HDD soft quota": 0, "SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/false", "userid": 110568}),
+ 169546=HsHostingAssetRealEntity(UNIX_USER, dph00, Reinhard Wiese, MANAGED_WEBSPACE:dph00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/bash", "userid": 110593}),
+ 169596=HsHostingAssetRealEntity(UNIX_USER, dph00-dph, Domain admin, MANAGED_WEBSPACE:dph00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/bash", "userid": 110594}),
+ 5803=HsHostingAssetRealEntity(UNIX_USER, lug00, LUGs, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/bash", "userid": 102090}),
+ 5805=HsHostingAssetRealEntity(UNIX_USER, lug00-wla.1, Paul Klemm, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/bash", "userid": 102091}),
+ 5809=HsHostingAssetRealEntity(UNIX_USER, lug00-wla.2, Walter Müller, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 8, "SSD soft quota": 4, "locked": false, "password": null, "shell": "/bin/bash", "userid": 102093}),
+ 5811=HsHostingAssetRealEntity(UNIX_USER, lug00-ola.a, LUG OLA - POP a, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/usr/bin/passwd", "userid": 102094}),
+ 5813=HsHostingAssetRealEntity(UNIX_USER, lug00-ola.b, LUG OLA - POP b, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/usr/bin/passwd", "userid": 102095}),
+ 5835=HsHostingAssetRealEntity(UNIX_USER, lug00-test, Test, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 1024, "SSD soft quota": 1024, "locked": false, "password": null, "shell": "/usr/bin/passwd", "userid": 102106}),
+ 5964=HsHostingAssetRealEntity(UNIX_USER, mim00, Michael Mellis, MANAGED_WEBSPACE:mim00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/bash", "userid": 102147}),
+ 5966=HsHostingAssetRealEntity(UNIX_USER, mim00-1981, Jahrgangstreffen 1981, MANAGED_WEBSPACE:mim00, {"SSD hard quota": 256, "SSD soft quota": 128, "locked": false, "password": null, "shell": "/bin/bash", "userid": 102148}),
+ 5990=HsHostingAssetRealEntity(UNIX_USER, mim00-mail, Mailbox, MANAGED_WEBSPACE:mim00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "password": null, "shell": "/bin/bash", "userid": 102160})
}
""");
}
@@ -796,16 +864,14 @@ public class ImportHostingAssets extends ImportOfficeData {
// ============================================================================================
- private void persistHostingAssetsOfType(final HsHostingAssetType... hsHostingAssetTypes) {
- final var hsHostingAssetTypeSet = stream(hsHostingAssetTypes).collect(toSet());
-
- if (hsHostingAssetTypeSet.contains(DOMAIN_DNS_SETUP)) {
- HsDomainDnsSetupHostingAssetValidator.addZonefileErrorsTo(zonefileErrors);
- }
+ private void persistHostingAssets(final Map assets) {
+ persistHostingAssets(assets, null);
+ }
+ private void persistHostingAssets(final Map assets, final HsHostingAssetType type) {
jpaAttempt.transacted(() ->
- hostingAssets.forEach((key, ha) -> {
- if (hsHostingAssetTypeSet.contains(ha.getType())) {
+ assets.forEach((key, ha) -> {
+ if (type == null || type == ha.getType()) {
context(rbacSuperuser); // if put only outside the loop, it seems to get lost after a while, no idea why
logError(() ->
new HostingAssetEntitySaveProcessor(em, ha)
@@ -831,7 +897,7 @@ public class ImportHostingAssets extends ImportOfficeData {
.identifier(rec.getString("inet_addr"))
.caption(rec.getString("description"))
.build();
- hostingAssets.put(IP_NUMBER_ID_OFFSET + rec.getInteger("inet_addr_id"), ipNumber);
+ ipNumberAssets.put(rec.getInteger("inet_addr_id"), ipNumber);
});
}
@@ -847,7 +913,7 @@ public class ImportHostingAssets extends ImportOfficeData {
rec.getString("hive_name"),
rec.getInteger("inet_addr_id"),
new AtomicReference<>());
- hives.put(HIVE_ID_OFFSET + hive_id, hive);
+ hives.put(hive_id, hive);
});
}
@@ -879,7 +945,7 @@ public class ImportHostingAssets extends ImportOfficeData {
.project(bookingProjects.get(bp_id))
.validity(toPostgresDateRange(created, cancelled))
.build();
- bookingItems.put(PACKET_ID_OFFSET + packet_id, bookingItem);
+ bookingItems.put(BI_PACKET_ID_OFFSET + packet_id, bookingItem);
final var haType = determineHaType(basepacket_code);
logError(() -> assertThat(!free || haType == MANAGED_WEBSPACE || bookingItem.getRelatedProject()
@@ -898,11 +964,10 @@ public class ImportHostingAssets extends ImportOfficeData {
.bookingItem(bookingItem)
.caption("HA " + packet_name)
.build();
- hostingAssets.put(PACKET_ID_OFFSET + packet_id, asset);
+ packetAssets.put(packet_id, asset);
if (haType == MANAGED_SERVER) {
hive(hive_id).serverRef.set(asset);
}
-
if (cur_inet_addr_id != null) {
ipNumber(cur_inet_addr_id).setAssignedToAsset(asset);
}
@@ -1032,7 +1097,7 @@ public class ImportHostingAssets extends ImportOfficeData {
final var packet_id = rec.getInteger("packet_id");
final var unixUserAsset = HsHostingAssetRealEntity.builder()
.type(UNIX_USER)
- .parentAsset(hostingAssets.get(PACKET_ID_OFFSET + packet_id))
+ .parentAsset(packetAssets.get(packet_id))
.identifier(rec.getString("name"))
.caption(rec.getString("comment"))
.isLoaded(true) // avoid overwriting imported userids with generated ids
@@ -1076,7 +1141,7 @@ public class ImportHostingAssets extends ImportOfficeData {
unixUserAsset.getConfig().remove("HDD soft quota");
}
- hostingAssets.put(UNIXUSER_ID_OFFSET + unixuser_id, unixUserAsset);
+ unixUserAssets.put(unixuser_id, unixUserAsset);
});
}
@@ -1086,19 +1151,19 @@ public class ImportHostingAssets extends ImportOfficeData {
.map(this::trimAll)
.map(row -> new Record(columns, row))
.forEach(rec -> {
- final var unixuser_id = rec.getInteger("emailalias_id");
+ final var emailalias_id = rec.getInteger("emailalias_id");
final var packet_id = rec.getInteger("pac_id");
final var targets = parseCsvLine(rec.getString("target"));
- final var unixUserAsset = HsHostingAssetRealEntity.builder()
+ final var emailAliasAsset = HsHostingAssetRealEntity.builder()
.type(EMAIL_ALIAS)
- .parentAsset(hostingAssets.get(PACKET_ID_OFFSET + packet_id))
+ .parentAsset(packetAssets.get(packet_id))
.identifier(rec.getString("name"))
.caption(rec.getString("name"))
.config(ofEntries(
entry("target", targets)
))
.build();
- hostingAssets.put(EMAILALIAS_ID_OFFSET + unixuser_id, unixUserAsset);
+ emailAliasAssets.put(emailalias_id, emailAliasAsset);
});
}
@@ -1116,7 +1181,7 @@ public class ImportHostingAssets extends ImportOfficeData {
.caption(pa.getIdentifier() + "-PostgreSQL default instance")
.build();
pa.getSubHostingAssets().add(pgSqlInstanceAsset);
- hostingAssets.put(DBINSTANCE_ID_OFFSET + idRef.getAndIncrement(), pgSqlInstanceAsset);
+ dbInstanceAssets.put(idRef.getAndIncrement(), pgSqlInstanceAsset);
final var mariaDbInstanceAsset = HsHostingAssetRealEntity.builder()
.type(MARIADB_INSTANCE)
@@ -1125,7 +1190,7 @@ public class ImportHostingAssets extends ImportOfficeData {
.caption(pa.getIdentifier() + "-MariaDB default instance")
.build();
pa.getSubHostingAssets().add(mariaDbInstanceAsset);
- hostingAssets.put(DBINSTANCE_ID_OFFSET + idRef.getAndIncrement(), mariaDbInstanceAsset);
+ dbInstanceAssets.put(idRef.getAndIncrement(), mariaDbInstanceAsset);
});
}
@@ -1151,14 +1216,14 @@ public class ImportHostingAssets extends ImportOfficeData {
final HsHostingAssetType dbInstanceAssetType = "mysql".equals(engine) ? MARIADB_INSTANCE
: "pgsql".equals(engine) ? PGSQL_INSTANCE
: failWith("unknown DB engine " + engine);
- final var relatedWebspaceHA = hostingAssets.get(PACKET_ID_OFFSET + packet_id).getParentAsset();
+ final var relatedWebspaceHA = packetAssets.get(packet_id).getParentAsset();
final var dbInstanceAsset = relatedWebspaceHA.getSubHostingAssets().stream()
.filter(ha -> ha.getType() == dbInstanceAssetType)
.findAny().orElseThrow(); // there is exactly one: the default instance for the given type
final var dbUserAsset = HsHostingAssetRealEntity.builder()
.type(dbUserAssetType)
- .parentAsset(hostingAssets.get(PACKET_ID_OFFSET + packet_id))
+ .parentAsset(packetAssets.get(packet_id))
.assignedToAsset(dbInstanceAsset)
.identifier(dbUserAssetType.name().substring(0, 2) + "U|" + name)
.caption(name)
@@ -1167,7 +1232,7 @@ public class ImportHostingAssets extends ImportOfficeData {
)))
.build();
dbUsersByEngineAndName.put(engine + ":" + name, dbUserAsset);
- hostingAssets.put(DBUSER_ID_OFFSET + dbuser_id, dbUserAsset);
+ dbUserAssets.put(dbuser_id, dbUserAsset);
});
}
@@ -1198,7 +1263,7 @@ public class ImportHostingAssets extends ImportOfficeData {
type == MARIADB_DATABASE ? encoding.toLowerCase() : encoding.toUpperCase())
))
.build();
- hostingAssets.put(DB_ID_OFFSET + database_id, dbAsset);
+ dbAssets.put(database_id, dbAsset);
});
}
@@ -1228,11 +1293,11 @@ public class ImportHostingAssets extends ImportOfficeData {
))
.build();
domainSetupsByName.put(domain_name, domainSetupAsset);
- hostingAssets.put(DOMAIN_SETUP_OFFSET + domain_id, domainSetupAsset);
+ domainSetupAssets.put(domain_id, domainSetupAsset);
domainSetupAsset.setSubHostingAssets(new ArrayList<>());
// Domain DNS Setup
- final var ownerAsset = hostingAssets.get(UNIXUSER_ID_OFFSET + owner_id);
+ final var ownerAsset = unixUserAssets.get(owner_id);
final var webspaceAsset = ownerAsset.getParentAsset();
assertThat(webspaceAsset.getType()).isEqualTo(MANAGED_WEBSPACE);
final var domainDnsSetupAsset = HsHostingAssetRealEntity.builder()
@@ -1243,7 +1308,7 @@ public class ImportHostingAssets extends ImportOfficeData {
.caption("DNS-Setup für " + IDN.toUnicode(domain_name))
.config(new HashMap<>()) // is read from separate files
.build();
- hostingAssets.put(DOMAIN_DNS_SETUP_OFFSET + domain_id, domainDnsSetupAsset);
+ domainDnsSetupAssets.put(domain_id, domainDnsSetupAsset);
domainSetupAsset.getSubHostingAssets().add(domainDnsSetupAsset);
// Domain HTTP Setup
@@ -1282,7 +1347,7 @@ public class ImportHostingAssets extends ImportOfficeData {
httpDomainSetupValidator.getProperty("passenger-ruby").defaultValue()))
))
.build();
- hostingAssets.put(DOMAIN_HTTP_SETUP_OFFSET + domain_id, domainHttpSetupAsset);
+ domainHttpSetupAssets.put(domain_id, domainHttpSetupAsset);
domainSetupAsset.getSubHostingAssets().add(domainHttpSetupAsset);
// Domain MBOX Setup
@@ -1295,8 +1360,9 @@ public class ImportHostingAssets extends ImportOfficeData {
.config(ofEntries(
// no properties available
))
+ .subHostingAssets(new ArrayList<>())
.build();
- hostingAssets.put(DOMAIN_MBOX_SETUP_OFFSET + domain_id, domainMboxSetupAsset);
+ domainMBoxSetupAssets.put(domain_id, domainMboxSetupAsset);
domainSetupAsset.getSubHostingAssets().add(domainMboxSetupAsset);
// Domain SMTP Setup
@@ -1310,7 +1376,7 @@ public class ImportHostingAssets extends ImportOfficeData {
// no properties available
))
.build();
- hostingAssets.put(DOMAIN_SMTP_SETUP_OFFSET + domain_id, domainSmtpSetupAsset);
+ domainSmtpSetupAssets.put(domain_id, domainSmtpSetupAsset);
domainSetupAsset.getSubHostingAssets().add(domainSmtpSetupAsset);
});
@@ -1378,6 +1444,51 @@ public class ImportHostingAssets extends ImportOfficeData {
});
}
+ private void importEmailAddresses(final String[] header, final List records) {
+ final var columns = new Columns(header);
+ records.stream()
+ .map(this::trimAll)
+ .map(row -> new Record(columns, row))
+ .forEach(rec -> {
+ // emailaddr_id;domain_id;localpart;subdomain;target
+ final var emailaddr_id = rec.getInteger("emailaddr_id");
+ final var domain_id = rec.getInteger("domain_id");
+ final var localpart = rec.getString("localpart");
+ final var subdomain = rec.getString("subdomain");
+ final var targets = parseCsvLine(rec.getString("target"));
+ final var domainMboxSetup = domainMBoxSetupAssets.get(domain_id);
+ final var domainSetup = domainMboxSetup.getParentAsset();
+ final var emailAddress = localpart + "@" +
+ (subdomain != null && !subdomain.isBlank() ? subdomain + "." : "") + domainSetup.getIdentifier();
+ final var emailAddressAsset = HsHostingAssetRealEntity.builder()
+ .type(EMAIL_ADDRESS)
+ .parentAsset(domainMboxSetup)
+ .identifier(emailAddress)
+ .caption(emailAddress)
+ .config(ofNonNullEntries(
+ entryIfNotNull("local-part", localpart),
+ entryIfNotNull("sub-domain", subdomain),
+ entry("target", targets)
+ ))
+ .build();
+ emailAddressAssets.put(emailaddr_id, emailAddressAsset);
+ domainMboxSetup.getSubHostingAssets().add(emailAddressAsset);
+ });
+ }
+
+ @SafeVarargs
+ private static Map ofNonNullEntries(final Map.Entry... entries) {
+ //noinspection unchecked
+ return ofEntries(stream(entries).filter(Objects::nonNull).toArray(Map.Entry[]::new));
+ }
+
+ private static Map.Entry entryIfNotNull(final String key, final @Nullable String value) {
+ if (value == null || value.isBlank()) {
+ return null;
+ }
+ return entry(key, value);
+ }
+
// ============================================================================================
V returning(
@@ -1408,26 +1519,31 @@ public class ImportHostingAssets extends ImportOfficeData {
}
private static HsHostingAssetRealEntity ipNumber(final Integer inet_addr_id) {
- return inet_addr_id != null ? hostingAssets.get(IP_NUMBER_ID_OFFSET + inet_addr_id) : null;
+ return inet_addr_id != null ? ipNumberAssets.get(inet_addr_id) : null;
}
private static Hive hive(final Integer hive_id) {
- return hive_id != null ? hives.get(HIVE_ID_OFFSET + hive_id) : null;
+ return hive_id != null ? hives.get(hive_id) : null;
}
private static HsHostingAssetRealEntity pac(final Integer packet_id) {
- return packet_id != null ? hostingAssets.get(PACKET_ID_OFFSET + packet_id) : null;
+ return packet_id != null ? packetAssets.get(packet_id) : null;
}
- private String firstOfEachType(
+ private String firstOfEach(
final int maxCount,
- final HsHostingAssetType... types) {
- return toJsonFormattedString(stream(types)
- .flatMap(t ->
- hostingAssets.entrySet().stream()
- .filter(hae -> hae.getValue().getType() == t)
- .limit(maxCount)
- )
+ final Map assets) {
+ return toJsonFormattedString(assets.entrySet().stream().limit(maxCount)
+ .collect(toMap(Map.Entry::getKey, Map.Entry::getValue, ImportHostingAssets::uniqueKeys, TreeMap::new)));
+ }
+
+ private String firstOfEach(
+ final int maxCount,
+ final Map assets,
+ final HsHostingAssetType type) {
+ return toJsonFormattedString(assets.entrySet().stream()
+ .filter(hae -> hae.getValue().getType() == type)
+ .limit(maxCount)
.collect(toMap(Map.Entry::getKey, Map.Entry::getValue, ImportHostingAssets::uniqueKeys, TreeMap::new)));
}
diff --git a/src/test/resources/migration/hosting/database.csv b/src/test/resources/migration/hosting/database.csv
index e992d086..3dc130b7 100644
--- a/src/test/resources/migration/hosting/database.csv
+++ b/src/test/resources/migration/hosting/database.csv
@@ -1,8 +1,8 @@
database_id;engine;packet_id;name;owner;encoding
-77;pgsql;630;hsh00_vorstand;hsh00_vorstand;LATIN1
-786;mysql;630;hsh00_addr;hsh00;latin1
-805;mysql;630;hsh00_db2;hsh00;LATIN-1
+1077;pgsql;630;hsh00_vorstand;hsh00_vorstand;LATIN1
+1786;mysql;630;hsh00_addr;hsh00;latin1
+1805;mysql;630;hsh00_dba;hsh00;LATIN-1
1858;pgsql;630;hsh00;hsh00;LATIN1
1860;pgsql;630;hsh00_hsadmin;hsh00_hsadmin;UTF8
diff --git a/src/test/resources/migration/hosting/database_user.csv b/src/test/resources/migration/hosting/database_user.csv
index 33018673..8d43c218 100644
--- a/src/test/resources/migration/hosting/database_user.csv
+++ b/src/test/resources/migration/hosting/database_user.csv
@@ -1,17 +1,17 @@
dbuser_id;engine;packet_id;name;password_hash
-1857;pgsql;630;hsh00;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$JDiZmaxU+O+ByArLY/CkYZ8HbOk0r/I8LyABnno5gQs=:NI3T500/63dzI1B07Jh3UtQGlukS6JxuS0XoxM/QgAc=
-1858;mysql;630;hsh00;*59067A36BA197AD0A47D74909296C5B002A0FB9F
-1859;pgsql;630;hsh00_vorstand;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$54Wh+OGx/GaIvAia+I3k78jHGhqmYwe4+iLssmH5zhk=:D4Gq1z2Li2BVSaZrz1azDrs6pwsIzhq4+suK1Hh6ZIg=
-1860;pgsql;630;hsh00_hsadmin;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$54Wh+OGx/GaIvAia+I3k78jHGhqmYwe4+iLssmH5zhk=:D4Gq1z2Li2BVSaZrz1azDrs6pwsIzhq4+suK1Hh6ZIg=
-1861;pgsql;630;hsh00_hsadmin_ro;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$UhJnJJhmKANbcaG+izWK3rz5bmhhluSuiCJFlUmDVI8=:6AC4mbLfJGiGlEOWhpz9BivvMODhLLHOnRnnktJPgn8=
-4931;pgsql;630;hsh00_phpPgSqlAdmin;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$UhJnJJhmKANbcaG+izWK3rz5bmhhluSuiCJFlUmDVI8=:6AC4mbLfJGiGlEOWhpz9BivvMODhLLHOnRnnktJPgn8=
-4908;mysql;630;hsh00_mantis;*EA4C0889A22AAE66BBEBC88161E8CF862D73B44F
-4909;mysql;630;hsh00_mantis_ro;*B3BB6D0DA2EC01958616E9B3BCD2926FE8C38383
-4932;mysql;630;hsh00_phpMyAdmin;*3188720B1889EF5447C722629765F296F40257C2
+1857;pgsql;10630;hsh00;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$JDiZmaxU+O+ByArLY/CkYZ8HbOk0r/I8LyABnno5gQs=:NI3T500/63dzI1B07Jh3UtQGlukS6JxuS0XoxM/QgAc=
+1858;mysql;10630;hsh00;*59067A36BA197AD0A47D74909296C5B002A0FB9F
+1859;pgsql;10630;hsh00_vorstand;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$54Wh+OGx/GaIvAia+I3k78jHGhqmYwe4+iLssmH5zhk=:D4Gq1z2Li2BVSaZrz1azDrs6pwsIzhq4+suK1Hh6ZIg=
+1860;pgsql;10630;hsh00_hsadmin;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$54Wh+OGx/GaIvAia+I3k78jHGhqmYwe4+iLssmH5zhk=:D4Gq1z2Li2BVSaZrz1azDrs6pwsIzhq4+suK1Hh6ZIg=
+1861;pgsql;10630;hsh00_hsadmin_ro;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$UhJnJJhmKANbcaG+izWK3rz5bmhhluSuiCJFlUmDVI8=:6AC4mbLfJGiGlEOWhpz9BivvMODhLLHOnRnnktJPgn8=
+4931;pgsql;10630;hsh00_phpPgSqlAdmin;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$UhJnJJhmKANbcaG+izWK3rz5bmhhluSuiCJFlUmDVI8=:6AC4mbLfJGiGlEOWhpz9BivvMODhLLHOnRnnktJPgn8=
+4908;mysql;10630;hsh00_mantis;*EA4C0889A22AAE66BBEBC88161E8CF862D73B44F
+4909;mysql;10630;hsh00_mantis_ro;*B3BB6D0DA2EC01958616E9B3BCD2926FE8C38383
+4932;mysql;10630;hsh00_phpMyAdmin;*3188720B1889EF5447C722629765F296F40257C2
-7520;mysql;1094;lug00_wla;*11667C0EAC42BF8B0295ABEDC7D2868A835E4DB5
-7522;pgsql;1094;lug00_ola;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$tir+cV3ZzOZeEWurwAJk+8qkvsTAWaBfwx846oYMOr4=:p4yk/4hHkfSMAFxSuTuh3RIrbSpHNBh7h6raVa3nt1c=
+7520;mysql;11094;lug00_wla;*11667C0EAC42BF8B0295ABEDC7D2868A835E4DB5
+7522;pgsql;11094;lug00_ola;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$tir+cV3ZzOZeEWurwAJk+8qkvsTAWaBfwx846oYMOr4=:p4yk/4hHkfSMAFxSuTuh3RIrbSpHNBh7h6raVa3nt1c=
-7604;mysql;1112;mim00_test;*156CFD94A0594A5C3F4C6742376DDF4B8C5F6D90
-7605;pgsql;1112;mim00_office;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$43jziwd1o+nkfjE0zFbks24Zy5GK+km87B7vzEQt4So=:xRQntZxBxdo1JJbhkegnUFKHT0T8MDW75hkQs2S3z6k=
+7604;mysql;11112;mim00_test;*156CFD94A0594A5C3F4C6742376DDF4B8C5F6D90
+7605;pgsql;11112;mim00_office;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$43jziwd1o+nkfjE0zFbks24Zy5GK+km87B7vzEQt4So=:xRQntZxBxdo1JJbhkegnUFKHT0T8MDW75hkQs2S3z6k=
diff --git a/src/test/resources/migration/hosting/domain.csv b/src/test/resources/migration/hosting/domain.csv
index 3471bcfd..61f880ec 100644
--- a/src/test/resources/migration/hosting/domain.csv
+++ b/src/test/resources/migration/hosting/domain.csv
@@ -7,4 +7,4 @@ domain_id;domain_name;domain_since;domain_dns_master;domain_owner;valid_subdomai
4589;ist-im-netz.de;2013-09-17;dns.hostsharing.net;5964;*;/usr/bin/python3;/usr/bin/node;/usr/bin/ruby;/usr/lib/cgi-bin/php;htdocsfallback,indexes,includes,letsencrypt,multiviews,cgi,fastcgi,passenger
4600;waera.de;2013-09-17;dns.hostsharing.net;5964;*;/usr/bin/python3;/usr/bin/node;/usr/bin/ruby;/usr/lib/cgi-bin/php;greylisting,multiviews,indexes,htdocsfallback,includes,cgi,fastcgi,passenger
4604;xn--wra-qla.de;2013-09-17;dns.hostsharing.net;5964;*;/usr/bin/python3;/usr/bin/node;/usr/bin/ruby;/usr/lib/cgi-bin/php;greylisting,multiviews,indexes,htdocsfallback,includes,cgi,fastcgi,passenger
-27662;dph-netzwerk.de;2021-06-02;h93.hostsharing.net;169596;*;/usr/bin/python3;/usr/bin/node;/usr/bin/ruby;/usr/lib/cgi-bin/php;htdocsfallback,indexes,autoconfig,greylisting,includes,letsencrypt,multiviews,cgi,fastcgi,passenger
+7662;dph-netzwerk.de;2021-06-02;h93.hostsharing.net;169596;*;/usr/bin/python3;/usr/bin/node;/usr/bin/ruby;/usr/lib/cgi-bin/php;htdocsfallback,indexes,autoconfig,greylisting,includes,letsencrypt,multiviews,cgi,fastcgi,passenger
diff --git a/src/test/resources/migration/hosting/emailaddr.csv b/src/test/resources/migration/hosting/emailaddr.csv
new file mode 100644
index 00000000..12f63ece
--- /dev/null
+++ b/src/test/resources/migration/hosting/emailaddr.csv
@@ -0,0 +1,71 @@
+emailaddr_id;domain_id;localpart;subdomain;target
+54746;4531;abuse;;lug00
+54747;4531;postmaster;;lug00
+54748;4531;webmaster;;lug00
+54749;4532;abuse;;lug00-mars
+54750;4532;postmaster;;m.hinsel@example.org
+54751;4532;webmaster;;m.hinsel@example.org
+54755;4534;abuse;;lug00-marl
+54756;4534;postmaster;;m.hinsel@example.org
+54757;4534;webmaster;;m.hinsel@example.org
+54760;4531;info;hamburg-west;peter.lottmann@example.com
+54761;4531;lugmaster;hamburg-west;raoul.lottmann@example.com
+54762;4531;postmaster;hamburg-west;raoul.lottmann@example.com
+54763;4531;webmaster;hamburg-west;raoul.lottmann@example.com
+54764;4531;;eliza;eliza@example.net
+54765;4531;;;lug00
+54766;4532;;;nomail
+54767;4532;hostmaster;;hostmaster@example.net
+54795;4534;;;bounce
+54796;4534;hostmaster;;hostmaster@example.net
+54963;4581;abuse;;mim00
+54964;4581;postmaster;;mim00
+54965;4581;webmaster;;mim00
+54981;4587;abuse;;mim00
+54982;4587;postmaster;;mim00
+54983;4587;webmaster;;mim00
+54987;4589;abuse;;mim00
+54988;4589;postmaster;;mim00
+54989;4589;webmaster;;mim00
+55020;4600;abuse;;mim00
+55021;4600;postmaster;;mim00
+55022;4600;webmaster;;mim00
+55032;4604;abuse;;mim00
+55033;4604;postmaster;;mim00
+55034;4604;webmaster;;mim00
+55037;4587;;eberhard;eberhard@mellis.de
+55038;4587;;marleen;marleen@mellis.de
+55039;4587;;michael;mh@dump.mellis.de
+55040;4587;lists;michael;mim00-lists
+55041;4587;ooo;michael;mim00-ooo
+55043;4587;;test;test@mellis.de
+55044;4587;;trap;mim00-spam
+55046;4587;anke;;anke@segelschule-jade.de
+55052;4587;eberhard;;mellis@example.org
+55053;4587;gitti;;gitta.mellis@gmx.de
+55054;4587;imap;;mim00-imap
+55057;4587;listar;;mim00-listar
+55059;4587;marleen;;marleen.mellis@t-online.de
+55060;4587;mime;;mh@dump.mellis.de
+55061;4587;michael;;mh@dump.mellis.de
+55062;4587;monika;;nomail
+55063;4587;nobody;;nobody
+55064;4587;palm;;mim00-imap
+55065;4587;procmail;;mim00-mail
+55066;4587;reporter.web.de;;nomail
+55067;4587;script;;mim00-script
+55068;4587;spamtrap;;mim00-spamtrap
+55069;4587;susanne;;susanne.mellis@example.net
+55070;4587;test;;mim00-test
+55071;4587;ursula;;01234wasauchimmer@example.net
+55072;4587;webcmstag;;mim00-webcmstag
+55073;4587;wichtig;;mim00-imap,01234567@smsmail.example.org
+55074;4604;;;@waera.de
+60601;4589;highlander;;mim00-highlander,michael@mellis.de
+65150;4589;little-sunshine;;mim00-marleen
+75964;4589;;mail;michael@mellis.de
+75965;4589;;;michael@mellis.de
+77726;4587;chat;michael;mim00-chat
+93790;7662;abuse;;dph00-dph
+93791;7662;postmaster;;dph00-dph
+93792;7662;webmaster;;dph00-dph
diff --git a/src/test/resources/migration/hosting/emailalias.csv b/src/test/resources/migration/hosting/emailalias.csv
index b2421536..4d5b31c9 100644
--- a/src/test/resources/migration/hosting/emailalias.csv
+++ b/src/test/resources/migration/hosting/emailalias.csv
@@ -1,10 +1,10 @@
emailalias_id;pac_id;name;target
-2403;1094;lug00;michael.mellis@example.com
-2405;1094;lug00-wla-listar;|/home/pacs/lug00/users/in/mailinglist/listar
-2429;1112;mim00;mim12-mi@mim12.hostsharing.net
-2431;1112;mim00-abruf;michael.mellis@hostsharing.net
-2449;1112;mim00-hhfx;"mim00-hhfx,""|/usr/bin/formail -I 'Reply-To: hamburger-fx@example.net' | /usr/lib/sendmail mim00-hhfx-l"""
-2451;1112;mim00-hhfx-l;:include:/home/pacs/mim00/etc/hhfx.list
-2454;1112;mim00-dev.null; /dev/null
-2455;1112;mim00-1_with_space;" ""|/home/pacs/mim00/install/corpslistar/listar"""
-2456;1112;mim00-1_with_single_quotes;'|/home/pacs/rir00/mailinglist/ecartis -r kybs06-intern'
+2403;11094;lug00;michael.mellis@example.com
+2405;11094;lug00-wla-listar;|/home/pacs/lug00/users/in/mailinglist/listar
+2429;11112;mim00;mim12-mi@mim12.hostsharing.net
+2431;11112;mim00-abruf;michael.mellis@hostsharing.net
+2449;11112;mim00-hhfx;"mim00-hhfx,""|/usr/bin/formail -I 'Reply-To: hamburger-fx@example.net' | /usr/lib/sendmail mim00-hhfx-l"""
+2451;11112;mim00-hhfx-l;:include:/home/pacs/mim00/etc/hhfx.list
+2454;11112;mim00-dev.null; /dev/null
+2455;11112;mim00-1_with_space;" ""|/home/pacs/mim00/install/corpslistar/listar"""
+2456;11112;mim00-1_with_single_quotes;'|/home/pacs/rir00/mailinglist/ecartis -r kybs06-intern'
diff --git a/src/test/resources/migration/hosting/hive.csv b/src/test/resources/migration/hosting/hive.csv
index fe23e0d3..97e5b551 100644
--- a/src/test/resources/migration/hosting/hive.csv
+++ b/src/test/resources/migration/hosting/hive.csv
@@ -1,26 +1,26 @@
hive_id;hive_name;inet_addr_id;description
-1;h00;358;
-2;h01;359;
-4;h02;360;
-7;h03;361;
-13;h04;430;
-14;h50;433;
-20;h05;354;
-21;h06;355;
-22;h07;357;
-28;h60;363;
-31;h63;431;
-37;h67;381;
-38;h97;537;
-39;h96;536;
-45;h74;485;
-50;h82;514;
-128;h19;565;
-148;h50;522;
-163;h92;457;
-173;h25;1759;
-192;h93;1778;
-193;h95;1779;
-205;vm1107;1861;
-208;vm1110;1864;
-210;vm1112;1833;
+1001;h00;358;
+1002;h01;359;
+1004;h02;360;
+1007;h03;361;
+1013;h04;430;
+1014;h50;433;
+1020;h05;354;
+1021;h06;355;
+1022;h07;357;
+1028;h60;363;
+1031;h63;431;
+1037;h67;381;
+1038;h97;537;
+1039;h96;536;
+1045;h74;485;
+1050;h82;514;
+1128;h19;565;
+1148;h50;522;
+1163;h92;457;
+1173;h25;1759;
+1192;h93;1778;
+1193;h95;1779;
+1205;vm1107;1861;
+1208;vm1110;1864;
+1210;vm1112;1833;
diff --git a/src/test/resources/migration/hosting/packet.csv b/src/test/resources/migration/hosting/packet.csv
index 92383a80..63637444 100644
--- a/src/test/resources/migration/hosting/packet.csv
+++ b/src/test/resources/migration/hosting/packet.csv
@@ -1,10 +1,10 @@
packet_id;basepacket_code;packet_name;bp_id;hive_id;created;cancelled;cur_inet_addr_id;old_inet_addr_id;free
-630;PAC/WEB;hsh00;213;14;2001-06-01;;473;;1
-968;SRV/MGD;vm1061;132;28;2013-04-01;;363;;0
-978;SRV/MGD;vm1050;213;14;2013-04-01;;433;;1
-1061;SRV/MGD;vm1068;100;37;2013-08-19;;381;;f
-1094;PAC/WEB;lug00;100;37;2013-09-10;;1168;;1
-1112;PAC/WEB;mim00;100;37;2013-09-17;;402;;1
-1447;SRV/MGD;vm1093;213;163;2014-11-28;;457;;t
-19959;PAC/WEB;dph00;542;163;2021-06-02;;574;;0
+10630;PAC/WEB;hsh00;213;1014;2001-06-01;;473;;1
+10968;SRV/MGD;vm1061;132;1028;2013-04-01;;363;;0
+10978;SRV/MGD;vm1050;213;1014;2013-04-01;;433;;1
+11061;SRV/MGD;vm1068;100;1037;2013-08-19;;381;;f
+11094;PAC/WEB;lug00;100;1037;2013-09-10;;1168;;1
+11112;PAC/WEB;mim00;100;1037;2013-09-17;;402;;1
+11447;SRV/MGD;vm1093;213;1163;2014-11-28;;457;;t
+19959;PAC/WEB;dph00;542;1163;2021-06-02;;574;;0
23611;SRV/CLD;vm2097;541;;2022-08-10;;1790;;0
diff --git a/src/test/resources/migration/hosting/packet_component.csv b/src/test/resources/migration/hosting/packet_component.csv
index 74004918..ce35034f 100644
--- a/src/test/resources/migration/hosting/packet_component.csv
+++ b/src/test/resources/migration/hosting/packet_component.csv
@@ -1,68 +1,68 @@
packet_component_id;packet_id;quantity;basecomponent_code;created;cancelled
-46105;1094;10;TRAFFIC;2017-03-27;
-46109;1094;5;MULTI;2017-03-27;
-46111;1094;0;DAEMON;2017-03-27;
-46113;1094;1024;QUOTA;2017-03-27;
-46117;1112;0;DAEMON;2017-03-27;
-46121;1112;20;TRAFFIC;2017-03-27;
-46122;1112;5;MULTI;2017-03-27;
-46123;1112;3072;QUOTA;2017-03-27;
-143133;1094;1;SLABASIC;2017-09-01;
-143483;1112;1;SLABASIC;2017-09-01;
-757383;1112;0;SLAEXT24H;;
-770533;1094;0;SLAEXT24H;;
-784283;1112;0;OFFICE;;
-797433;1094;0;OFFICE;;
-1228033;1112;0;STORAGE;;
-1241433;1094;0;STORAGE;;
-1266451;978;0;SLAPLAT4H;2021-10-05;
-1266452;978;250;TRAFFIC;2021-10-05;
-1266453;978;0;SLAPLAT8H;2021-10-05;
-1266454;978;0;SLAMAIL4H;2021-10-05;
-1266455;978;0;SLAMARIA8H;2021-10-05;
-1266456;978;0;SLAPGSQL4H;2021-10-05;
-1266457;978;0;SLAWEB4H;2021-10-05;
-1266458;978;0;SLAMARIA4H;2021-10-05;
-1266459;978;0;SLAPGSQL8H;2021-10-05;
-1266460;978;0;SLAOFFIC8H;2021-10-05;
-1266461;978;0;SLAWEB8H;2021-10-05;
-1266462;978;256000;STORAGE;2021-10-05;
-1266463;978;153600;QUOTA;2021-10-05;
-1266464;978;0;SLAOFFIC4H;2021-10-05;
-1266465;978;32768;RAM;2021-10-05;
-1266466;978;4;CPU;2021-10-05;
-1266467;978;1;SLABASIC;2021-10-05;
-1266468;978;0;SLAMAIL8H;2021-10-05;
-1275583;978;0;SLAPLAT2H;2022-04-20;
-1280533;978;0;SLAWEB2H;2022-04-20;
-1285483;978;0;SLAMARIA2H;2022-04-20;
-1290433;978;0;SLAPGSQL2H;2022-04-20;
-1295383;978;0;SLAMAIL2H;2022-04-20;
-1300333;978;0;SLAOFFIC2H;2022-04-20;
-1305933;1447;0;SLAWEB2H;2022-05-02;
-1305934;1447;0;SLAPLAT4H;2022-05-02;
-1305935;1447;0;SLAWEB8H;2022-05-02;
-1305936;1447;0;SLAOFFIC4H;2022-05-02;
-1305937;1447;0;SLAMARIA4H;2022-05-02;
-1305938;1447;0;SLAOFFIC8H;2022-05-02;
-1305939;1447;1;SLABASIC;2022-05-02;
-1305940;1447;0;SLAMAIL8H;2022-05-02;
-1305941;1447;0;SLAPGSQL4H;2022-05-02;
-1305942;1447;6;CPU;2022-05-02;
-1305943;1447;250;TRAFFIC;2022-05-02;
-1305944;1447;0;SLAOFFIC2H;2022-05-02;
-1305945;1447;0;SLAMAIL4H;2022-05-02;
-1305946;1447;0;SLAPGSQL2H;2022-05-02;
-1305947;1447;0;SLAMARIA2H;2022-05-02;
-1305948;1447;0;SLAMARIA8H;2022-05-02;
-1305949;1447;0;SLAWEB4H;2022-05-02;
-1305950;1447;16384;RAM;2022-05-02;
-1305951;1447;0;SLAPGSQL8H;2022-05-02;
-1305952;1447;512000;STORAGE;2022-05-02;
-1305953;1447;0;SLAMAIL2H;2022-05-02;
-1305954;1447;0;SLAPLAT2H;2022-05-02;
-1305955;1447;0;SLAPLAT8H;2022-05-02;
-1305956;1447;307200;QUOTA;2022-05-02;
+46105;11094;10;TRAFFIC;2017-03-27;
+46109;11094;5;MULTI;2017-03-27;
+46111;11094;0;DAEMON;2017-03-27;
+46113;11094;1024;QUOTA;2017-03-27;
+46117;11112;0;DAEMON;2017-03-27;
+46121;11112;20;TRAFFIC;2017-03-27;
+46122;11112;5;MULTI;2017-03-27;
+46123;11112;3072;QUOTA;2017-03-27;
+143133;11094;1;SLABASIC;2017-09-01;
+143483;11112;1;SLABASIC;2017-09-01;
+757383;11112;0;SLAEXT24H;;
+770533;11094;0;SLAEXT24H;;
+784283;11112;0;OFFICE;;
+797433;11094;0;OFFICE;;
+1228033;11112;0;STORAGE;;
+1241433;11094;0;STORAGE;;
+1266451;10978;0;SLAPLAT4H;2021-10-05;
+1266452;10978;250;TRAFFIC;2021-10-05;
+1266453;10978;0;SLAPLAT8H;2021-10-05;
+1266454;10978;0;SLAMAIL4H;2021-10-05;
+1266455;10978;0;SLAMARIA8H;2021-10-05;
+1266456;10978;0;SLAPGSQL4H;2021-10-05;
+1266457;10978;0;SLAWEB4H;2021-10-05;
+1266458;10978;0;SLAMARIA4H;2021-10-05;
+1266459;10978;0;SLAPGSQL8H;2021-10-05;
+1266460;10978;0;SLAOFFIC8H;2021-10-05;
+1266461;10978;0;SLAWEB8H;2021-10-05;
+1266462;10978;256000;STORAGE;2021-10-05;
+1266463;10978;153600;QUOTA;2021-10-05;
+1266464;10978;0;SLAOFFIC4H;2021-10-05;
+1266465;10978;32768;RAM;2021-10-05;
+1266466;10978;4;CPU;2021-10-05;
+1266467;10978;1;SLABASIC;2021-10-05;
+1266468;10978;0;SLAMAIL8H;2021-10-05;
+1275583;10978;0;SLAPLAT2H;2022-04-20;
+1280533;10978;0;SLAWEB2H;2022-04-20;
+1285483;10978;0;SLAMARIA2H;2022-04-20;
+1290433;10978;0;SLAPGSQL2H;2022-04-20;
+1295383;10978;0;SLAMAIL2H;2022-04-20;
+1300333;10978;0;SLAOFFIC2H;2022-04-20;
+1305933;11447;0;SLAWEB2H;2022-05-02;
+1305934;11447;0;SLAPLAT4H;2022-05-02;
+1305935;11447;0;SLAWEB8H;2022-05-02;
+1305936;11447;0;SLAOFFIC4H;2022-05-02;
+1305937;11447;0;SLAMARIA4H;2022-05-02;
+1305938;11447;0;SLAOFFIC8H;2022-05-02;
+1305939;11447;1;SLABASIC;2022-05-02;
+1305940;11447;0;SLAMAIL8H;2022-05-02;
+1305941;11447;0;SLAPGSQL4H;2022-05-02;
+1305942;11447;6;CPU;2022-05-02;
+1305943;11447;250;TRAFFIC;2022-05-02;
+1305944;11447;0;SLAOFFIC2H;2022-05-02;
+1305945;11447;0;SLAMAIL4H;2022-05-02;
+1305946;11447;0;SLAPGSQL2H;2022-05-02;
+1305947;11447;0;SLAMARIA2H;2022-05-02;
+1305948;11447;0;SLAMARIA8H;2022-05-02;
+1305949;11447;0;SLAWEB4H;2022-05-02;
+1305950;11447;16384;RAM;2022-05-02;
+1305951;11447;0;SLAPGSQL8H;2022-05-02;
+1305952;11447;512000;STORAGE;2022-05-02;
+1305953;11447;0;SLAMAIL2H;2022-05-02;
+1305954;11447;0;SLAPLAT2H;2022-05-02;
+1305955;11447;0;SLAPLAT8H;2022-05-02;
+1305956;11447;307200;QUOTA;2022-05-02;
1312013;23611;1;SLABASIC;2022-08-10;
1312014;23611;0;BANDWIDTH;2022-08-10;
1312015;23611;12288;RAM;2022-08-10;
@@ -73,33 +73,33 @@ packet_component_id;packet_id;quantity;basecomponent_code;created;cancelled
1312020;23611;8;CPU;2022-08-10;
1312021;23611;250;TRAFFIC;2022-08-10;
1312022;23611;0;SLAINFR4H;2022-08-10;
-1313883;978;0;BANDWIDTH;;
-1316583;1447;0;BANDWIDTH;;
-1338074;968;0;SLAMARIA2H;2023-09-05;
-1338075;968;384000;QUOTA;2023-09-05;
-1338076;968;1;SLAMAIL8H;2023-09-05;
-1338077;968;0;BANDWIDTH;2023-09-05;
-1338078;968;0;SLAWEB2H;2023-09-05;
-1338079;968;0;SLAOFFIC4H;2023-09-05;
-1338080;968;256000;STORAGE;2023-09-05;
-1338081;968;0;SLAPLAT4H;2023-09-05;
-1338082;968;0;SLAPGSQL2H;2023-09-05;
-1338083;968;0;SLAPLAT2H;2023-09-05;
-1338084;968;250;TRAFFIC;2023-09-05;
-1338085;968;1;SLAMARIA8H;2023-09-05;
-1338086;968;0;SLAPGSQL4H;2023-09-05;
-1338087;968;0;SLAMAIL2H;2023-09-05;
-1338088;968;1;SLAPLAT8H;2023-09-05;
-1338089;968;0;SLAWEB4H;2023-09-05;
-1338090;968;6;CPU;2023-09-05;
-1338091;968;1;SLAPGSQL8H;2023-09-05;
-1338092;968;0;SLAMARIA4H;2023-09-05;
-1338093;968;0;SLAMAIL4H;2023-09-05;
-1338094;968;14336;RAM;2023-09-05;
-1338095;968;0;SLAOFFIC2H;2023-09-05;
-1338096;968;0;SLAOFFIC8H;2023-09-05;
-1338097;968;1;SLABASIC;2023-09-05;
-1338098;968;1;SLAWEB8H;2023-09-05;
+1313883;10978;0;BANDWIDTH;;
+1316583;11447;0;BANDWIDTH;;
+1338074;10968;0;SLAMARIA2H;2023-09-05;
+1338075;10968;384000;QUOTA;2023-09-05;
+1338076;10968;1;SLAMAIL8H;2023-09-05;
+1338077;10968;0;BANDWIDTH;2023-09-05;
+1338078;10968;0;SLAWEB2H;2023-09-05;
+1338079;10968;0;SLAOFFIC4H;2023-09-05;
+1338080;10968;256000;STORAGE;2023-09-05;
+1338081;10968;0;SLAPLAT4H;2023-09-05;
+1338082;10968;0;SLAPGSQL2H;2023-09-05;
+1338083;10968;0;SLAPLAT2H;2023-09-05;
+1338084;10968;250;TRAFFIC;2023-09-05;
+1338085;10968;1;SLAMARIA8H;2023-09-05;
+1338086;10968;0;SLAPGSQL4H;2023-09-05;
+1338087;10968;0;SLAMAIL2H;2023-09-05;
+1338088;10968;1;SLAPLAT8H;2023-09-05;
+1338089;10968;0;SLAWEB4H;2023-09-05;
+1338090;10968;6;CPU;2023-09-05;
+1338091;10968;1;SLAPGSQL8H;2023-09-05;
+1338092;10968;0;SLAMARIA4H;2023-09-05;
+1338093;10968;0;SLAMAIL4H;2023-09-05;
+1338094;10968;14336;RAM;2023-09-05;
+1338095;10968;0;SLAOFFIC2H;2023-09-05;
+1338096;10968;0;SLAOFFIC8H;2023-09-05;
+1338097;10968;1;SLABASIC;2023-09-05;
+1338098;10968;1;SLAWEB8H;2023-09-05;
1339228;19959;20;TRAFFIC;2023-10-27;
1339229;19959;1;SLABASIC;2023-10-27;
1339230;19959;0;DAEMON;2023-10-27;
@@ -108,36 +108,36 @@ packet_component_id;packet_id;quantity;basecomponent_code;created;cancelled
1339233;19959;0;SLAEXT24H;2023-10-27;
1339234;19959;0;OFFICE;2023-10-27;
1339235;19959;1;MULTI;2023-10-27;
-1341088;1061;0;SLAOFFIC2H;2023-12-14;
-1341089;1061;0;SLAOFFIC8H;2023-12-14;
-1341090;1061;256000;STORAGE;2023-12-14;
-1341091;1061;0;SLAMAIL4H;2023-12-14;
-1341092;1061;0;SLAMAIL2H;2023-12-14;
-1341093;1061;0;SLAPLAT2H;2023-12-14;
-1341094;1061;4096;RAM;2023-12-14;
-1341095;1061;0;SLAPLAT4H;2023-12-14;
-1341096;1061;1;SLAPGSQL8H;2023-12-14;
-1341097;1061;2;CPU;2023-12-14;
-1341098;1061;0;QUOTA;2023-12-14;
-1341099;1061;0;SLAMAIL8H;2023-12-14;
-1341100;1061;1;SLABASIC;2023-12-14;
-1341101;1061;1;SLAMARIA8H;2023-12-14;
-1341102;1061;0;SLAPGSQL4H;2023-12-14;
-1341103;1061;0;SLAPGSQL2H;2023-12-14;
-1341104;1061;0;SLAMARIA4H;2023-12-14;
-1341105;1061;0;SLAOFFIC4H;2023-12-14;
-1341106;1061;1;SLAPLAT8H;2023-12-14;
-1341107;1061;0;BANDWIDTH;2023-12-14;
-1341108;1061;1;SLAWEB8H;2023-12-14;
-1341109;1061;0;SLAWEB2H;2023-12-14;
-1341110;1061;0;SLAMARIA2H;2023-12-14;
-1341111;1061;250;TRAFFIC;2023-12-14;
-1341112;1061;0;SLAWEB4H;2023-12-14;
-1346628;630;0;SLAEXT24H;2024-03-19;
-1346629;630;0;OFFICE;2024-03-19;
-1346630;630;16384;QUOTA;2024-03-19;
-1346631;630;0;DAEMON;2024-03-19;
-1346632;630;10240;STORAGE;2024-03-19;
-1346633;630;1;SLABASIC;2024-03-19;
-1346634;630;50;TRAFFIC;2024-03-19;
-1346635;630;25;MULTI;2024-03-19;
+1341088;11061;0;SLAOFFIC2H;2023-12-14;
+1341089;11061;0;SLAOFFIC8H;2023-12-14;
+1341090;11061;256000;STORAGE;2023-12-14;
+1341091;11061;0;SLAMAIL4H;2023-12-14;
+1341092;11061;0;SLAMAIL2H;2023-12-14;
+1341093;11061;0;SLAPLAT2H;2023-12-14;
+1341094;11061;4096;RAM;2023-12-14;
+1341095;11061;0;SLAPLAT4H;2023-12-14;
+1341096;11061;1;SLAPGSQL8H;2023-12-14;
+1341097;11061;2;CPU;2023-12-14;
+1341098;11061;0;QUOTA;2023-12-14;
+1341099;11061;0;SLAMAIL8H;2023-12-14;
+1341100;11061;1;SLABASIC;2023-12-14;
+1341101;11061;1;SLAMARIA8H;2023-12-14;
+1341102;11061;0;SLAPGSQL4H;2023-12-14;
+1341103;11061;0;SLAPGSQL2H;2023-12-14;
+1341104;11061;0;SLAMARIA4H;2023-12-14;
+1341105;11061;0;SLAOFFIC4H;2023-12-14;
+1341106;11061;1;SLAPLAT8H;2023-12-14;
+1341107;11061;0;BANDWIDTH;2023-12-14;
+1341108;11061;1;SLAWEB8H;2023-12-14;
+1341109;11061;0;SLAWEB2H;2023-12-14;
+1341110;11061;0;SLAMARIA2H;2023-12-14;
+1341111;11061;250;TRAFFIC;2023-12-14;
+1341112;11061;0;SLAWEB4H;2023-12-14;
+1346628;10630;0;SLAEXT24H;2024-03-19;
+1346629;10630;0;OFFICE;2024-03-19;
+1346630;10630;16384;QUOTA;2024-03-19;
+1346631;10630;0;DAEMON;2024-03-19;
+1346632;10630;10240;STORAGE;2024-03-19;
+1346633;10630;1;SLABASIC;2024-03-19;
+1346634;10630;50;TRAFFIC;2024-03-19;
+1346635;10630;25;MULTI;2024-03-19;
diff --git a/src/test/resources/migration/hosting/unixuser.csv b/src/test/resources/migration/hosting/unixuser.csv
index 7c75fcf5..42d2ed18 100644
--- a/src/test/resources/migration/hosting/unixuser.csv
+++ b/src/test/resources/migration/hosting/unixuser.csv
@@ -1,19 +1,19 @@
unixuser_id;name;comment;shell;homedir;locked;packet_id;userid;quota_softlimit;quota_hardlimit;storage_softlimit;storage_hardlimit
-100824;hsh00;Hostsharing Paket;/bin/bash;/home/pacs/hsh00;0;630;10000;0;0;0;0
+100824;hsh00;Hostsharing Paket;/bin/bash;/home/pacs/hsh00;0;10630;10000;0;0;0;0
-5803;lug00;LUGs;/bin/bash;/home/pacs/lug00;0;1094;102090;0;0;0;0
-5805;lug00-wla.1;Paul Klemm;/bin/bash;/home/pacs/lug00/users/deaf;0;1094;102091;4;0;0;0
-5809;lug00-wla.2;Walter Müller;/bin/bash;/home/pacs/lug00/users/marl;0;1094;102093;4;8;0;0
-5811;lug00-ola.a;LUG OLA - POP a;/usr/bin/passwd;/home/pacs/lug00/users/marl.a;1;1094;102094;0;0;0;0
-5813;lug00-ola.b;LUG OLA - POP b;/usr/bin/passwd;/home/pacs/lug00/users/marl.b;1;1094;102095;0;0;0;0
-5835;lug00-test;Test;/usr/bin/passwd;/home/pacs/lug00/users/test;0;1094;102106;2000000;4000000;20;0
+5803;lug00;LUGs;/bin/bash;/home/pacs/lug00;0;11094;102090;0;0;0;0
+5805;lug00-wla.1;Paul Klemm;/bin/bash;/home/pacs/lug00/users/deaf;0;11094;102091;4;0;0;0
+5809;lug00-wla.2;Walter Müller;/bin/bash;/home/pacs/lug00/users/marl;0;11094;102093;4;8;0;0
+5811;lug00-ola.a;LUG OLA - POP a;/usr/bin/passwd;/home/pacs/lug00/users/marl.a;1;11094;102094;0;0;0;0
+5813;lug00-ola.b;LUG OLA - POP b;/usr/bin/passwd;/home/pacs/lug00/users/marl.b;1;11094;102095;0;0;0;0
+5835;lug00-test;Test;/usr/bin/passwd;/home/pacs/lug00/users/test;0;11094;102106;2000000;4000000;20;0
-100705;hsh00-mim;Michael Mellis;/bin/false;/home/pacs/hsh00/users/mi;0;630;10003;0;0;0;0
-5964;mim00;Michael Mellis;/bin/bash;/home/pacs/mim00;0;1112;102147;0;0;0;0
-5966;mim00-1981;Jahrgangstreffen 1981;/bin/bash;/home/pacs/mim00/users/1981;0;1112;102148;128;256;0;0
-5990;mim00-mail;Mailbox;/bin/bash;/home/pacs/mim00/users/mail;0;1112;102160;0;0;0;0
+100705;hsh00-mim;Michael Mellis;/bin/false;/home/pacs/hsh00/users/mi;0;10630;10003;0;0;0;0
+5964;mim00;Michael Mellis;/bin/bash;/home/pacs/mim00;0;11112;102147;0;0;0;0
+5966;mim00-1981;Jahrgangstreffen 1981;/bin/bash;/home/pacs/mim00/users/1981;0;11112;102148;128;256;0;0
+5990;mim00-mail;Mailbox;/bin/bash;/home/pacs/mim00/users/mail;0;11112;102160;0;0;0;0
-167846;hsh00-dph;hsh00-uph;/bin/false;/home/pacs/hsh00/users/uph;0;630;110568;0;0;0;0
+167846;hsh00-dph;hsh00-uph;/bin/false;/home/pacs/hsh00/users/uph;0;10630;110568;0;0;0;0
169546;dph00;Reinhard Wiese;/bin/bash;/home/pacs/dph00;0;19959;110593;0;0;0;0
169596;dph00-dph;Domain admin;/bin/bash;/home/pacs/dph00/users/uph;0;19959;110594;0;0;0;0