Compare commits

..

No commits in common. "f2084c4610f9dd08b3beb4a6c3734b9d5ddbcc40" and "5046e9a2967d8694b31f5249fb501390dfadfe9d" have entirely different histories.

19 changed files with 485 additions and 733 deletions

View File

@ -97,7 +97,6 @@ public class HsDomainDnsSetupHostingAssetValidator extends HostingAssetEntityVal
String toZonefileString(final HsHostingAsset assetEntity) { String toZonefileString(final HsHostingAsset assetEntity) {
// TODO.spec: we need to expand the templates (auto-...) in the same way as in Saltstack, with proper IP-numbers etc. // TODO.spec: we need to expand the templates (auto-...) in the same way as in Saltstack, with proper IP-numbers etc.
// TODO.impl: auto-AUTOCONFIG-RR auto-AUTODISCOVER-RR missing
return """ return """
$TTL {ttl} $TTL {ttl}

View File

@ -14,18 +14,17 @@ 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 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_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_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$";
public static final int EMAIL_ADDRESS_MAX_LENGTH = 320; // according to RFC 5321 and RFC 5322 public static final int EMAIL_ADDRESS_MAX_LENGTH = 320; // according to RFC 5321 and RFC 5322
HsEMailAddressHostingAssetValidator() { HsEMailAddressHostingAssetValidator() {
super( HsHostingAssetType.EMAIL_ADDRESS, super( HsHostingAssetType.EMAIL_ADDRESS,
AlarmContact.isOptional(), AlarmContact.isOptional(),
stringProperty("local-part").matchesRegEx("^" + EMAIL_ADDRESS_LOCAL_PART_REGEX + "$").writeOnce().optional(), stringProperty("local-part").matchesRegEx("^" + EMAIL_ADDRESS_LOCAL_PART_REGEX + "$").required(),
stringProperty("sub-domain").matchesRegEx("^" + EMAIL_ADDRESS_LOCAL_PART_REGEX + "$").writeOnce().optional(), stringProperty("sub-domain").matchesRegEx("^" + EMAIL_ADDRESS_LOCAL_PART_REGEX + "$").optional(),
arrayOf( arrayOf(
stringProperty("target").maxLength(EMAIL_ADDRESS_MAX_LENGTH).matchesRegEx(UNIX_USER_REGEX, EMAIL_ADDRESS_FULL_REGEX, NOBODY_REGEX) stringProperty("target").maxLength(EMAIL_ADDRESS_MAX_LENGTH).matchesRegEx(UNIX_USER_REGEX, EMAIL_ADDRESS_FULL_REGEX)
).required().minLength(1)); ).required().minLength(1));
} }
@ -44,9 +43,9 @@ class HsEMailAddressHostingAssetValidator extends HostingAssetEntityValidator {
} }
private static String combineIdentifier(final HsHostingAsset emailAddressAssetEntity) { private static String combineIdentifier(final HsHostingAsset emailAddressAssetEntity) {
return ofNullable(emailAddressAssetEntity.getDirectValue("local-part", String.class)).orElse("") return emailAddressAssetEntity.getDirectValue("local-part", String.class) +
+ "@" ofNullable(emailAddressAssetEntity.getDirectValue("sub-domain", String.class)).map(s -> "." + s).orElse("") +
+ ofNullable(emailAddressAssetEntity.getDirectValue("sub-domain", String.class)).map(s -> s + ".").orElse("") "@" +
+ emailAddressAssetEntity.getParentAsset().getParentAsset().getIdentifier(); emailAddressAssetEntity.getParentAsset().getIdentifier();
} }
} }

View File

@ -43,10 +43,10 @@ public class ArrayProperty<P extends ValidatableProperty<?, E>, E> extends Valid
@Override @Override
protected void validate(final List<String> result, final E[] propValue, final PropertiesProvider propProvider) { protected void validate(final List<String> result, final E[] propValue, final PropertiesProvider propProvider) {
if (minLength != null && propValue.length < minLength) { if (minLength != null && propValue.length < minLength) {
result.add(propertyName + "' length is expected to be at min " + minLength + " but length of " + displayArray(propValue) + " is " + propValue.length); result.add(propertyName + "' length is expected to be at min " + minLength + " but length of " + display(propValue) + " is " + propValue.length);
} }
if (maxLength != null && propValue.length > maxLength) { if (maxLength != null && propValue.length > maxLength) {
result.add(propertyName + "' length is expected to be at max " + maxLength + " but length of " + displayArray(propValue) + " is " + propValue.length); result.add(propertyName + "' length is expected to be at max " + maxLength + " but length of " + display(propValue) + " is " + propValue.length);
} }
stream(propValue).forEach(e -> elementsOf.validate(result, e, propProvider)); stream(propValue).forEach(e -> elementsOf.validate(result, e, propProvider));
} }
@ -57,7 +57,7 @@ public class ArrayProperty<P extends ValidatableProperty<?, E>, E> extends Valid
} }
@SafeVarargs @SafeVarargs
private String displayArray(final E... propValue) { private String display(final E... propValue) {
return "[" + Arrays.toString(propValue) + "]"; return "[" + Arrays.toString(propValue) + "]";
} }
} }

View File

@ -77,7 +77,6 @@ public class StringProperty<P extends StringProperty<P>> extends ValidatableProp
@Override @Override
protected void validate(final List<String> result, final String propValue, final PropertiesProvider propProvider) { protected void validate(final List<String> result, final String propValue, final PropertiesProvider propProvider) {
super.validate(result, propValue, propProvider);
if (minLength != null && propValue.length()<minLength) { 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 " + display(propValue) + " is " + propValue.length());
} }
@ -88,10 +87,12 @@ public class StringProperty<P extends StringProperty<P>> extends ValidatableProp
stream(matchesRegEx).map(p -> p.matcher(propValue)).noneMatch(Matcher::matches)) { 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":"")); 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));
}
} }
@Override private String display(final String propValue) {
protected String display(final String propValue) {
return undisclosed ? "provided value" : ("'" + propValue + "'"); return undisclosed ? "provided value" : ("'" + propValue + "'");
} }

View File

@ -34,7 +34,7 @@ import static org.apache.commons.lang3.ObjectUtils.isArray;
public abstract class ValidatableProperty<P extends ValidatableProperty<?, ?>, T> { public abstract class ValidatableProperty<P extends ValidatableProperty<?, ?>, T> {
protected static final String[] KEY_ORDER_HEAD = Array.of("propertyName"); protected static final String[] KEY_ORDER_HEAD = Array.of("propertyName");
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_TAIL = Array.of("required", "requiresAtLeastOneOf", "requiresAtMaxOneOf", "defaultValue", "readOnly", "writeOnly", "computed", "isTotalsValidator", "thresholdPercentage");
protected static final String[] KEY_ORDER = Array.join(KEY_ORDER_HEAD, KEY_ORDER_TAIL); protected static final String[] KEY_ORDER = Array.join(KEY_ORDER_HEAD, KEY_ORDER_TAIL);
final Class<T> type; final Class<T> type;
@ -66,9 +66,6 @@ public abstract class ValidatableProperty<P extends ValidatableProperty<?, ?>, T
@Accessors(makeFinal = true, chain = true, fluent = false) @Accessors(makeFinal = true, chain = true, fluent = false)
private boolean writeOnly; private boolean writeOnly;
@Accessors(makeFinal = true, chain = true, fluent = false)
private boolean writeOnce;
private Function<ValidatableProperty<?, ?>[], T[]> deferredInit; private Function<ValidatableProperty<?, ?>[], T[]> deferredInit;
private boolean isTotalsValidator = false; private boolean isTotalsValidator = false;
@ -100,12 +97,7 @@ public abstract class ValidatableProperty<P extends ValidatableProperty<?, ?>, T
public P writeOnly() { public P writeOnly() {
this.writeOnly = true; this.writeOnly = true;
optional(); // FIXME: sounds wrong optional();
return self();
}
public P writeOnce() {
this.writeOnce = true;
return self(); return self();
} }
@ -247,12 +239,7 @@ public abstract class ValidatableProperty<P extends ValidatableProperty<?, ?>, T
} }
} }
protected void validate(final List<String> result, final T propValue, final PropertiesProvider propProvider) { protected abstract void validate(final List<String> 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) { public void verifyConsistency(final Map.Entry<? extends Enum<?>, ?> typeDef) {
if (required == null && requiresAtLeastOneOf == null && requiresAtMaxOneOf == null && !readOnly && defaultValue == null) { if (required == null && requiresAtLeastOneOf == null && requiresAtMaxOneOf == null && !readOnly && defaultValue == null) {
@ -265,10 +252,6 @@ public abstract class ValidatableProperty<P extends ValidatableProperty<?, ?>, T
return (T) Optional.ofNullable(propValues.get(propertyName)).orElse(defaultValue); 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(); protected abstract String simpleTypeName();
public Map<String, Object> toOrderedMap() { public Map<String, Object> toOrderedMap() {

View File

@ -5,10 +5,8 @@ import net.hostsharing.hsadminng.hs.booking.item.HsBookingItemType;
import net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetEntity; import net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetEntity;
import net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetEntity.HsHostingAssetEntityBuilder; import net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetEntity.HsHostingAssetEntityBuilder;
import net.hostsharing.hsadminng.mapper.Array; import net.hostsharing.hsadminng.mapper.Array;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Map; import java.util.Map;
import static java.util.Map.entry; import static java.util.Map.entry;
@ -62,11 +60,6 @@ class HsDomainDnsSetupHostingAssetValidatorUnitTest {
)); ));
} }
@BeforeEach
void reset() {
HsDomainDnsSetupHostingAssetValidator.addZonefileErrorsTo(null);
}
@Test @Test
void containsExpectedProperties() { void containsExpectedProperties() {
// when // when
@ -325,30 +318,4 @@ class HsDomainDnsSetupHostingAssetValidatorUnitTest {
"[example.org|DNS] zone example.org/IN: not loaded due to errors." "[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<String>();
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."
);
}
} }

View File

@ -59,7 +59,7 @@ class HsDomainHttpSetupHostingAssetValidatorUnitTest {
"{type=string, propertyName=passenger-nodejs, matchesRegEx=[^/.*], provided=[/usr/bin/node], defaultValue=/usr/bin/node}", "{type=string, propertyName=passenger-nodejs, matchesRegEx=[^/.*], provided=[/usr/bin/node], defaultValue=/usr/bin/node}",
"{type=string, propertyName=passenger-python, matchesRegEx=[^/.*], provided=[/usr/bin/python3], defaultValue=/usr/bin/python3}", "{type=string, propertyName=passenger-python, matchesRegEx=[^/.*], provided=[/usr/bin/python3], defaultValue=/usr/bin/python3}",
"{type=string, propertyName=passenger-ruby, matchesRegEx=[^/.*], provided=[/usr/bin/ruby], defaultValue=/usr/bin/ruby}", "{type=string, propertyName=passenger-ruby, matchesRegEx=[^/.*], provided=[/usr/bin/ruby], defaultValue=/usr/bin/ruby}",
"{type=string[], propertyName=subdomains, elementsOf={type=string, propertyName=subdomains, matchesRegEx=[(\\*|(?!-)[A-Za-z0-9-]{1,63}(?<!-))], required=true}}" "{type=string[], propertyName=subdomains, elementsOf={type=string, propertyName=subdomains, matchesRegEx=[(?!-)[A-Za-z0-9-]{1,63}(?<!-)], required=true}}"
); );
} }
@ -157,8 +157,8 @@ class HsDomainHttpSetupHostingAssetValidatorUnitTest {
assertThat(result).containsExactlyInAnyOrder( assertThat(result).containsExactlyInAnyOrder(
"'DOMAIN_HTTP_SETUP:example.org|HTTP.config.htdocsfallback' is expected to be of type Boolean, but is of type String", "'DOMAIN_HTTP_SETUP:example.org|HTTP.config.htdocsfallback' is expected to be of type Boolean, but is of type String",
"'DOMAIN_HTTP_SETUP:example.org|HTTP.config.fcgi-php-bin' is expected to match any of [^/.*] but 'false' does not match", "'DOMAIN_HTTP_SETUP:example.org|HTTP.config.fcgi-php-bin' is expected to match any of [^/.*] but 'false' does not match",
"'DOMAIN_HTTP_SETUP:example.org|HTTP.config.subdomains' is expected to match any of [(\\*|(?!-)[A-Za-z0-9-]{1,63}(?<!-))] but '' does not match", "'DOMAIN_HTTP_SETUP:example.org|HTTP.config.subdomains' is expected to match any of [(?!-)[A-Za-z0-9-]{1,63}(?<!-)] but '' does not match",
"'DOMAIN_HTTP_SETUP:example.org|HTTP.config.subdomains' is expected to match any of [(\\*|(?!-)[A-Za-z0-9-]{1,63}(?<!-))] but '@' does not match", "'DOMAIN_HTTP_SETUP:example.org|HTTP.config.subdomains' is expected to match any of [(?!-)[A-Za-z0-9-]{1,63}(?<!-)] but '@' does not match",
"'DOMAIN_HTTP_SETUP:example.org|HTTP.config.subdomains' is expected to match any of [(\\*|(?!-)[A-Za-z0-9-]{1,63}(?<!-))] but 'example.com' does not match"); "'DOMAIN_HTTP_SETUP:example.org|HTTP.config.subdomains' is expected to match any of [(?!-)[A-Za-z0-9-]{1,63}(?<!-)] but 'example.com' does not match");
} }
} }

View File

@ -15,19 +15,14 @@ import static org.assertj.core.api.Assertions.assertThat;
class HsEMailAddressHostingAssetValidatorUnitTest { class HsEMailAddressHostingAssetValidatorUnitTest {
final static HsHostingAssetEntity domainSetup = HsHostingAssetEntity.builder() final static HsHostingAssetEntity domainMboxetup = HsHostingAssetEntity.builder()
.type(DOMAIN_MBOX_SETUP) .type(DOMAIN_MBOX_SETUP)
.identifier("example.org") .identifier("example.org")
.build(); .build();
final static HsHostingAssetEntity domainMboxSetup = HsHostingAssetEntity.builder()
.type(DOMAIN_MBOX_SETUP)
.identifier("example.org|MBOX")
.parentAsset(domainSetup)
.build();
static HsHostingAssetEntity.HsHostingAssetEntityBuilder validEntityBuilder() { static HsHostingAssetEntity.HsHostingAssetEntityBuilder validEntityBuilder() {
return HsHostingAssetEntity.builder() return HsHostingAssetEntity.builder()
.type(EMAIL_ADDRESS) .type(EMAIL_ADDRESS)
.parentAsset(domainMboxSetup) .parentAsset(domainMboxetup)
.identifier("test@example.org") .identifier("test@example.org")
.config(Map.ofEntries( .config(Map.ofEntries(
entry("local-part", "test"), entry("local-part", "test"),
@ -42,9 +37,9 @@ class HsEMailAddressHostingAssetValidatorUnitTest {
// then // then
assertThat(validator.properties()).map(Map::toString).containsExactlyInAnyOrder( assertThat(validator.properties()).map(Map::toString).containsExactlyInAnyOrder(
"{type=string, propertyName=local-part, matchesRegEx=[^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+$], writeOnce=true}", "{type=string, propertyName=local-part, matchesRegEx=[^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+$], required=true}",
"{type=string, propertyName=sub-domain, matchesRegEx=[^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+$], writeOnce=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.-]+$, ^nobody$], maxLength=320}, required=true, minLength=1}"); "{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}");
} }
@Test @Test
@ -78,7 +73,7 @@ class HsEMailAddressHostingAssetValidatorUnitTest {
assertThat(result).containsExactlyInAnyOrder( 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.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.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.-]+$, ^nobody$] 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.-]+$] but 'garbage' does not match any");
} }
@Test @Test

View File

@ -16,7 +16,6 @@ import net.hostsharing.hsadminng.hs.hosting.asset.validators.HostingAssetEntityV
import net.hostsharing.hsadminng.hs.hosting.asset.validators.HsDomainDnsSetupHostingAssetValidator; import net.hostsharing.hsadminng.hs.hosting.asset.validators.HsDomainDnsSetupHostingAssetValidator;
import net.hostsharing.hsadminng.rbac.test.JpaAttempt; import net.hostsharing.hsadminng.rbac.test.JpaAttempt;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.junit.jupiter.api.MethodOrderer; import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Tag;
@ -36,8 +35,6 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.TreeMap; import java.util.TreeMap;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
@ -57,7 +54,6 @@ 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_MBOX_SETUP;
import static net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType.DOMAIN_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.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.EMAIL_ALIAS;
import static net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType.IPV4_NUMBER; import static net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType.IPV4_NUMBER;
import static net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType.MANAGED_SERVER; import static net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType.MANAGED_SERVER;
@ -122,9 +118,19 @@ import static org.assertj.core.api.Assumptions.assumeThat;
@ExtendWith(OrderedDependedTestsExtension.class) @ExtendWith(OrderedDependedTestsExtension.class)
public class ImportHostingAssets extends ImportOfficeData { public class ImportHostingAssets extends ImportOfficeData {
static final int BI_PACKET_ID_OFFSET = 3000000; static final Integer IP_NUMBER_ID_OFFSET = 1000000;
private static final Set<String> NOBODY_SUBSTITUTES = Set.of("nomail", "bounce"); 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 List<String> zonefileErrors = new ArrayList<>(); static List<String> zonefileErrors = new ArrayList<>();
record Hive(int hive_id, String hive_name, int inet_addr_id, AtomicReference<HsHostingAssetRealEntity> serverRef) {} record Hive(int hive_id, String hive_name, int inet_addr_id, AtomicReference<HsHostingAssetRealEntity> serverRef) {}
@ -132,21 +138,7 @@ public class ImportHostingAssets extends ImportOfficeData {
static Map<Integer, HsBookingProjectEntity> bookingProjects = new WriteOnceMap<>(); static Map<Integer, HsBookingProjectEntity> bookingProjects = new WriteOnceMap<>();
static Map<Integer, HsBookingItemEntity> bookingItems = new WriteOnceMap<>(); static Map<Integer, HsBookingItemEntity> bookingItems = new WriteOnceMap<>();
static Map<Integer, Hive> hives = new WriteOnceMap<>(); static Map<Integer, Hive> hives = new WriteOnceMap<>();
static Map<Integer, HsHostingAssetRealEntity> hostingAssets = new WriteOnceMap<>(); // TODO.impl: separate maps for each type?
static Map<Integer, HsHostingAssetRealEntity> ipNumberAssets = new WriteOnceMap<>();
static Map<Integer, HsHostingAssetRealEntity> packetAssets = new WriteOnceMap<>();
static Map<Integer, HsHostingAssetRealEntity> unixUserAssets = new WriteOnceMap<>();
static Map<Integer, HsHostingAssetRealEntity> emailAliasAssets = new WriteOnceMap<>();
static Map<Integer, HsHostingAssetRealEntity> dbInstanceAssets = new WriteOnceMap<>();
static Map<Integer, HsHostingAssetRealEntity> dbUserAssets = new WriteOnceMap<>();
static Map<Integer, HsHostingAssetRealEntity> dbAssets = new WriteOnceMap<>();
static Map<Integer, HsHostingAssetRealEntity> domainSetupAssets = new WriteOnceMap<>();
static Map<Integer, HsHostingAssetRealEntity> domainDnsSetupAssets = new WriteOnceMap<>();
static Map<Integer, HsHostingAssetRealEntity> domainHttpSetupAssets = new WriteOnceMap<>();
static Map<Integer, HsHostingAssetRealEntity> domainMBoxSetupAssets = new WriteOnceMap<>();
static Map<Integer, HsHostingAssetRealEntity> domainSmtpSetupAssets = new WriteOnceMap<>();
static Map<Integer, HsHostingAssetRealEntity> emailAddressAssets = new WriteOnceMap<>();
static Map<String, HsHostingAssetRealEntity> dbUsersByEngineAndName = new WriteOnceMap<>(); static Map<String, HsHostingAssetRealEntity> dbUsersByEngineAndName = new WriteOnceMap<>();
static Map<String, HsHostingAssetRealEntity> domainSetupsByName = new WriteOnceMap<>(); static Map<String, HsHostingAssetRealEntity> domainSetupsByName = new WriteOnceMap<>();
@ -179,13 +171,13 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyIpNumbers() { void verifyIpNumbers() {
assumeThatWeAreImportingControlledTestData(); assumeThatWeAreImportingControlledTestData();
assertThat(firstOfEach(5, ipNumberAssets)).isEqualToIgnoringWhitespace(""" assertThat(firstOfEachType(5, IPV4_NUMBER)).isEqualToIgnoringWhitespace("""
{ {
363=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.34), 1000363=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.34),
381=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.52), 1000381=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.52),
402=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.73), 1000402=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.73),
433=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.104), 1000433=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.104),
457=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.128) 1000457=HsHostingAssetRealEntity(IPV4_NUMBER, 83.223.95.128)
} }
"""); """);
} }
@ -208,11 +200,11 @@ public class ImportHostingAssets extends ImportOfficeData {
assertThat(toJsonFormattedString(first(5, hives))).isEqualToIgnoringWhitespace(""" assertThat(toJsonFormattedString(first(5, hives))).isEqualToIgnoringWhitespace("""
{ {
1001=Hive[hive_id=1001, hive_name=h00, inet_addr_id=358, serverRef=null], 2000001=Hive[hive_id=1, hive_name=h00, inet_addr_id=358, serverRef=null],
1002=Hive[hive_id=1002, hive_name=h01, inet_addr_id=359, serverRef=null], 2000002=Hive[hive_id=2, hive_name=h01, inet_addr_id=359, serverRef=null],
1004=Hive[hive_id=1004, hive_name=h02, inet_addr_id=360, serverRef=null], 2000004=Hive[hive_id=4, hive_name=h02, inet_addr_id=360, serverRef=null],
1007=Hive[hive_id=1007, hive_name=h03, inet_addr_id=361, serverRef=null], 2000007=Hive[hive_id=7, hive_name=h03, inet_addr_id=361, serverRef=null],
1013=Hive[hive_id=1013, hive_name=h04, inet_addr_id=430, serverRef=null] 2000013=Hive[hive_id=13, hive_name=h04, inet_addr_id=430, serverRef=null]
} }
"""); """);
} }
@ -233,34 +225,32 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyPackets() { void verifyPackets() {
assumeThatWeAreImportingControlledTestData(); 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( assertThat(firstOfEachType(
3, 3,
HsBookingItemType.CLOUD_SERVER, HsBookingItemType.CLOUD_SERVER,
HsBookingItemType.MANAGED_SERVER, HsBookingItemType.MANAGED_SERVER,
HsBookingItemType.MANAGED_WEBSPACE)).isEqualToIgnoringWhitespace(""" HsBookingItemType.MANAGED_WEBSPACE)).isEqualToIgnoringWhitespace("""
{ {
3010630=HsBookingItemEntity(D-1000000:hsh default project, MANAGED_WEBSPACE, [2001-06-01,), BI hsh00), 3000630=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), 3000968=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), 3000978=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), 3001061=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), 3001094=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), 3001112=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) 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 @Test
@ -279,16 +269,18 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyPacketComponents() { void verifyPacketComponents() {
assumeThatWeAreImportingControlledTestData(); assumeThatWeAreImportingControlledTestData();
assertThat(firstOfEach(7, packetAssets)) assertThat(firstOfEachType(5, CLOUD_SERVER, MANAGED_SERVER, MANAGED_WEBSPACE))
.isEqualToIgnoringWhitespace(""" .isEqualToIgnoringWhitespace("""
{ {
10630=HsHostingAssetRealEntity(MANAGED_WEBSPACE, hsh00, HA hsh00, MANAGED_SERVER:vm1050, D-1000000:hsh default project:BI hsh00), 3000630=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), 3000968=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), 3000978=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), 3001061=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), 3001094=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), 3001112=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) 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)
} }
"""); """);
assertThat(firstOfEachType( assertThat(firstOfEachType(
@ -298,13 +290,13 @@ public class ImportHostingAssets extends ImportOfficeData {
HsBookingItemType.MANAGED_WEBSPACE)) HsBookingItemType.MANAGED_WEBSPACE))
.isEqualToIgnoringWhitespace(""" .isEqualToIgnoringWhitespace("""
{ {
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}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
3011094=HsBookingItemEntity(D-1000300:mim default project, MANAGED_WEBSPACE, [2013-09-10,), BI lug00, {"Multi": 5, "SLA-Platform": "EXT24H", "SSD": 1, "Traffic": 10}), 3001094=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}), 3001112=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}), 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}),
3019959=HsBookingItemEntity(D-1101900:dph default project, MANAGED_WEBSPACE, [2021-06-02,), BI dph00, {"Multi" : 1, "SLA-Platform" : "EXT24H", "SSD" : 25, "Traffic" : 20}), 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}) 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})
} }
@ -327,22 +319,22 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyUnixUsers() { void verifyUnixUsers() {
assumeThatWeAreImportingControlledTestData(); assumeThatWeAreImportingControlledTestData();
assertThat(firstOfEach(15, unixUserAssets)).isEqualToIgnoringWhitespace(""" assertThat(firstOfEachType(15, UNIX_USER)).isEqualToIgnoringWhitespace("""
{ {
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}), 4005803=HsHostingAssetRealEntity(UNIX_USER, lug00, LUGs, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 102090}),
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}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
5803=HsHostingAssetRealEntity(UNIX_USER, lug00, LUGs, MANAGED_WEBSPACE:lug00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 102090}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
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}) 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})
} }
"""); """);
} }
@ -363,17 +355,17 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyEmailAliases() { void verifyEmailAliases() {
assumeThatWeAreImportingControlledTestData(); assumeThatWeAreImportingControlledTestData();
assertThat(firstOfEach(15, emailAliasAssets)).isEqualToIgnoringWhitespace(""" assertThat(firstOfEachType(15, EMAIL_ALIAS)).isEqualToIgnoringWhitespace("""
{ {
2403=HsHostingAssetRealEntity(EMAIL_ALIAS, lug00, lug00, MANAGED_WEBSPACE:lug00, {"target": [ "michael.mellis@example.com" ]}), 5002403=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" ]}), 5002405=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" ]}), 5002429=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" ]}), 5002431=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" ]}), 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" ]}),
2451=HsHostingAssetRealEntity(EMAIL_ALIAS, mim00-hhfx-l, mim00-hhfx-l, MANAGED_WEBSPACE:mim00, {"target": [ ":include:/home/pacs/mim00/etc/hhfx.list" ]}), 5002451=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" ]}), 5002454=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" ]}), 5002455=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" ]}) 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" ]})
} }
"""); """);
} }
@ -381,7 +373,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Test @Test
@Order(15000) @Order(15000)
void createDatabaseInstances() { void createDatabaseInstances() {
createDatabaseInstances(packetAssets.values().stream().filter(ha -> ha.getType() == MANAGED_SERVER).toList()); createDatabaseInstances(hostingAssets.values().stream().filter(ha -> ha.getType() == MANAGED_SERVER).toList());
} }
@Test @Test
@ -389,16 +381,16 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyDatabaseInstances() { void verifyDatabaseInstances() {
assumeThatWeAreImportingControlledTestData(); assumeThatWeAreImportingControlledTestData();
assertThat(firstOfEach(8, dbInstanceAssets)).isEqualToIgnoringWhitespace(""" assertThat(firstOfEachType(5, PGSQL_INSTANCE, MARIADB_INSTANCE)).isEqualToIgnoringWhitespace("""
{ {
0=HsHostingAssetRealEntity(PGSQL_INSTANCE, vm1061|PgSql.default, vm1061-PostgreSQL default instance, MANAGED_SERVER:vm1061), 6000000=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), 6000001=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), 6000002=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), 6000003=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), 6000004=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), 6000005=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), 6000006=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) 6000007=HsHostingAssetRealEntity(MARIADB_INSTANCE, vm1093|MariaDB.default, vm1093-MariaDB default instance, MANAGED_SERVER:vm1093)
} }
"""); """);
} }
@ -419,18 +411,18 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyDatabaseUsers() { void verifyDatabaseUsers() {
assumeThatWeAreImportingControlledTestData(); assumeThatWeAreImportingControlledTestData();
assertThat(firstOfEach(10, dbUserAssets)).isEqualToIgnoringWhitespace(""" assertThat(firstOfEachType(5, PGSQL_USER, MARIADB_USER)).isEqualToIgnoringWhitespace("""
{ {
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="}), 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="}),
1858=HsHostingAssetRealEntity(MARIADB_USER, MAU|hsh00, hsh00, MANAGED_WEBSPACE:hsh00, MARIADB_INSTANCE:vm1050|MariaDB.default, { "password": "*59067A36BA197AD0A47D74909296C5B002A0FB9F"}), 7001858=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="}), 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="}),
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="}), 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="}),
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="}), 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="}),
4908=HsHostingAssetRealEntity(MARIADB_USER, MAU|hsh00_mantis, hsh00_mantis, MANAGED_WEBSPACE:hsh00, MARIADB_INSTANCE:vm1050|MariaDB.default, { "password": "*EA4C0889A22AAE66BBEBC88161E8CF862D73B44F"}), 7004908=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"}), 7004909=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="}), 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="}),
4932=HsHostingAssetRealEntity(MARIADB_USER, MAU|hsh00_phpMyAdmin, hsh00_phpMyAdmin, MANAGED_WEBSPACE:hsh00, MARIADB_INSTANCE:vm1050|MariaDB.default, { "password": "*3188720B1889EF5447C722629765F296F40257C2"}), 7004932=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"}) 7007520=HsHostingAssetRealEntity(MARIADB_USER, MAU|lug00_wla, lug00_wla, MANAGED_WEBSPACE:lug00, MARIADB_INSTANCE:vm1068|MariaDB.default, { "password": "*11667C0EAC42BF8B0295ABEDC7D2868A835E4DB5"})
} }
"""); """);
} }
@ -451,18 +443,18 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyDatabases() { void verifyDatabases() {
assumeThatWeAreImportingControlledTestData(); assumeThatWeAreImportingControlledTestData();
assertThat(firstOfEach(10, dbAssets)).isEqualToIgnoringWhitespace(""" assertThat(firstOfEachType(5, PGSQL_DATABASE, MARIADB_DATABASE)).isEqualToIgnoringWhitespace("""
{ {
1077=HsHostingAssetRealEntity(PGSQL_DATABASE, PGD|hsh00_vorstand, hsh00_vorstand, PGSQL_USER:PGU|hsh00_vorstand, {"encoding": "LATIN1"}), 8000077=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"}), 8000786=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"}), 8000805=HsHostingAssetRealEntity(MARIADB_DATABASE, MAD|hsh00_db2, hsh00_db2, MARIADB_USER:MAU|hsh00, { "encoding": "latin1"}),
1858=HsHostingAssetRealEntity(PGSQL_DATABASE, PGD|hsh00, hsh00, PGSQL_USER:PGU|hsh00, {"encoding": "LATIN1"}), 8001858=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"}), 8001860=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"}), 8004908=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"}), 8004931=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"}), 8004932=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"}), 8004941=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"}) 8004942=HsHostingAssetRealEntity(MARIADB_DATABASE, MAD|hsh00_phpMyAdmin_old, hsh00_phpMyAdmin_old, MARIADB_USER:MAU|hsh00_phpMyAdmin, { "encoding": "utf8"})
} }
"""); """);
} }
@ -494,111 +486,63 @@ public class ImportHostingAssets extends ImportOfficeData {
} }
@Test @Test
@Order(16029) @Order(16019)
void verifyDomains() { void verifyDomains() {
assumeThatWeAreImportingControlledTestData(); assumeThatWeAreImportingControlledTestData();
assertThat(firstOfEach(12, domainSetupAssets)).isEqualToIgnoringWhitespace(""" assertThat(firstOfEachType(
12,
DOMAIN_SETUP,
DOMAIN_DNS_SETUP,
DOMAIN_HTTP_SETUP,
DOMAIN_MBOX_SETUP,
DOMAIN_SMTP_SETUP)).isEqualToIgnoringWhitespace("""
{ {
4531=HsHostingAssetRealEntity(DOMAIN_SETUP, l-u-g.org, l-u-g.org), 10004531=HsHostingAssetRealEntity(DOMAIN_SETUP, l-u-g.org, l-u-g.org),
4532=HsHostingAssetRealEntity(DOMAIN_SETUP, linuxfanboysngirls.de, linuxfanboysngirls.de), 10004532=HsHostingAssetRealEntity(DOMAIN_SETUP, linuxfanboysngirls.de, linuxfanboysngirls.de),
4534=HsHostingAssetRealEntity(DOMAIN_SETUP, lug-mars.de, lug-mars.de), 10004534=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), 10004581=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), 10004587=HsHostingAssetRealEntity(DOMAIN_SETUP, mellis.de, mellis.de),
4589=HsHostingAssetRealEntity(DOMAIN_SETUP, ist-im-netz.de, ist-im-netz.de), 10004589=HsHostingAssetRealEntity(DOMAIN_SETUP, ist-im-netz.de, ist-im-netz.de),
4600=HsHostingAssetRealEntity(DOMAIN_SETUP, waera.de, waera.de), 10004600=HsHostingAssetRealEntity(DOMAIN_SETUP, waera.de, waera.de),
4604=HsHostingAssetRealEntity(DOMAIN_SETUP, xn--wra-qla.de, wära.de), 10004604=HsHostingAssetRealEntity(DOMAIN_SETUP, xn--wra-qla.de, wära.de),
7662=HsHostingAssetRealEntity(DOMAIN_SETUP, dph-netzwerk.de, dph-netzwerk.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),
"""); 11004532=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, linuxfanboysngirls.de|DNS, DNS-Setup für linuxfanboysngirls.de, DOMAIN_SETUP:linuxfanboysngirls.de, MANAGED_WEBSPACE:lug00),
11004534=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, lug-mars.de|DNS, DNS-Setup für lug-mars.de, DOMAIN_SETUP:lug-mars.de, MANAGED_WEBSPACE:lug00),
assertThat(firstOfEach(12, domainDnsSetupAssets)).isEqualToIgnoringWhitespace(""" 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),
{ 11004587=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, mellis.de|DNS, DNS-Setup für mellis.de, DOMAIN_SETUP:mellis.de, MANAGED_WEBSPACE:mim00),
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": [ ]}), 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),
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": [ ]}), 11004600=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, waera.de|DNS, DNS-Setup für waera.de, DOMAIN_SETUP:waera.de, MANAGED_WEBSPACE:mim00),
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" ]}), 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),
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": [ ]}), 11027662=HsHostingAssetRealEntity(DOMAIN_DNS_SETUP, dph-netzwerk.de|DNS, DNS-Setup für dph-netzwerk.de, DOMAIN_SETUP:dph-netzwerk.de, MANAGED_WEBSPACE:dph00),
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." ]}), 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": [ "*" ]}),
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": [ ]}), 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": [ "*" ]}),
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": [ ]}), 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" ]}),
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": [ ]}), 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": [ "*" ]}),
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\\"" ]}) 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": [ "*" ]}),
assertThat(firstOfEach(12, domainHttpSetupAssets)).isEqualToIgnoringWhitespace(""" 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),
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": [ "*" ]}), 13004532=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, linuxfanboysngirls.de|MBOX, E-Mail-Empfang-Setup für linuxfanboysngirls.de, DOMAIN_SETUP:linuxfanboysngirls.de, MANAGED_WEBSPACE:lug00),
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": [ "*" ]}), 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),
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" ]}), 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),
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": [ "*" ]}), 13004587=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, mellis.de|MBOX, E-Mail-Empfang-Setup für mellis.de, DOMAIN_SETUP:mellis.de, MANAGED_WEBSPACE:mim00),
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" ]}), 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),
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": [ "*" ]}), 13004600=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, waera.de|MBOX, E-Mail-Empfang-Setup für waera.de, DOMAIN_SETUP:waera.de, MANAGED_WEBSPACE:mim00),
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": [ "*" ]}), 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),
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": [ "*" ]}), 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),
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": [ "*" ]}) 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),
assertThat(firstOfEach(12, domainMBoxSetupAssets)).isEqualToIgnoringWhitespace(""" 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),
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), 14004600=HsHostingAssetRealEntity(DOMAIN_SMTP_SETUP, waera.de|SMTP, E-Mail-Versand-Setup für waera.de, DOMAIN_SETUP:waera.de, MANAGED_WEBSPACE:mim00),
4532=HsHostingAssetRealEntity(DOMAIN_MBOX_SETUP, linuxfanboysngirls.de|MBOX, E-Mail-Empfang-Setup für linuxfanboysngirls.de, DOMAIN_SETUP:linuxfanboysngirls.de, MANAGED_WEBSPACE:lug00), 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),
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), 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)
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("""
{
54745=HsHostingAssetRealEntity(EMAIL_ADDRESS, lugmaster@l-u-g.org, lugmaster@l-u-g.org, DOMAIN_MBOX_SETUP:l-u-g.org|MBOX, {"local-part": "lugmaster", "target": [ "nobody" ]}),
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": [ "nobody" ]}),
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": [ "nobody" ]}),
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" ]})
} }
"""); """);
} }
@ -620,11 +564,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Test @Test
@Order(18020) @Order(18020)
void validateHostingAssets() { void validateHostingAssets() {
validateHostingAssets(ipNumberAssets); hostingAssets.forEach((id, ha) -> {
}
void validateHostingAssets(final Map<Integer, HsHostingAssetRealEntity> assets) {
assets.forEach((id, ha) -> {
try { try {
new HostingAssetEntitySaveProcessor(em, ha) new HostingAssetEntitySaveProcessor(em, ha)
.preprocessEntity() .preprocessEntity()
@ -682,7 +622,7 @@ public class ImportHostingAssets extends ImportOfficeData {
System.out.println("PERSISTING cloud-servers to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'"); System.out.println("PERSISTING cloud-servers to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
persistHostingAssets(packetAssets, CLOUD_SERVER); persistHostingAssetsOfType(CLOUD_SERVER);
} }
@Test @Test
@ -690,7 +630,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit @Commit
void persistManagedServers() { void persistManagedServers() {
System.out.println("PERSISTING managed-servers to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'"); System.out.println("PERSISTING managed-servers to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
persistHostingAssets(packetAssets, MANAGED_SERVER); persistHostingAssetsOfType(MANAGED_SERVER);
} }
@Test @Test
@ -698,7 +638,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit @Commit
void persistManagedWebspaces() { void persistManagedWebspaces() {
System.out.println("PERSISTING managed-webspaces to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'"); System.out.println("PERSISTING managed-webspaces to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
persistHostingAssets(packetAssets, MANAGED_WEBSPACE); persistHostingAssetsOfType(MANAGED_WEBSPACE);
} }
@Test @Test
@ -706,7 +646,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit @Commit
void persistIPNumbers() { void persistIPNumbers() {
System.out.println("PERSISTING ip-numbers to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'"); System.out.println("PERSISTING ip-numbers to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
persistHostingAssets(ipNumberAssets); persistHostingAssetsOfType(IPV4_NUMBER);
} }
@Test @Test
@ -714,7 +654,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit @Commit
void persistUnixUsers() { void persistUnixUsers() {
System.out.println("PERSISTING unix-users to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'"); System.out.println("PERSISTING unix-users to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
persistHostingAssets(unixUserAssets); persistHostingAssetsOfType(UNIX_USER);
} }
@Test @Test
@ -722,7 +662,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit @Commit
void persistEmailAliases() { void persistEmailAliases() {
System.out.println("PERSISTING email-aliases to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'"); System.out.println("PERSISTING email-aliases to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
persistHostingAssets(emailAliasAssets); persistHostingAssetsOfType(EMAIL_ALIAS);
} }
@Test @Test
@ -730,7 +670,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit @Commit
void persistDatabaseInstances() { void persistDatabaseInstances() {
System.out.println("PERSISTING db-users to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'"); System.out.println("PERSISTING db-users to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
persistHostingAssets(dbInstanceAssets); persistHostingAssetsOfType(PGSQL_INSTANCE, MARIADB_INSTANCE);
} }
@Test @Test
@ -738,7 +678,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit @Commit
void persistDatabaseUsers() { void persistDatabaseUsers() {
System.out.println("PERSISTING db-users to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'"); System.out.println("PERSISTING db-users to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
persistHostingAssets(dbUserAssets); persistHostingAssetsOfType(PGSQL_USER, MARIADB_USER);
} }
@Test @Test
@ -746,7 +686,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit @Commit
void persistDatabases() { void persistDatabases() {
System.out.println("PERSISTING databases to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'"); System.out.println("PERSISTING databases to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
persistHostingAssets(dbAssets); persistHostingAssetsOfType(PGSQL_DATABASE, MARIADB_DATABASE);
} }
@Test @Test
@ -754,7 +694,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit @Commit
void persistDomainSetups() { void persistDomainSetups() {
System.out.println("PERSISTING domain setups to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'"); System.out.println("PERSISTING domain setups to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
persistHostingAssets(domainSetupAssets); persistHostingAssetsOfType(DOMAIN_SETUP);
} }
@Test @Test
@ -762,8 +702,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit @Commit
void persistDomainDnsSetups() { void persistDomainDnsSetups() {
System.out.println("PERSISTING domain DNS setups to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'"); System.out.println("PERSISTING domain DNS setups to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
HsDomainDnsSetupHostingAssetValidator.addZonefileErrorsTo(zonefileErrors); persistHostingAssetsOfType(DOMAIN_DNS_SETUP);
persistHostingAssets(domainDnsSetupAssets);
} }
@Test @Test
@ -771,7 +710,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit @Commit
void persistDomainHttpSetups() { void persistDomainHttpSetups() {
System.out.println("PERSISTING domain HTTP setups to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'"); System.out.println("PERSISTING domain HTTP setups to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
persistHostingAssets(domainHttpSetupAssets); persistHostingAssetsOfType(DOMAIN_HTTP_SETUP);
} }
@Test @Test
@ -779,7 +718,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit @Commit
void persistDomainMboxSetups() { void persistDomainMboxSetups() {
System.out.println("PERSISTING domain MBOX setups to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'"); System.out.println("PERSISTING domain MBOX setups to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
persistHostingAssets(domainMBoxSetupAssets); persistHostingAssetsOfType(DOMAIN_MBOX_SETUP);
} }
@Test @Test
@ -787,15 +726,7 @@ public class ImportHostingAssets extends ImportOfficeData {
@Commit @Commit
void persistDomainSmtpSetups() { void persistDomainSmtpSetups() {
System.out.println("PERSISTING domain SMTP setups to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'"); System.out.println("PERSISTING domain SMTP setups to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
persistHostingAssets(domainSmtpSetupAssets); persistHostingAssetsOfType(DOMAIN_SMTP_SETUP);
}
@Test
@Order(19400)
@Commit
void persistEmailAddresses() {
System.out.println("PERSISTING email-aliases to database '" + jdbcUrl + "' as user '" + postgresAdminUser + "'");
persistHostingAssets(emailAddressAssets);
} }
@Test @Test
@ -803,22 +734,22 @@ public class ImportHostingAssets extends ImportOfficeData {
void verifyPersistedUnixUsersWithUserId() { void verifyPersistedUnixUsersWithUserId() {
assumeThatWeAreImportingControlledTestData(); assumeThatWeAreImportingControlledTestData();
assertThat(firstOfEach(15, unixUserAssets)).isEqualToIgnoringWhitespace(""" assertThat(firstOfEachType(15, UNIX_USER)).isEqualToIgnoringWhitespace("""
{ {
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}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
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}), 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}),
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}) 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})
} }
"""); """);
} }
@ -845,14 +776,6 @@ public class ImportHostingAssets extends ImportOfficeData {
@Order(19999) @Order(19999)
void logErrorsAfterPersistingHostingAssets() { void logErrorsAfterPersistingHostingAssets() {
errors.addAll(zonefileErrors); errors.addAll(zonefileErrors);
if (isImportingControlledTestData()) {
expectError("[waera.de|DNS] zone waera.de/IN: has 0 SOA records");
expectError("[waera.de|DNS] zone waera.de/IN: has no NS records");
expectError("[waera.de|DNS] zone waera.de/IN: not loaded due to errors.");
expectError("[xn--wra-qla.de|DNS] zone xn--wra-qla.de/IN: has 0 SOA records");
expectError("[xn--wra-qla.de|DNS] zone xn--wra-qla.de/IN: has no NS records");
expectError("[xn--wra-qla.de|DNS] zone xn--wra-qla.de/IN: not loaded due to errors.");
}
assertNoErrors(); assertNoErrors();
} }
@ -865,14 +788,16 @@ public class ImportHostingAssets extends ImportOfficeData {
// ============================================================================================ // ============================================================================================
private void persistHostingAssets(final Map<Integer, HsHostingAssetRealEntity> assets) { private void persistHostingAssetsOfType(final HsHostingAssetType... hsHostingAssetTypes) {
persistHostingAssets(assets, null); final var hsHostingAssetTypeSet = stream(hsHostingAssetTypes).collect(toSet());
if (hsHostingAssetTypeSet.contains(DOMAIN_DNS_SETUP)) {
HsDomainDnsSetupHostingAssetValidator.addZonefileErrorsTo(zonefileErrors);
} }
private void persistHostingAssets(final Map<Integer, HsHostingAssetRealEntity> assets, final HsHostingAssetType type) {
jpaAttempt.transacted(() -> jpaAttempt.transacted(() ->
assets.forEach((key, ha) -> { hostingAssets.forEach((key, ha) -> {
if (type == null || type == ha.getType()) { if (hsHostingAssetTypeSet.contains(ha.getType())) {
context(rbacSuperuser); // if put only outside the loop, it seems to get lost after a while, no idea why context(rbacSuperuser); // if put only outside the loop, it seems to get lost after a while, no idea why
logError(() -> logError(() ->
new HostingAssetEntitySaveProcessor(em, ha) new HostingAssetEntitySaveProcessor(em, ha)
@ -898,7 +823,7 @@ public class ImportHostingAssets extends ImportOfficeData {
.identifier(rec.getString("inet_addr")) .identifier(rec.getString("inet_addr"))
.caption(rec.getString("description")) .caption(rec.getString("description"))
.build(); .build();
ipNumberAssets.put(rec.getInteger("inet_addr_id"), ipNumber); hostingAssets.put(IP_NUMBER_ID_OFFSET + rec.getInteger("inet_addr_id"), ipNumber);
}); });
} }
@ -914,7 +839,7 @@ public class ImportHostingAssets extends ImportOfficeData {
rec.getString("hive_name"), rec.getString("hive_name"),
rec.getInteger("inet_addr_id"), rec.getInteger("inet_addr_id"),
new AtomicReference<>()); new AtomicReference<>());
hives.put(hive_id, hive); hives.put(HIVE_ID_OFFSET + hive_id, hive);
}); });
} }
@ -946,7 +871,7 @@ public class ImportHostingAssets extends ImportOfficeData {
.project(bookingProjects.get(bp_id)) .project(bookingProjects.get(bp_id))
.validity(toPostgresDateRange(created, cancelled)) .validity(toPostgresDateRange(created, cancelled))
.build(); .build();
bookingItems.put(BI_PACKET_ID_OFFSET + packet_id, bookingItem); bookingItems.put(PACKET_ID_OFFSET + packet_id, bookingItem);
final var haType = determineHaType(basepacket_code); final var haType = determineHaType(basepacket_code);
logError(() -> assertThat(!free || haType == MANAGED_WEBSPACE || bookingItem.getRelatedProject() logError(() -> assertThat(!free || haType == MANAGED_WEBSPACE || bookingItem.getRelatedProject()
@ -965,10 +890,11 @@ public class ImportHostingAssets extends ImportOfficeData {
.bookingItem(bookingItem) .bookingItem(bookingItem)
.caption("HA " + packet_name) .caption("HA " + packet_name)
.build(); .build();
packetAssets.put(packet_id, asset); hostingAssets.put(PACKET_ID_OFFSET + packet_id, asset);
if (haType == MANAGED_SERVER) { if (haType == MANAGED_SERVER) {
hive(hive_id).serverRef.set(asset); hive(hive_id).serverRef.set(asset);
} }
if (cur_inet_addr_id != null) { if (cur_inet_addr_id != null) {
ipNumber(cur_inet_addr_id).setAssignedToAsset(asset); ipNumber(cur_inet_addr_id).setAssignedToAsset(asset);
} }
@ -1098,7 +1024,7 @@ public class ImportHostingAssets extends ImportOfficeData {
final var packet_id = rec.getInteger("packet_id"); final var packet_id = rec.getInteger("packet_id");
final var unixUserAsset = HsHostingAssetRealEntity.builder() final var unixUserAsset = HsHostingAssetRealEntity.builder()
.type(UNIX_USER) .type(UNIX_USER)
.parentAsset(packetAssets.get(packet_id)) .parentAsset(hostingAssets.get(PACKET_ID_OFFSET + packet_id))
.identifier(rec.getString("name")) .identifier(rec.getString("name"))
.caption(rec.getString("comment")) .caption(rec.getString("comment"))
.isLoaded(true) // avoid overwriting imported userids with generated ids .isLoaded(true) // avoid overwriting imported userids with generated ids
@ -1142,7 +1068,7 @@ public class ImportHostingAssets extends ImportOfficeData {
unixUserAsset.getConfig().remove("HDD soft quota"); unixUserAsset.getConfig().remove("HDD soft quota");
} }
unixUserAssets.put(unixuser_id, unixUserAsset); hostingAssets.put(UNIXUSER_ID_OFFSET + unixuser_id, unixUserAsset);
}); });
} }
@ -1152,19 +1078,19 @@ public class ImportHostingAssets extends ImportOfficeData {
.map(this::trimAll) .map(this::trimAll)
.map(row -> new Record(columns, row)) .map(row -> new Record(columns, row))
.forEach(rec -> { .forEach(rec -> {
final var emailalias_id = rec.getInteger("emailalias_id"); final var unixuser_id = rec.getInteger("emailalias_id");
final var packet_id = rec.getInteger("pac_id"); final var packet_id = rec.getInteger("pac_id");
final var targets = parseCsvLine(rec.getString("target")); final var targets = parseCsvLine(rec.getString("target"));
final var emailAliasAsset = HsHostingAssetRealEntity.builder() final var unixUserAsset = HsHostingAssetRealEntity.builder()
.type(EMAIL_ALIAS) .type(EMAIL_ALIAS)
.parentAsset(packetAssets.get(packet_id)) .parentAsset(hostingAssets.get(PACKET_ID_OFFSET + packet_id))
.identifier(rec.getString("name")) .identifier(rec.getString("name"))
.caption(rec.getString("name")) .caption(rec.getString("name"))
.config(ofEntries( .config(ofEntries(
entry("target", targets) entry("target", targets)
)) ))
.build(); .build();
emailAliasAssets.put(emailalias_id, emailAliasAsset); hostingAssets.put(EMAILALIAS_ID_OFFSET + unixuser_id, unixUserAsset);
}); });
} }
@ -1182,7 +1108,7 @@ public class ImportHostingAssets extends ImportOfficeData {
.caption(pa.getIdentifier() + "-PostgreSQL default instance") .caption(pa.getIdentifier() + "-PostgreSQL default instance")
.build(); .build();
pa.getSubHostingAssets().add(pgSqlInstanceAsset); pa.getSubHostingAssets().add(pgSqlInstanceAsset);
dbInstanceAssets.put(idRef.getAndIncrement(), pgSqlInstanceAsset); hostingAssets.put(DBINSTANCE_ID_OFFSET + idRef.getAndIncrement(), pgSqlInstanceAsset);
final var mariaDbInstanceAsset = HsHostingAssetRealEntity.builder() final var mariaDbInstanceAsset = HsHostingAssetRealEntity.builder()
.type(MARIADB_INSTANCE) .type(MARIADB_INSTANCE)
@ -1191,7 +1117,7 @@ public class ImportHostingAssets extends ImportOfficeData {
.caption(pa.getIdentifier() + "-MariaDB default instance") .caption(pa.getIdentifier() + "-MariaDB default instance")
.build(); .build();
pa.getSubHostingAssets().add(mariaDbInstanceAsset); pa.getSubHostingAssets().add(mariaDbInstanceAsset);
dbInstanceAssets.put(idRef.getAndIncrement(), mariaDbInstanceAsset); hostingAssets.put(DBINSTANCE_ID_OFFSET + idRef.getAndIncrement(), mariaDbInstanceAsset);
}); });
} }
@ -1217,14 +1143,14 @@ public class ImportHostingAssets extends ImportOfficeData {
final HsHostingAssetType dbInstanceAssetType = "mysql".equals(engine) ? MARIADB_INSTANCE final HsHostingAssetType dbInstanceAssetType = "mysql".equals(engine) ? MARIADB_INSTANCE
: "pgsql".equals(engine) ? PGSQL_INSTANCE : "pgsql".equals(engine) ? PGSQL_INSTANCE
: failWith("unknown DB engine " + engine); : failWith("unknown DB engine " + engine);
final var relatedWebspaceHA = packetAssets.get(packet_id).getParentAsset(); final var relatedWebspaceHA = hostingAssets.get(PACKET_ID_OFFSET + packet_id).getParentAsset();
final var dbInstanceAsset = relatedWebspaceHA.getSubHostingAssets().stream() final var dbInstanceAsset = relatedWebspaceHA.getSubHostingAssets().stream()
.filter(ha -> ha.getType() == dbInstanceAssetType) .filter(ha -> ha.getType() == dbInstanceAssetType)
.findAny().orElseThrow(); // there is exactly one: the default instance for the given type .findAny().orElseThrow(); // there is exactly one: the default instance for the given type
final var dbUserAsset = HsHostingAssetRealEntity.builder() final var dbUserAsset = HsHostingAssetRealEntity.builder()
.type(dbUserAssetType) .type(dbUserAssetType)
.parentAsset(packetAssets.get(packet_id)) .parentAsset(hostingAssets.get(PACKET_ID_OFFSET + packet_id))
.assignedToAsset(dbInstanceAsset) .assignedToAsset(dbInstanceAsset)
.identifier(dbUserAssetType.name().substring(0, 2) + "U|" + name) .identifier(dbUserAssetType.name().substring(0, 2) + "U|" + name)
.caption(name) .caption(name)
@ -1233,7 +1159,7 @@ public class ImportHostingAssets extends ImportOfficeData {
))) )))
.build(); .build();
dbUsersByEngineAndName.put(engine + ":" + name, dbUserAsset); dbUsersByEngineAndName.put(engine + ":" + name, dbUserAsset);
dbUserAssets.put(dbuser_id, dbUserAsset); hostingAssets.put(DBUSER_ID_OFFSET + dbuser_id, dbUserAsset);
}); });
} }
@ -1264,7 +1190,7 @@ public class ImportHostingAssets extends ImportOfficeData {
type == MARIADB_DATABASE ? encoding.toLowerCase() : encoding.toUpperCase()) type == MARIADB_DATABASE ? encoding.toLowerCase() : encoding.toUpperCase())
)) ))
.build(); .build();
dbAssets.put(database_id, dbAsset); hostingAssets.put(DB_ID_OFFSET + database_id, dbAsset);
}); });
} }
@ -1294,11 +1220,11 @@ public class ImportHostingAssets extends ImportOfficeData {
)) ))
.build(); .build();
domainSetupsByName.put(domain_name, domainSetupAsset); domainSetupsByName.put(domain_name, domainSetupAsset);
domainSetupAssets.put(domain_id, domainSetupAsset); hostingAssets.put(DOMAIN_SETUP_OFFSET + domain_id, domainSetupAsset);
domainSetupAsset.setSubHostingAssets(new ArrayList<>()); domainSetupAsset.setSubHostingAssets(new ArrayList<>());
// Domain DNS Setup // Domain DNS Setup
final var ownerAsset = unixUserAssets.get(owner_id); final var ownerAsset = hostingAssets.get(UNIXUSER_ID_OFFSET + owner_id);
final var webspaceAsset = ownerAsset.getParentAsset(); final var webspaceAsset = ownerAsset.getParentAsset();
assertThat(webspaceAsset.getType()).isEqualTo(MANAGED_WEBSPACE); assertThat(webspaceAsset.getType()).isEqualTo(MANAGED_WEBSPACE);
final var domainDnsSetupAsset = HsHostingAssetRealEntity.builder() final var domainDnsSetupAsset = HsHostingAssetRealEntity.builder()
@ -1309,7 +1235,7 @@ public class ImportHostingAssets extends ImportOfficeData {
.caption("DNS-Setup für " + IDN.toUnicode(domain_name)) .caption("DNS-Setup für " + IDN.toUnicode(domain_name))
.config(new HashMap<>()) // is read from separate files .config(new HashMap<>()) // is read from separate files
.build(); .build();
domainDnsSetupAssets.put(domain_id, domainDnsSetupAsset); hostingAssets.put(DOMAIN_DNS_SETUP_OFFSET + domain_id, domainDnsSetupAsset);
domainSetupAsset.getSubHostingAssets().add(domainDnsSetupAsset); domainSetupAsset.getSubHostingAssets().add(domainDnsSetupAsset);
// Domain HTTP Setup // Domain HTTP Setup
@ -1348,7 +1274,7 @@ public class ImportHostingAssets extends ImportOfficeData {
httpDomainSetupValidator.getProperty("passenger-ruby").defaultValue())) httpDomainSetupValidator.getProperty("passenger-ruby").defaultValue()))
)) ))
.build(); .build();
domainHttpSetupAssets.put(domain_id, domainHttpSetupAsset); hostingAssets.put(DOMAIN_HTTP_SETUP_OFFSET + domain_id, domainHttpSetupAsset);
domainSetupAsset.getSubHostingAssets().add(domainHttpSetupAsset); domainSetupAsset.getSubHostingAssets().add(domainHttpSetupAsset);
// Domain MBOX Setup // Domain MBOX Setup
@ -1361,9 +1287,8 @@ public class ImportHostingAssets extends ImportOfficeData {
.config(ofEntries( .config(ofEntries(
// no properties available // no properties available
)) ))
.subHostingAssets(new ArrayList<>())
.build(); .build();
domainMBoxSetupAssets.put(domain_id, domainMboxSetupAsset); hostingAssets.put(DOMAIN_MBOX_SETUP_OFFSET + domain_id, domainMboxSetupAsset);
domainSetupAsset.getSubHostingAssets().add(domainMboxSetupAsset); domainSetupAsset.getSubHostingAssets().add(domainMboxSetupAsset);
// Domain SMTP Setup // Domain SMTP Setup
@ -1377,7 +1302,7 @@ public class ImportHostingAssets extends ImportOfficeData {
// no properties available // no properties available
)) ))
.build(); .build();
domainSmtpSetupAssets.put(domain_id, domainSmtpSetupAsset); hostingAssets.put(DOMAIN_SMTP_SETUP_OFFSET + domain_id, domainSmtpSetupAsset);
domainSetupAsset.getSubHostingAssets().add(domainSmtpSetupAsset); domainSetupAsset.getSubHostingAssets().add(domainSmtpSetupAsset);
}); });
@ -1445,53 +1370,6 @@ public class ImportHostingAssets extends ImportOfficeData {
}); });
} }
private void importEmailAddresses(final String[] header, final List<String[]> 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 = stream(parseCsvLine(rec.getString("target")))
.map(t -> NOBODY_SUBSTITUTES.contains(t) ? "nobody" : t)
.toArray(String[]::new);
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<String, Object> ofNonNullEntries(final Map.Entry<String, Object>... entries) {
//noinspection unchecked
return ofEntries(stream(entries).filter(Objects::nonNull).toArray(Map.Entry[]::new));
}
private static Map.Entry<String, Object> entryIfNotNull(final String key, final @Nullable String value) {
if (value == null || value.isBlank()) {
return null;
}
return entry(key, value);
}
// ============================================================================================ // ============================================================================================
<V> V returning( <V> V returning(
@ -1522,31 +1400,26 @@ public class ImportHostingAssets extends ImportOfficeData {
} }
private static HsHostingAssetRealEntity ipNumber(final Integer inet_addr_id) { private static HsHostingAssetRealEntity ipNumber(final Integer inet_addr_id) {
return inet_addr_id != null ? ipNumberAssets.get(inet_addr_id) : null; return inet_addr_id != null ? hostingAssets.get(IP_NUMBER_ID_OFFSET + inet_addr_id) : null;
} }
private static Hive hive(final Integer hive_id) { private static Hive hive(final Integer hive_id) {
return hive_id != null ? hives.get(hive_id) : null; return hive_id != null ? hives.get(HIVE_ID_OFFSET + hive_id) : null;
} }
private static HsHostingAssetRealEntity pac(final Integer packet_id) { private static HsHostingAssetRealEntity pac(final Integer packet_id) {
return packet_id != null ? packetAssets.get(packet_id) : null; return packet_id != null ? hostingAssets.get(PACKET_ID_OFFSET + packet_id) : null;
} }
private String firstOfEach( private String firstOfEachType(
final int maxCount, final int maxCount,
final Map<Integer, HsHostingAssetRealEntity> assets) { final HsHostingAssetType... types) {
return toJsonFormattedString(assets.entrySet().stream().limit(maxCount) return toJsonFormattedString(stream(types)
.collect(toMap(Map.Entry::getKey, Map.Entry::getValue, ImportHostingAssets::uniqueKeys, TreeMap::new))); .flatMap(t ->
} hostingAssets.entrySet().stream()
.filter(hae -> hae.getValue().getType() == t)
private String firstOfEach(
final int maxCount,
final Map<Integer, HsHostingAssetRealEntity> assets,
final HsHostingAssetType type) {
return toJsonFormattedString(assets.entrySet().stream()
.filter(hae -> hae.getValue().getType() == type)
.limit(maxCount) .limit(maxCount)
)
.collect(toMap(Map.Entry::getKey, Map.Entry::getValue, ImportHostingAssets::uniqueKeys, TreeMap::new))); .collect(toMap(Map.Entry::getKey, Map.Entry::getValue, ImportHostingAssets::uniqueKeys, TreeMap::new)));
} }

View File

@ -1,8 +1,8 @@
database_id;engine;packet_id;name;owner;encoding database_id;engine;packet_id;name;owner;encoding
1077;pgsql;630;hsh00_vorstand;hsh00_vorstand;LATIN1 77;pgsql;630;hsh00_vorstand;hsh00_vorstand;LATIN1
1786;mysql;630;hsh00_addr;hsh00;latin1 786;mysql;630;hsh00_addr;hsh00;latin1
1805;mysql;630;hsh00_dba;hsh00;LATIN-1 805;mysql;630;hsh00_db2;hsh00;LATIN-1
1858;pgsql;630;hsh00;hsh00;LATIN1 1858;pgsql;630;hsh00;hsh00;LATIN1
1860;pgsql;630;hsh00_hsadmin;hsh00_hsadmin;UTF8 1860;pgsql;630;hsh00_hsadmin;hsh00_hsadmin;UTF8

1 database_id engine packet_id name owner encoding
2 1077 77 pgsql 630 hsh00_vorstand hsh00_vorstand LATIN1
3 1786 786 mysql 630 hsh00_addr hsh00 latin1
4 1805 805 mysql 630 hsh00_dba hsh00_db2 hsh00 LATIN-1
5 1858 pgsql 630 hsh00 hsh00 LATIN1
6 1860 pgsql 630 hsh00_hsadmin hsh00_hsadmin UTF8
7 4931 pgsql 630 hsh00_phpPgSqlAdmin hsh00_phpPgSqlAdmin UTF8
8 4932 pgsql 630 hsh00_phpPgSqlAdmin_new hsh00_phpPgSqlAdmin utf8

View File

@ -1,17 +1,17 @@
dbuser_id;engine;packet_id;name;password_hash dbuser_id;engine;packet_id;name;password_hash
1857;pgsql;10630;hsh00;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$JDiZmaxU+O+ByArLY/CkYZ8HbOk0r/I8LyABnno5gQs=:NI3T500/63dzI1B07Jh3UtQGlukS6JxuS0XoxM/QgAc= 1857;pgsql;630;hsh00;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$JDiZmaxU+O+ByArLY/CkYZ8HbOk0r/I8LyABnno5gQs=:NI3T500/63dzI1B07Jh3UtQGlukS6JxuS0XoxM/QgAc=
1858;mysql;10630;hsh00;*59067A36BA197AD0A47D74909296C5B002A0FB9F 1858;mysql;630;hsh00;*59067A36BA197AD0A47D74909296C5B002A0FB9F
1859;pgsql;10630;hsh00_vorstand;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$54Wh+OGx/GaIvAia+I3k78jHGhqmYwe4+iLssmH5zhk=:D4Gq1z2Li2BVSaZrz1azDrs6pwsIzhq4+suK1Hh6ZIg= 1859;pgsql;630;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= 1860;pgsql;630;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= 1861;pgsql;630;hsh00_hsadmin_ro;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$UhJnJJhmKANbcaG+izWK3rz5bmhhluSuiCJFlUmDVI8=:6AC4mbLfJGiGlEOWhpz9BivvMODhLLHOnRnnktJPgn8=
4931;pgsql;10630;hsh00_phpPgSqlAdmin;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$UhJnJJhmKANbcaG+izWK3rz5bmhhluSuiCJFlUmDVI8=:6AC4mbLfJGiGlEOWhpz9BivvMODhLLHOnRnnktJPgn8= 4931;pgsql;630;hsh00_phpPgSqlAdmin;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$UhJnJJhmKANbcaG+izWK3rz5bmhhluSuiCJFlUmDVI8=:6AC4mbLfJGiGlEOWhpz9BivvMODhLLHOnRnnktJPgn8=
4908;mysql;10630;hsh00_mantis;*EA4C0889A22AAE66BBEBC88161E8CF862D73B44F 4908;mysql;630;hsh00_mantis;*EA4C0889A22AAE66BBEBC88161E8CF862D73B44F
4909;mysql;10630;hsh00_mantis_ro;*B3BB6D0DA2EC01958616E9B3BCD2926FE8C38383 4909;mysql;630;hsh00_mantis_ro;*B3BB6D0DA2EC01958616E9B3BCD2926FE8C38383
4932;mysql;10630;hsh00_phpMyAdmin;*3188720B1889EF5447C722629765F296F40257C2 4932;mysql;630;hsh00_phpMyAdmin;*3188720B1889EF5447C722629765F296F40257C2
7520;mysql;11094;lug00_wla;*11667C0EAC42BF8B0295ABEDC7D2868A835E4DB5 7520;mysql;1094;lug00_wla;*11667C0EAC42BF8B0295ABEDC7D2868A835E4DB5
7522;pgsql;11094;lug00_ola;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$tir+cV3ZzOZeEWurwAJk+8qkvsTAWaBfwx846oYMOr4=:p4yk/4hHkfSMAFxSuTuh3RIrbSpHNBh7h6raVa3nt1c= 7522;pgsql;1094;lug00_ola;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$tir+cV3ZzOZeEWurwAJk+8qkvsTAWaBfwx846oYMOr4=:p4yk/4hHkfSMAFxSuTuh3RIrbSpHNBh7h6raVa3nt1c=
7604;mysql;11112;mim00_test;*156CFD94A0594A5C3F4C6742376DDF4B8C5F6D90 7604;mysql;1112;mim00_test;*156CFD94A0594A5C3F4C6742376DDF4B8C5F6D90
7605;pgsql;11112;mim00_office;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$43jziwd1o+nkfjE0zFbks24Zy5GK+km87B7vzEQt4So=:xRQntZxBxdo1JJbhkegnUFKHT0T8MDW75hkQs2S3z6k= 7605;pgsql;1112;mim00_office;SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$43jziwd1o+nkfjE0zFbks24Zy5GK+km87B7vzEQt4So=:xRQntZxBxdo1JJbhkegnUFKHT0T8MDW75hkQs2S3z6k=

1 dbuser_id engine packet_id name password_hash
2 1857 pgsql 10630 630 hsh00 SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$JDiZmaxU+O+ByArLY/CkYZ8HbOk0r/I8LyABnno5gQs=:NI3T500/63dzI1B07Jh3UtQGlukS6JxuS0XoxM/QgAc=
3 1858 mysql 10630 630 hsh00 *59067A36BA197AD0A47D74909296C5B002A0FB9F
4 1859 pgsql 10630 630 hsh00_vorstand SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$54Wh+OGx/GaIvAia+I3k78jHGhqmYwe4+iLssmH5zhk=:D4Gq1z2Li2BVSaZrz1azDrs6pwsIzhq4+suK1Hh6ZIg=
5 1860 pgsql 10630 630 hsh00_hsadmin SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$54Wh+OGx/GaIvAia+I3k78jHGhqmYwe4+iLssmH5zhk=:D4Gq1z2Li2BVSaZrz1azDrs6pwsIzhq4+suK1Hh6ZIg=
6 1861 pgsql 10630 630 hsh00_hsadmin_ro SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$UhJnJJhmKANbcaG+izWK3rz5bmhhluSuiCJFlUmDVI8=:6AC4mbLfJGiGlEOWhpz9BivvMODhLLHOnRnnktJPgn8=
7 4931 pgsql 10630 630 hsh00_phpPgSqlAdmin SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$UhJnJJhmKANbcaG+izWK3rz5bmhhluSuiCJFlUmDVI8=:6AC4mbLfJGiGlEOWhpz9BivvMODhLLHOnRnnktJPgn8=
8 4908 mysql 10630 630 hsh00_mantis *EA4C0889A22AAE66BBEBC88161E8CF862D73B44F
9 4909 mysql 10630 630 hsh00_mantis_ro *B3BB6D0DA2EC01958616E9B3BCD2926FE8C38383
10 4932 mysql 10630 630 hsh00_phpMyAdmin *3188720B1889EF5447C722629765F296F40257C2
11 7520 mysql 11094 1094 lug00_wla *11667C0EAC42BF8B0295ABEDC7D2868A835E4DB5
12 7522 pgsql 11094 1094 lug00_ola SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$tir+cV3ZzOZeEWurwAJk+8qkvsTAWaBfwx846oYMOr4=:p4yk/4hHkfSMAFxSuTuh3RIrbSpHNBh7h6raVa3nt1c=
13 7604 mysql 11112 1112 mim00_test *156CFD94A0594A5C3F4C6742376DDF4B8C5F6D90
14 7605 pgsql 11112 1112 mim00_office SCRAM-SHA-256$4096:Zml4ZWQgc2FsdA==$43jziwd1o+nkfjE0zFbks24Zy5GK+km87B7vzEQt4So=:xRQntZxBxdo1JJbhkegnUFKHT0T8MDW75hkQs2S3z6k=
15
16
17

View File

@ -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 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 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 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
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 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

1 domain_id domain_name domain_since domain_dns_master domain_owner valid_subdomain_names passenger_python passenger_nodejs passenger_ruby fcgi_php_bin domainoptions
7 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
8 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
9 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
10 7662 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

View File

@ -1,72 +0,0 @@
emailaddr_id;domain_id;localpart;subdomain;target
54746;4531;abuse;;lug00
54747;4531;postmaster;;nomail
54748;4531;webmaster;;bounce
54745;4531;lugmaster;;nobody
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
1 emailaddr_id domain_id localpart subdomain target
2 54746 4531 abuse lug00
3 54747 4531 postmaster nomail
4 54748 4531 webmaster bounce
5 54745 4531 lugmaster nobody
6 54749 4532 abuse lug00-mars
7 54750 4532 postmaster m.hinsel@example.org
8 54751 4532 webmaster m.hinsel@example.org
9 54755 4534 abuse lug00-marl
10 54756 4534 postmaster m.hinsel@example.org
11 54757 4534 webmaster m.hinsel@example.org
12 54760 4531 info hamburg-west peter.lottmann@example.com
13 54761 4531 lugmaster hamburg-west raoul.lottmann@example.com
14 54762 4531 postmaster hamburg-west raoul.lottmann@example.com
15 54763 4531 webmaster hamburg-west raoul.lottmann@example.com
16 54764 4531 eliza eliza@example.net
17 54765 4531 lug00
18 54766 4532 nomail
19 54767 4532 hostmaster hostmaster@example.net
20 54795 4534 bounce
21 54796 4534 hostmaster hostmaster@example.net
22 54963 4581 abuse mim00
23 54964 4581 postmaster mim00
24 54965 4581 webmaster mim00
25 54981 4587 abuse mim00
26 54982 4587 postmaster mim00
27 54983 4587 webmaster mim00
28 54987 4589 abuse mim00
29 54988 4589 postmaster mim00
30 54989 4589 webmaster mim00
31 55020 4600 abuse mim00
32 55021 4600 postmaster mim00
33 55022 4600 webmaster mim00
34 55032 4604 abuse mim00
35 55033 4604 postmaster mim00
36 55034 4604 webmaster mim00
37 55037 4587 eberhard eberhard@mellis.de
38 55038 4587 marleen marleen@mellis.de
39 55039 4587 michael mh@dump.mellis.de
40 55040 4587 lists michael mim00-lists
41 55041 4587 ooo michael mim00-ooo
42 55043 4587 test test@mellis.de
43 55044 4587 trap mim00-spam
44 55046 4587 anke anke@segelschule-jade.de
45 55052 4587 eberhard mellis@example.org
46 55053 4587 gitti gitta.mellis@gmx.de
47 55054 4587 imap mim00-imap
48 55057 4587 listar mim00-listar
49 55059 4587 marleen marleen.mellis@t-online.de
50 55060 4587 mime mh@dump.mellis.de
51 55061 4587 michael mh@dump.mellis.de
52 55062 4587 monika nomail
53 55063 4587 nobody nobody
54 55064 4587 palm mim00-imap
55 55065 4587 procmail mim00-mail
56 55066 4587 reporter.web.de nomail
57 55067 4587 script mim00-script
58 55068 4587 spamtrap mim00-spamtrap
59 55069 4587 susanne susanne.mellis@example.net
60 55070 4587 test mim00-test
61 55071 4587 ursula 01234wasauchimmer@example.net
62 55072 4587 webcmstag mim00-webcmstag
63 55073 4587 wichtig mim00-imap,01234567@smsmail.example.org
64 55074 4604 @waera.de
65 60601 4589 highlander mim00-highlander,michael@mellis.de
66 65150 4589 little-sunshine mim00-marleen
67 75964 4589 mail michael@mellis.de
68 75965 4589 michael@mellis.de
69 77726 4587 chat michael mim00-chat
70 93790 7662 abuse dph00-dph
71 93791 7662 postmaster dph00-dph
72 93792 7662 webmaster dph00-dph

View File

@ -1,10 +1,10 @@
emailalias_id;pac_id;name;target emailalias_id;pac_id;name;target
2403;11094;lug00;michael.mellis@example.com 2403;1094;lug00;michael.mellis@example.com
2405;11094;lug00-wla-listar;|/home/pacs/lug00/users/in/mailinglist/listar 2405;1094;lug00-wla-listar;|/home/pacs/lug00/users/in/mailinglist/listar
2429;11112;mim00;mim12-mi@mim12.hostsharing.net 2429;1112;mim00;mim12-mi@mim12.hostsharing.net
2431;11112;mim00-abruf;michael.mellis@hostsharing.net 2431;1112;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""" 2449;1112;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 2451;1112;mim00-hhfx-l;:include:/home/pacs/mim00/etc/hhfx.list
2454;11112;mim00-dev.null; /dev/null 2454;1112;mim00-dev.null; /dev/null
2455;11112;mim00-1_with_space;" ""|/home/pacs/mim00/install/corpslistar/listar""" 2455;1112;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' 2456;1112;mim00-1_with_single_quotes;'|/home/pacs/rir00/mailinglist/ecartis -r kybs06-intern'

1 emailalias_id pac_id name target
2 2403 11094 1094 lug00 michael.mellis@example.com
3 2405 11094 1094 lug00-wla-listar |/home/pacs/lug00/users/in/mailinglist/listar
4 2429 11112 1112 mim00 mim12-mi@mim12.hostsharing.net
5 2431 11112 1112 mim00-abruf michael.mellis@hostsharing.net
6 2449 11112 1112 mim00-hhfx mim00-hhfx,"|/usr/bin/formail -I 'Reply-To: hamburger-fx@example.net' | /usr/lib/sendmail mim00-hhfx-l"
7 2451 11112 1112 mim00-hhfx-l :include:/home/pacs/mim00/etc/hhfx.list
8 2454 11112 1112 mim00-dev.null /dev/null
9 2455 11112 1112 mim00-1_with_space "|/home/pacs/mim00/install/corpslistar/listar"
10 2456 11112 1112 mim00-1_with_single_quotes '|/home/pacs/rir00/mailinglist/ecartis -r kybs06-intern'

View File

@ -1,26 +1,26 @@
hive_id;hive_name;inet_addr_id;description hive_id;hive_name;inet_addr_id;description
1001;h00;358; 1;h00;358;
1002;h01;359; 2;h01;359;
1004;h02;360; 4;h02;360;
1007;h03;361; 7;h03;361;
1013;h04;430; 13;h04;430;
1014;h50;433; 14;h50;433;
1020;h05;354; 20;h05;354;
1021;h06;355; 21;h06;355;
1022;h07;357; 22;h07;357;
1028;h60;363; 28;h60;363;
1031;h63;431; 31;h63;431;
1037;h67;381; 37;h67;381;
1038;h97;537; 38;h97;537;
1039;h96;536; 39;h96;536;
1045;h74;485; 45;h74;485;
1050;h82;514; 50;h82;514;
1128;h19;565; 128;h19;565;
1148;h50;522; 148;h50;522;
1163;h92;457; 163;h92;457;
1173;h25;1759; 173;h25;1759;
1192;h93;1778; 192;h93;1778;
1193;h95;1779; 193;h95;1779;
1205;vm1107;1861; 205;vm1107;1861;
1208;vm1110;1864; 208;vm1110;1864;
1210;vm1112;1833; 210;vm1112;1833;

1 hive_id hive_name inet_addr_id description
2 1001 1 h00 358
3 1002 2 h01 359
4 1004 4 h02 360
5 1007 7 h03 361
6 1013 13 h04 430
7 1014 14 h50 433
8 1020 20 h05 354
9 1021 21 h06 355
10 1022 22 h07 357
11 1028 28 h60 363
12 1031 31 h63 431
13 1037 37 h67 381
14 1038 38 h97 537
15 1039 39 h96 536
16 1045 45 h74 485
17 1050 50 h82 514
18 1128 128 h19 565
19 1148 148 h50 522
20 1163 163 h92 457
21 1173 173 h25 1759
22 1192 192 h93 1778
23 1193 193 h95 1779
24 1205 205 vm1107 1861
25 1208 208 vm1110 1864
26 1210 210 vm1112 1833

View File

@ -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 packet_id;basepacket_code;packet_name;bp_id;hive_id;created;cancelled;cur_inet_addr_id;old_inet_addr_id;free
10630;PAC/WEB;hsh00;213;1014;2001-06-01;;473;;1 630;PAC/WEB;hsh00;213;14;2001-06-01;;473;;1
10968;SRV/MGD;vm1061;132;1028;2013-04-01;;363;;0 968;SRV/MGD;vm1061;132;28;2013-04-01;;363;;0
10978;SRV/MGD;vm1050;213;1014;2013-04-01;;433;;1 978;SRV/MGD;vm1050;213;14;2013-04-01;;433;;1
11061;SRV/MGD;vm1068;100;1037;2013-08-19;;381;;f 1061;SRV/MGD;vm1068;100;37;2013-08-19;;381;;f
11094;PAC/WEB;lug00;100;1037;2013-09-10;;1168;;1 1094;PAC/WEB;lug00;100;37;2013-09-10;;1168;;1
11112;PAC/WEB;mim00;100;1037;2013-09-17;;402;;1 1112;PAC/WEB;mim00;100;37;2013-09-17;;402;;1
11447;SRV/MGD;vm1093;213;1163;2014-11-28;;457;;t 1447;SRV/MGD;vm1093;213;163;2014-11-28;;457;;t
19959;PAC/WEB;dph00;542;1163;2021-06-02;;574;;0 19959;PAC/WEB;dph00;542;163;2021-06-02;;574;;0
23611;SRV/CLD;vm2097;541;;2022-08-10;;1790;;0 23611;SRV/CLD;vm2097;541;;2022-08-10;;1790;;0

1 packet_id basepacket_code packet_name bp_id hive_id created cancelled cur_inet_addr_id old_inet_addr_id free
2 10630 630 PAC/WEB hsh00 213 1014 14 2001-06-01 473 1
3 10968 968 SRV/MGD vm1061 132 1028 28 2013-04-01 363 0
4 10978 978 SRV/MGD vm1050 213 1014 14 2013-04-01 433 1
5 11061 1061 SRV/MGD vm1068 100 1037 37 2013-08-19 381 f
6 11094 1094 PAC/WEB lug00 100 1037 37 2013-09-10 1168 1
7 11112 1112 PAC/WEB mim00 100 1037 37 2013-09-17 402 1
8 11447 1447 SRV/MGD vm1093 213 1163 163 2014-11-28 457 t
9 19959 PAC/WEB dph00 542 1163 163 2021-06-02 574 0
10 23611 SRV/CLD vm2097 541 2022-08-10 1790 0

View File

@ -1,68 +1,68 @@
packet_component_id;packet_id;quantity;basecomponent_code;created;cancelled packet_component_id;packet_id;quantity;basecomponent_code;created;cancelled
46105;11094;10;TRAFFIC;2017-03-27; 46105;1094;10;TRAFFIC;2017-03-27;
46109;11094;5;MULTI;2017-03-27; 46109;1094;5;MULTI;2017-03-27;
46111;11094;0;DAEMON;2017-03-27; 46111;1094;0;DAEMON;2017-03-27;
46113;11094;1024;QUOTA;2017-03-27; 46113;1094;1024;QUOTA;2017-03-27;
46117;11112;0;DAEMON;2017-03-27; 46117;1112;0;DAEMON;2017-03-27;
46121;11112;20;TRAFFIC;2017-03-27; 46121;1112;20;TRAFFIC;2017-03-27;
46122;11112;5;MULTI;2017-03-27; 46122;1112;5;MULTI;2017-03-27;
46123;11112;3072;QUOTA;2017-03-27; 46123;1112;3072;QUOTA;2017-03-27;
143133;11094;1;SLABASIC;2017-09-01; 143133;1094;1;SLABASIC;2017-09-01;
143483;11112;1;SLABASIC;2017-09-01; 143483;1112;1;SLABASIC;2017-09-01;
757383;11112;0;SLAEXT24H;; 757383;1112;0;SLAEXT24H;;
770533;11094;0;SLAEXT24H;; 770533;1094;0;SLAEXT24H;;
784283;11112;0;OFFICE;; 784283;1112;0;OFFICE;;
797433;11094;0;OFFICE;; 797433;1094;0;OFFICE;;
1228033;11112;0;STORAGE;; 1228033;1112;0;STORAGE;;
1241433;11094;0;STORAGE;; 1241433;1094;0;STORAGE;;
1266451;10978;0;SLAPLAT4H;2021-10-05; 1266451;978;0;SLAPLAT4H;2021-10-05;
1266452;10978;250;TRAFFIC;2021-10-05; 1266452;978;250;TRAFFIC;2021-10-05;
1266453;10978;0;SLAPLAT8H;2021-10-05; 1266453;978;0;SLAPLAT8H;2021-10-05;
1266454;10978;0;SLAMAIL4H;2021-10-05; 1266454;978;0;SLAMAIL4H;2021-10-05;
1266455;10978;0;SLAMARIA8H;2021-10-05; 1266455;978;0;SLAMARIA8H;2021-10-05;
1266456;10978;0;SLAPGSQL4H;2021-10-05; 1266456;978;0;SLAPGSQL4H;2021-10-05;
1266457;10978;0;SLAWEB4H;2021-10-05; 1266457;978;0;SLAWEB4H;2021-10-05;
1266458;10978;0;SLAMARIA4H;2021-10-05; 1266458;978;0;SLAMARIA4H;2021-10-05;
1266459;10978;0;SLAPGSQL8H;2021-10-05; 1266459;978;0;SLAPGSQL8H;2021-10-05;
1266460;10978;0;SLAOFFIC8H;2021-10-05; 1266460;978;0;SLAOFFIC8H;2021-10-05;
1266461;10978;0;SLAWEB8H;2021-10-05; 1266461;978;0;SLAWEB8H;2021-10-05;
1266462;10978;256000;STORAGE;2021-10-05; 1266462;978;256000;STORAGE;2021-10-05;
1266463;10978;153600;QUOTA;2021-10-05; 1266463;978;153600;QUOTA;2021-10-05;
1266464;10978;0;SLAOFFIC4H;2021-10-05; 1266464;978;0;SLAOFFIC4H;2021-10-05;
1266465;10978;32768;RAM;2021-10-05; 1266465;978;32768;RAM;2021-10-05;
1266466;10978;4;CPU;2021-10-05; 1266466;978;4;CPU;2021-10-05;
1266467;10978;1;SLABASIC;2021-10-05; 1266467;978;1;SLABASIC;2021-10-05;
1266468;10978;0;SLAMAIL8H;2021-10-05; 1266468;978;0;SLAMAIL8H;2021-10-05;
1275583;10978;0;SLAPLAT2H;2022-04-20; 1275583;978;0;SLAPLAT2H;2022-04-20;
1280533;10978;0;SLAWEB2H;2022-04-20; 1280533;978;0;SLAWEB2H;2022-04-20;
1285483;10978;0;SLAMARIA2H;2022-04-20; 1285483;978;0;SLAMARIA2H;2022-04-20;
1290433;10978;0;SLAPGSQL2H;2022-04-20; 1290433;978;0;SLAPGSQL2H;2022-04-20;
1295383;10978;0;SLAMAIL2H;2022-04-20; 1295383;978;0;SLAMAIL2H;2022-04-20;
1300333;10978;0;SLAOFFIC2H;2022-04-20; 1300333;978;0;SLAOFFIC2H;2022-04-20;
1305933;11447;0;SLAWEB2H;2022-05-02; 1305933;1447;0;SLAWEB2H;2022-05-02;
1305934;11447;0;SLAPLAT4H;2022-05-02; 1305934;1447;0;SLAPLAT4H;2022-05-02;
1305935;11447;0;SLAWEB8H;2022-05-02; 1305935;1447;0;SLAWEB8H;2022-05-02;
1305936;11447;0;SLAOFFIC4H;2022-05-02; 1305936;1447;0;SLAOFFIC4H;2022-05-02;
1305937;11447;0;SLAMARIA4H;2022-05-02; 1305937;1447;0;SLAMARIA4H;2022-05-02;
1305938;11447;0;SLAOFFIC8H;2022-05-02; 1305938;1447;0;SLAOFFIC8H;2022-05-02;
1305939;11447;1;SLABASIC;2022-05-02; 1305939;1447;1;SLABASIC;2022-05-02;
1305940;11447;0;SLAMAIL8H;2022-05-02; 1305940;1447;0;SLAMAIL8H;2022-05-02;
1305941;11447;0;SLAPGSQL4H;2022-05-02; 1305941;1447;0;SLAPGSQL4H;2022-05-02;
1305942;11447;6;CPU;2022-05-02; 1305942;1447;6;CPU;2022-05-02;
1305943;11447;250;TRAFFIC;2022-05-02; 1305943;1447;250;TRAFFIC;2022-05-02;
1305944;11447;0;SLAOFFIC2H;2022-05-02; 1305944;1447;0;SLAOFFIC2H;2022-05-02;
1305945;11447;0;SLAMAIL4H;2022-05-02; 1305945;1447;0;SLAMAIL4H;2022-05-02;
1305946;11447;0;SLAPGSQL2H;2022-05-02; 1305946;1447;0;SLAPGSQL2H;2022-05-02;
1305947;11447;0;SLAMARIA2H;2022-05-02; 1305947;1447;0;SLAMARIA2H;2022-05-02;
1305948;11447;0;SLAMARIA8H;2022-05-02; 1305948;1447;0;SLAMARIA8H;2022-05-02;
1305949;11447;0;SLAWEB4H;2022-05-02; 1305949;1447;0;SLAWEB4H;2022-05-02;
1305950;11447;16384;RAM;2022-05-02; 1305950;1447;16384;RAM;2022-05-02;
1305951;11447;0;SLAPGSQL8H;2022-05-02; 1305951;1447;0;SLAPGSQL8H;2022-05-02;
1305952;11447;512000;STORAGE;2022-05-02; 1305952;1447;512000;STORAGE;2022-05-02;
1305953;11447;0;SLAMAIL2H;2022-05-02; 1305953;1447;0;SLAMAIL2H;2022-05-02;
1305954;11447;0;SLAPLAT2H;2022-05-02; 1305954;1447;0;SLAPLAT2H;2022-05-02;
1305955;11447;0;SLAPLAT8H;2022-05-02; 1305955;1447;0;SLAPLAT8H;2022-05-02;
1305956;11447;307200;QUOTA;2022-05-02; 1305956;1447;307200;QUOTA;2022-05-02;
1312013;23611;1;SLABASIC;2022-08-10; 1312013;23611;1;SLABASIC;2022-08-10;
1312014;23611;0;BANDWIDTH;2022-08-10; 1312014;23611;0;BANDWIDTH;2022-08-10;
1312015;23611;12288;RAM;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; 1312020;23611;8;CPU;2022-08-10;
1312021;23611;250;TRAFFIC;2022-08-10; 1312021;23611;250;TRAFFIC;2022-08-10;
1312022;23611;0;SLAINFR4H;2022-08-10; 1312022;23611;0;SLAINFR4H;2022-08-10;
1313883;10978;0;BANDWIDTH;; 1313883;978;0;BANDWIDTH;;
1316583;11447;0;BANDWIDTH;; 1316583;1447;0;BANDWIDTH;;
1338074;10968;0;SLAMARIA2H;2023-09-05; 1338074;968;0;SLAMARIA2H;2023-09-05;
1338075;10968;384000;QUOTA;2023-09-05; 1338075;968;384000;QUOTA;2023-09-05;
1338076;10968;1;SLAMAIL8H;2023-09-05; 1338076;968;1;SLAMAIL8H;2023-09-05;
1338077;10968;0;BANDWIDTH;2023-09-05; 1338077;968;0;BANDWIDTH;2023-09-05;
1338078;10968;0;SLAWEB2H;2023-09-05; 1338078;968;0;SLAWEB2H;2023-09-05;
1338079;10968;0;SLAOFFIC4H;2023-09-05; 1338079;968;0;SLAOFFIC4H;2023-09-05;
1338080;10968;256000;STORAGE;2023-09-05; 1338080;968;256000;STORAGE;2023-09-05;
1338081;10968;0;SLAPLAT4H;2023-09-05; 1338081;968;0;SLAPLAT4H;2023-09-05;
1338082;10968;0;SLAPGSQL2H;2023-09-05; 1338082;968;0;SLAPGSQL2H;2023-09-05;
1338083;10968;0;SLAPLAT2H;2023-09-05; 1338083;968;0;SLAPLAT2H;2023-09-05;
1338084;10968;250;TRAFFIC;2023-09-05; 1338084;968;250;TRAFFIC;2023-09-05;
1338085;10968;1;SLAMARIA8H;2023-09-05; 1338085;968;1;SLAMARIA8H;2023-09-05;
1338086;10968;0;SLAPGSQL4H;2023-09-05; 1338086;968;0;SLAPGSQL4H;2023-09-05;
1338087;10968;0;SLAMAIL2H;2023-09-05; 1338087;968;0;SLAMAIL2H;2023-09-05;
1338088;10968;1;SLAPLAT8H;2023-09-05; 1338088;968;1;SLAPLAT8H;2023-09-05;
1338089;10968;0;SLAWEB4H;2023-09-05; 1338089;968;0;SLAWEB4H;2023-09-05;
1338090;10968;6;CPU;2023-09-05; 1338090;968;6;CPU;2023-09-05;
1338091;10968;1;SLAPGSQL8H;2023-09-05; 1338091;968;1;SLAPGSQL8H;2023-09-05;
1338092;10968;0;SLAMARIA4H;2023-09-05; 1338092;968;0;SLAMARIA4H;2023-09-05;
1338093;10968;0;SLAMAIL4H;2023-09-05; 1338093;968;0;SLAMAIL4H;2023-09-05;
1338094;10968;14336;RAM;2023-09-05; 1338094;968;14336;RAM;2023-09-05;
1338095;10968;0;SLAOFFIC2H;2023-09-05; 1338095;968;0;SLAOFFIC2H;2023-09-05;
1338096;10968;0;SLAOFFIC8H;2023-09-05; 1338096;968;0;SLAOFFIC8H;2023-09-05;
1338097;10968;1;SLABASIC;2023-09-05; 1338097;968;1;SLABASIC;2023-09-05;
1338098;10968;1;SLAWEB8H;2023-09-05; 1338098;968;1;SLAWEB8H;2023-09-05;
1339228;19959;20;TRAFFIC;2023-10-27; 1339228;19959;20;TRAFFIC;2023-10-27;
1339229;19959;1;SLABASIC;2023-10-27; 1339229;19959;1;SLABASIC;2023-10-27;
1339230;19959;0;DAEMON;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; 1339233;19959;0;SLAEXT24H;2023-10-27;
1339234;19959;0;OFFICE;2023-10-27; 1339234;19959;0;OFFICE;2023-10-27;
1339235;19959;1;MULTI;2023-10-27; 1339235;19959;1;MULTI;2023-10-27;
1341088;11061;0;SLAOFFIC2H;2023-12-14; 1341088;1061;0;SLAOFFIC2H;2023-12-14;
1341089;11061;0;SLAOFFIC8H;2023-12-14; 1341089;1061;0;SLAOFFIC8H;2023-12-14;
1341090;11061;256000;STORAGE;2023-12-14; 1341090;1061;256000;STORAGE;2023-12-14;
1341091;11061;0;SLAMAIL4H;2023-12-14; 1341091;1061;0;SLAMAIL4H;2023-12-14;
1341092;11061;0;SLAMAIL2H;2023-12-14; 1341092;1061;0;SLAMAIL2H;2023-12-14;
1341093;11061;0;SLAPLAT2H;2023-12-14; 1341093;1061;0;SLAPLAT2H;2023-12-14;
1341094;11061;4096;RAM;2023-12-14; 1341094;1061;4096;RAM;2023-12-14;
1341095;11061;0;SLAPLAT4H;2023-12-14; 1341095;1061;0;SLAPLAT4H;2023-12-14;
1341096;11061;1;SLAPGSQL8H;2023-12-14; 1341096;1061;1;SLAPGSQL8H;2023-12-14;
1341097;11061;2;CPU;2023-12-14; 1341097;1061;2;CPU;2023-12-14;
1341098;11061;0;QUOTA;2023-12-14; 1341098;1061;0;QUOTA;2023-12-14;
1341099;11061;0;SLAMAIL8H;2023-12-14; 1341099;1061;0;SLAMAIL8H;2023-12-14;
1341100;11061;1;SLABASIC;2023-12-14; 1341100;1061;1;SLABASIC;2023-12-14;
1341101;11061;1;SLAMARIA8H;2023-12-14; 1341101;1061;1;SLAMARIA8H;2023-12-14;
1341102;11061;0;SLAPGSQL4H;2023-12-14; 1341102;1061;0;SLAPGSQL4H;2023-12-14;
1341103;11061;0;SLAPGSQL2H;2023-12-14; 1341103;1061;0;SLAPGSQL2H;2023-12-14;
1341104;11061;0;SLAMARIA4H;2023-12-14; 1341104;1061;0;SLAMARIA4H;2023-12-14;
1341105;11061;0;SLAOFFIC4H;2023-12-14; 1341105;1061;0;SLAOFFIC4H;2023-12-14;
1341106;11061;1;SLAPLAT8H;2023-12-14; 1341106;1061;1;SLAPLAT8H;2023-12-14;
1341107;11061;0;BANDWIDTH;2023-12-14; 1341107;1061;0;BANDWIDTH;2023-12-14;
1341108;11061;1;SLAWEB8H;2023-12-14; 1341108;1061;1;SLAWEB8H;2023-12-14;
1341109;11061;0;SLAWEB2H;2023-12-14; 1341109;1061;0;SLAWEB2H;2023-12-14;
1341110;11061;0;SLAMARIA2H;2023-12-14; 1341110;1061;0;SLAMARIA2H;2023-12-14;
1341111;11061;250;TRAFFIC;2023-12-14; 1341111;1061;250;TRAFFIC;2023-12-14;
1341112;11061;0;SLAWEB4H;2023-12-14; 1341112;1061;0;SLAWEB4H;2023-12-14;
1346628;10630;0;SLAEXT24H;2024-03-19; 1346628;630;0;SLAEXT24H;2024-03-19;
1346629;10630;0;OFFICE;2024-03-19; 1346629;630;0;OFFICE;2024-03-19;
1346630;10630;16384;QUOTA;2024-03-19; 1346630;630;16384;QUOTA;2024-03-19;
1346631;10630;0;DAEMON;2024-03-19; 1346631;630;0;DAEMON;2024-03-19;
1346632;10630;10240;STORAGE;2024-03-19; 1346632;630;10240;STORAGE;2024-03-19;
1346633;10630;1;SLABASIC;2024-03-19; 1346633;630;1;SLABASIC;2024-03-19;
1346634;10630;50;TRAFFIC;2024-03-19; 1346634;630;50;TRAFFIC;2024-03-19;
1346635;10630;25;MULTI;2024-03-19; 1346635;630;25;MULTI;2024-03-19;

1 packet_component_id packet_id quantity basecomponent_code created cancelled
2 46105 11094 1094 10 TRAFFIC 2017-03-27
3 46109 11094 1094 5 MULTI 2017-03-27
4 46111 11094 1094 0 DAEMON 2017-03-27
5 46113 11094 1094 1024 QUOTA 2017-03-27
6 46117 11112 1112 0 DAEMON 2017-03-27
7 46121 11112 1112 20 TRAFFIC 2017-03-27
8 46122 11112 1112 5 MULTI 2017-03-27
9 46123 11112 1112 3072 QUOTA 2017-03-27
10 143133 11094 1094 1 SLABASIC 2017-09-01
11 143483 11112 1112 1 SLABASIC 2017-09-01
12 757383 11112 1112 0 SLAEXT24H
13 770533 11094 1094 0 SLAEXT24H
14 784283 11112 1112 0 OFFICE
15 797433 11094 1094 0 OFFICE
16 1228033 11112 1112 0 STORAGE
17 1241433 11094 1094 0 STORAGE
18 1266451 10978 978 0 SLAPLAT4H 2021-10-05
19 1266452 10978 978 250 TRAFFIC 2021-10-05
20 1266453 10978 978 0 SLAPLAT8H 2021-10-05
21 1266454 10978 978 0 SLAMAIL4H 2021-10-05
22 1266455 10978 978 0 SLAMARIA8H 2021-10-05
23 1266456 10978 978 0 SLAPGSQL4H 2021-10-05
24 1266457 10978 978 0 SLAWEB4H 2021-10-05
25 1266458 10978 978 0 SLAMARIA4H 2021-10-05
26 1266459 10978 978 0 SLAPGSQL8H 2021-10-05
27 1266460 10978 978 0 SLAOFFIC8H 2021-10-05
28 1266461 10978 978 0 SLAWEB8H 2021-10-05
29 1266462 10978 978 256000 STORAGE 2021-10-05
30 1266463 10978 978 153600 QUOTA 2021-10-05
31 1266464 10978 978 0 SLAOFFIC4H 2021-10-05
32 1266465 10978 978 32768 RAM 2021-10-05
33 1266466 10978 978 4 CPU 2021-10-05
34 1266467 10978 978 1 SLABASIC 2021-10-05
35 1266468 10978 978 0 SLAMAIL8H 2021-10-05
36 1275583 10978 978 0 SLAPLAT2H 2022-04-20
37 1280533 10978 978 0 SLAWEB2H 2022-04-20
38 1285483 10978 978 0 SLAMARIA2H 2022-04-20
39 1290433 10978 978 0 SLAPGSQL2H 2022-04-20
40 1295383 10978 978 0 SLAMAIL2H 2022-04-20
41 1300333 10978 978 0 SLAOFFIC2H 2022-04-20
42 1305933 11447 1447 0 SLAWEB2H 2022-05-02
43 1305934 11447 1447 0 SLAPLAT4H 2022-05-02
44 1305935 11447 1447 0 SLAWEB8H 2022-05-02
45 1305936 11447 1447 0 SLAOFFIC4H 2022-05-02
46 1305937 11447 1447 0 SLAMARIA4H 2022-05-02
47 1305938 11447 1447 0 SLAOFFIC8H 2022-05-02
48 1305939 11447 1447 1 SLABASIC 2022-05-02
49 1305940 11447 1447 0 SLAMAIL8H 2022-05-02
50 1305941 11447 1447 0 SLAPGSQL4H 2022-05-02
51 1305942 11447 1447 6 CPU 2022-05-02
52 1305943 11447 1447 250 TRAFFIC 2022-05-02
53 1305944 11447 1447 0 SLAOFFIC2H 2022-05-02
54 1305945 11447 1447 0 SLAMAIL4H 2022-05-02
55 1305946 11447 1447 0 SLAPGSQL2H 2022-05-02
56 1305947 11447 1447 0 SLAMARIA2H 2022-05-02
57 1305948 11447 1447 0 SLAMARIA8H 2022-05-02
58 1305949 11447 1447 0 SLAWEB4H 2022-05-02
59 1305950 11447 1447 16384 RAM 2022-05-02
60 1305951 11447 1447 0 SLAPGSQL8H 2022-05-02
61 1305952 11447 1447 512000 STORAGE 2022-05-02
62 1305953 11447 1447 0 SLAMAIL2H 2022-05-02
63 1305954 11447 1447 0 SLAPLAT2H 2022-05-02
64 1305955 11447 1447 0 SLAPLAT8H 2022-05-02
65 1305956 11447 1447 307200 QUOTA 2022-05-02
66 1312013 23611 1 SLABASIC 2022-08-10
67 1312014 23611 0 BANDWIDTH 2022-08-10
68 1312015 23611 12288 RAM 2022-08-10
73 1312020 23611 8 CPU 2022-08-10
74 1312021 23611 250 TRAFFIC 2022-08-10
75 1312022 23611 0 SLAINFR4H 2022-08-10
76 1313883 10978 978 0 BANDWIDTH
77 1316583 11447 1447 0 BANDWIDTH
78 1338074 10968 968 0 SLAMARIA2H 2023-09-05
79 1338075 10968 968 384000 QUOTA 2023-09-05
80 1338076 10968 968 1 SLAMAIL8H 2023-09-05
81 1338077 10968 968 0 BANDWIDTH 2023-09-05
82 1338078 10968 968 0 SLAWEB2H 2023-09-05
83 1338079 10968 968 0 SLAOFFIC4H 2023-09-05
84 1338080 10968 968 256000 STORAGE 2023-09-05
85 1338081 10968 968 0 SLAPLAT4H 2023-09-05
86 1338082 10968 968 0 SLAPGSQL2H 2023-09-05
87 1338083 10968 968 0 SLAPLAT2H 2023-09-05
88 1338084 10968 968 250 TRAFFIC 2023-09-05
89 1338085 10968 968 1 SLAMARIA8H 2023-09-05
90 1338086 10968 968 0 SLAPGSQL4H 2023-09-05
91 1338087 10968 968 0 SLAMAIL2H 2023-09-05
92 1338088 10968 968 1 SLAPLAT8H 2023-09-05
93 1338089 10968 968 0 SLAWEB4H 2023-09-05
94 1338090 10968 968 6 CPU 2023-09-05
95 1338091 10968 968 1 SLAPGSQL8H 2023-09-05
96 1338092 10968 968 0 SLAMARIA4H 2023-09-05
97 1338093 10968 968 0 SLAMAIL4H 2023-09-05
98 1338094 10968 968 14336 RAM 2023-09-05
99 1338095 10968 968 0 SLAOFFIC2H 2023-09-05
100 1338096 10968 968 0 SLAOFFIC8H 2023-09-05
101 1338097 10968 968 1 SLABASIC 2023-09-05
102 1338098 10968 968 1 SLAWEB8H 2023-09-05
103 1339228 19959 20 TRAFFIC 2023-10-27
104 1339229 19959 1 SLABASIC 2023-10-27
105 1339230 19959 0 DAEMON 2023-10-27
108 1339233 19959 0 SLAEXT24H 2023-10-27
109 1339234 19959 0 OFFICE 2023-10-27
110 1339235 19959 1 MULTI 2023-10-27
111 1341088 11061 1061 0 SLAOFFIC2H 2023-12-14
112 1341089 11061 1061 0 SLAOFFIC8H 2023-12-14
113 1341090 11061 1061 256000 STORAGE 2023-12-14
114 1341091 11061 1061 0 SLAMAIL4H 2023-12-14
115 1341092 11061 1061 0 SLAMAIL2H 2023-12-14
116 1341093 11061 1061 0 SLAPLAT2H 2023-12-14
117 1341094 11061 1061 4096 RAM 2023-12-14
118 1341095 11061 1061 0 SLAPLAT4H 2023-12-14
119 1341096 11061 1061 1 SLAPGSQL8H 2023-12-14
120 1341097 11061 1061 2 CPU 2023-12-14
121 1341098 11061 1061 0 QUOTA 2023-12-14
122 1341099 11061 1061 0 SLAMAIL8H 2023-12-14
123 1341100 11061 1061 1 SLABASIC 2023-12-14
124 1341101 11061 1061 1 SLAMARIA8H 2023-12-14
125 1341102 11061 1061 0 SLAPGSQL4H 2023-12-14
126 1341103 11061 1061 0 SLAPGSQL2H 2023-12-14
127 1341104 11061 1061 0 SLAMARIA4H 2023-12-14
128 1341105 11061 1061 0 SLAOFFIC4H 2023-12-14
129 1341106 11061 1061 1 SLAPLAT8H 2023-12-14
130 1341107 11061 1061 0 BANDWIDTH 2023-12-14
131 1341108 11061 1061 1 SLAWEB8H 2023-12-14
132 1341109 11061 1061 0 SLAWEB2H 2023-12-14
133 1341110 11061 1061 0 SLAMARIA2H 2023-12-14
134 1341111 11061 1061 250 TRAFFIC 2023-12-14
135 1341112 11061 1061 0 SLAWEB4H 2023-12-14
136 1346628 10630 630 0 SLAEXT24H 2024-03-19
137 1346629 10630 630 0 OFFICE 2024-03-19
138 1346630 10630 630 16384 QUOTA 2024-03-19
139 1346631 10630 630 0 DAEMON 2024-03-19
140 1346632 10630 630 10240 STORAGE 2024-03-19
141 1346633 10630 630 1 SLABASIC 2024-03-19
142 1346634 10630 630 50 TRAFFIC 2024-03-19
143 1346635 10630 630 25 MULTI 2024-03-19

View File

@ -1,19 +1,19 @@
unixuser_id;name;comment;shell;homedir;locked;packet_id;userid;quota_softlimit;quota_hardlimit;storage_softlimit;storage_hardlimit 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;10630;10000;0;0;0;0 100824;hsh00;Hostsharing Paket;/bin/bash;/home/pacs/hsh00;0;630;10000;0;0;0;0
5803;lug00;LUGs;/bin/bash;/home/pacs/lug00;0;11094;102090;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;11094;102091;4;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;11094;102093;4;8;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;11094;102094;0;0;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;11094;102095;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;11094;102106;2000000;4000000;20;0 5835;lug00-test;Test;/usr/bin/passwd;/home/pacs/lug00/users/test;0;1094;102106;2000000;4000000;20;0
100705;hsh00-mim;Michael Mellis;/bin/false;/home/pacs/hsh00/users/mi;0;10630;10003;0;0;0;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;11112;102147;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;11112;102148;128;256;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;11112;102160;0;0;0;0 5990;mim00-mail;Mailbox;/bin/bash;/home/pacs/mim00/users/mail;0;1112;102160;0;0;0;0
167846;hsh00-dph;hsh00-uph;/bin/false;/home/pacs/hsh00/users/uph;0;10630;110568;0;0;0;0 167846;hsh00-dph;hsh00-uph;/bin/false;/home/pacs/hsh00/users/uph;0;630;110568;0;0;0;0
169546;dph00;Reinhard Wiese;/bin/bash;/home/pacs/dph00;0;19959;110593;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 169596;dph00-dph;Domain admin;/bin/bash;/home/pacs/dph00/users/uph;0;19959;110594;0;0;0;0

1 unixuser_id name comment shell homedir locked packet_id userid quota_softlimit quota_hardlimit storage_softlimit storage_hardlimit
2 100824 hsh00 Hostsharing Paket /bin/bash /home/pacs/hsh00 0 10630 630 10000 0 0 0 0
3 5803 lug00 LUGs /bin/bash /home/pacs/lug00 0 11094 1094 102090 0 0 0 0
4 5805 lug00-wla.1 Paul Klemm /bin/bash /home/pacs/lug00/users/deaf 0 11094 1094 102091 4 0 0 0
5 5809 lug00-wla.2 Walter Müller /bin/bash /home/pacs/lug00/users/marl 0 11094 1094 102093 4 8 0 0
6 5811 lug00-ola.a LUG OLA - POP a /usr/bin/passwd /home/pacs/lug00/users/marl.a 1 11094 1094 102094 0 0 0 0
7 5813 lug00-ola.b LUG OLA - POP b /usr/bin/passwd /home/pacs/lug00/users/marl.b 1 11094 1094 102095 0 0 0 0
8 5835 lug00-test Test /usr/bin/passwd /home/pacs/lug00/users/test 0 11094 1094 102106 2000000 4000000 20 0
9 100705 hsh00-mim Michael Mellis /bin/false /home/pacs/hsh00/users/mi 0 10630 630 10003 0 0 0 0
10 5964 mim00 Michael Mellis /bin/bash /home/pacs/mim00 0 11112 1112 102147 0 0 0 0
11 5966 mim00-1981 Jahrgangstreffen 1981 /bin/bash /home/pacs/mim00/users/1981 0 11112 1112 102148 128 256 0 0
12 5990 mim00-mail Mailbox /bin/bash /home/pacs/mim00/users/mail 0 11112 1112 102160 0 0 0 0
13 167846 hsh00-dph hsh00-uph /bin/false /home/pacs/hsh00/users/uph 0 10630 630 110568 0 0 0 0
14 169546 dph00 Reinhard Wiese /bin/bash /home/pacs/dph00 0 19959 110593 0 0 0 0
15 169596 dph00-dph Domain admin /bin/bash /home/pacs/dph00/users/uph 0 19959 110594 0 0 0 0
16
17
18
19

View File

@ -56,6 +56,13 @@
"IN", "IN",
"NS", "NS",
"dns1.hostsharing.net." "dns1.hostsharing.net."
],
[
"key1._domainkey.mellis.de.",
21600,
"IN",
"TXT",
"\"v=DKIM1; k=rsa; t=s; h=sha256; s=email; \" \"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzAIotiz04KGTF9ECNxEmnnl6eTHplxxYJpOWhx3YiLbQyt6D+sN5uMa/\" \"RMIJDr5BzqzHDQPTM6esLldtIu4OpHppdu3PG4BUB8aXfA0EQvt0wQ/VFGNP36x87nfqs2L8NxbgPwhVD5RqFgj6aheTt64PB+VRco3Nc2qLF4iGpM9UlQbp/W2IITXPbLd9Z/qPo4S6Yeghsq4eFSlcNqSGyO42d23EbAxiehJKBu2eTKX5Vj+n06h1zuXOHyC5IwIe515hmS/\" \"kybbyTTEe35Rmuh+1W9aBJb85d34Thi+knUJeysFleHe7mXG7k6zFiG5HjaP7CvDzzdWvCcaJhOIqXwIDAQAB\""
] ]
] ]
}, },
@ -229,38 +236,38 @@
"waera.de": { "waera.de": {
"DOM_OWNER": "mim00", "DOM_OWNER": "mim00",
"TTL": 21600, "TTL": 21600,
"auto-A-RR": false, "auto-A-RR": true,
"auto-AAAA-RR": false, "auto-AAAA-RR": false,
"auto-AUTOCONFIG-RR": false, "auto-AUTOCONFIG-RR": false,
"auto-AUTODISCOVER-RR": false, "auto-AUTODISCOVER-RR": false,
"auto-DKIM-RR": false, "auto-DKIM-RR": false,
"auto-MAILSERVICES-RR": false, "auto-MAILSERVICES-RR": false,
"auto-MX-RR": false, "auto-MX-RR": true,
"auto-NS-RR": false, "auto-NS-RR": true,
"auto-SOA": false, "auto-SOA": true,
"auto-SPF-RR": false, "auto-SPF-RR": false,
"auto-WILDCARD-A-RR": false, "auto-WILDCARD-A-RR": true,
"auto-WILDCARD-AAAA-RR": false, "auto-WILDCARD-AAAA-RR": false,
"auto-WILDCARD-MX-RR": false, "auto-WILDCARD-MX-RR": true,
"auto-WILDCARD-SPF-RR": false, "auto-WILDCARD-SPF-RR": false,
"user-RR": [] "user-RR": []
}, },
"xn--wra-qla.de": { "xn--wra-qla.de": {
"DOM_OWNER": "mim00", "DOM_OWNER": "mim00",
"TTL": 21600, "TTL": 21600,
"auto-A-RR": false, "auto-A-RR": true,
"auto-AAAA-RR": false, "auto-AAAA-RR": false,
"auto-AUTOCONFIG-RR": false, "auto-AUTOCONFIG-RR": false,
"auto-AUTODISCOVER-RR": false, "auto-AUTODISCOVER-RR": false,
"auto-DKIM-RR": false, "auto-DKIM-RR": false,
"auto-MAILSERVICES-RR": false, "auto-MAILSERVICES-RR": false,
"auto-MX-RR": false, "auto-MX-RR": true,
"auto-NS-RR": false, "auto-NS-RR": true,
"auto-SOA": false, "auto-SOA": true,
"auto-SPF-RR": false, "auto-SPF-RR": false,
"auto-WILDCARD-A-RR": false, "auto-WILDCARD-A-RR": true,
"auto-WILDCARD-AAAA-RR": false, "auto-WILDCARD-AAAA-RR": false,
"auto-WILDCARD-MX-RR": false, "auto-WILDCARD-MX-RR": true,
"auto-WILDCARD-SPF-RR": false, "auto-WILDCARD-SPF-RR": false,
"user-RR": [] "user-RR": []
} }