Compare commits

...

2 Commits

Author SHA1 Message Date
Michael Hoennig
03184f6e58 also import groupid 2024-08-30 18:36:18 +02:00
Michael Hoennig
f9309451aa set webspace groupid to main user userid 2024-08-30 17:32:50 +02:00
3 changed files with 25 additions and 3 deletions

View File

@ -8,13 +8,15 @@ import java.util.regex.Pattern;
import static net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType.MANAGED_WEBSPACE;
import static net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType.UNIX_USER;
import static net.hostsharing.hsadminng.hs.validation.IntegerProperty.integerProperty;
class HsManagedWebspaceHostingAssetValidator extends HostingAssetEntityValidator {
public HsManagedWebspaceHostingAssetValidator() {
super(
MANAGED_WEBSPACE,
AlarmContact.isOptional(),
NO_EXTRA_PROPERTIES); // TODO.impl: groupid missing, should be equal to main user
integerProperty("groupid").readOnly()
);
}
@Override
@ -43,6 +45,7 @@ class HsManagedWebspaceHostingAssetValidator extends HostingAssetEntityValidator
.prepareForSave()
.saveUsing(emw::persist)
.validateContext();
webspaceAsset.getConfig().put("groupid", unixUserAsset.getConfig().get("userid"));
}
}
}

View File

@ -176,7 +176,9 @@ class HsHostingAssetControllerAcceptanceTest extends ContextBasedTestWithCleanup
"type": "MANAGED_WEBSPACE",
"identifier": "fir10",
"caption": "some separate ManagedWebspace HA",
"config": {}
"config": {
"groupid": 1000000
}
}
"""))
.header("Location", matchesRegex("http://localhost:[1-9][0-9]*/api/hs/hosting/assets/[^/]*"))

View File

@ -350,6 +350,18 @@ public class ImportHostingAssets extends BaseOfficeDataImport {
9596=HsHostingAsset(UNIX_USER, dph00-dph, Domain admin, MANAGED_WEBSPACE:dph00, {"SSD hard quota": 0, "SSD soft quota": 0, "locked": false, "shell": "/bin/bash", "userid": 110594})
}
""");
// now with groupids
assertThat(firstOfEach(5, packetAssets, MANAGED_WEBSPACE))
.isEqualToIgnoringWhitespace("""
{
10630=HsHostingAsset(MANAGED_WEBSPACE, hsh00, HA hsh00, MANAGED_SERVER:vm1050, D-1000000:hsh default project:BI hsh00, {"groupid": 6824}),
11094=HsHostingAsset(MANAGED_WEBSPACE, lug00, HA lug00, MANAGED_SERVER:vm1068, D-1000300:mim default project:BI lug00, {"groupid": 5803}),
11111=HsHostingAsset(MANAGED_WEBSPACE, xyz68, HA xyz68, MANAGED_SERVER:vm1068, D-1000000:vm1068 Monitor:BI xyz68, {"groupid": 5961}),
11112=HsHostingAsset(MANAGED_WEBSPACE, mim00, HA mim00, MANAGED_SERVER:vm1068, D-1000300:mim default project:BI mim00, {"groupid": 5964}),
19959=HsHostingAsset(MANAGED_WEBSPACE, dph00, HA dph00, MANAGED_SERVER:vm1093, D-1101900:dph default project:BI dph00, {"groupid": 9546})
}
""");
}
@Test
@ -1235,9 +1247,10 @@ public class ImportHostingAssets extends BaseOfficeDataImport {
.forEach(rec -> {
final var unixuser_id = rec.getInteger("unixuser_id");
final var packet_id = rec.getInteger("packet_id");
final var parentWebspaceAsset = packetAssets.get(packet_id);
final var unixUserAsset = HsHostingAssetRealEntity.builder()
.type(UNIX_USER)
.parentAsset(packetAssets.get(packet_id))
.parentAsset(parentWebspaceAsset)
.identifier(rec.getString("name"))
.caption(rec.getString("comment"))
.isLoaded(true) // avoid overwriting imported userids with generated ids
@ -1253,6 +1266,10 @@ public class ImportHostingAssets extends BaseOfficeDataImport {
)))
.build();
if (unixUserAsset.getIdentifier().equals(parentWebspaceAsset.getIdentifier())) {
parentWebspaceAsset.getConfig().put("groupid", unixuser_id);
}
// TODO.spec: crop SSD+HDD limits if > booked
if (unixUserAsset.getDirectValue("SSD hard quota", Integer.class, 0)
> 1024 * unixUserAsset.getContextValue("SSD", Integer.class, 0)) {