add-webspace-gid-and-create-webspace-main-user (#94)
Co-authored-by: Michael Hoennig <michael@hoennig.de> Reviewed-on: https://dev.hostsharing.net/hostsharing/hs.hsadmin.ng/pulls/94 Reviewed-by: Marc Sandlus <marc.sandlus@hostsharing.net>
This commit is contained in:
@@ -176,17 +176,31 @@ 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/[^/]*"))
|
||||
.extract().header("Location"); // @formatter:on
|
||||
|
||||
// finally, the new asset can be accessed under the generated UUID
|
||||
final var newWebspace = UUID.fromString(
|
||||
// the new asset can be accessed under the generated UUID
|
||||
final var newWebspaceUuid = UUID.fromString(
|
||||
location.substring(location.lastIndexOf('/') + 1));
|
||||
assertThat(newWebspace).isNotNull();
|
||||
toCleanup(HsHostingAssetRbacEntity.class, newWebspace);
|
||||
assertThat(newWebspaceUuid).isNotNull();
|
||||
toCleanup(HsHostingAssetRbacEntity.class, newWebspaceUuid);
|
||||
|
||||
// and a default user got created
|
||||
final var webspaceUnixUser = em.createQuery("SELECT ha FROM HsHostingAssetRealEntity ha WHERE ha.parentAsset.uuid=:webspaceUUID")
|
||||
.setParameter("webspaceUUID", newWebspaceUuid)
|
||||
.getSingleResult();
|
||||
assertThat(webspaceUnixUser).isNotNull().extracting(Object::toString)
|
||||
.isEqualTo("""
|
||||
HsHostingAsset(UNIX_USER, fir10, fir10 webspace user, MANAGED_WEBSPACE:fir10, {
|
||||
"password" : null,
|
||||
"userid" : 1000000
|
||||
})
|
||||
""".trim());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -325,7 +339,7 @@ class HsHostingAssetControllerAcceptanceTest extends ContextBasedTestWithCleanup
|
||||
|
||||
jpaAttempt.transacted(() -> {
|
||||
context.define("superuser-alex@hostsharing.net");
|
||||
for (int n = 0; n < UNIX_USER_PER_MULTI_OPTION -preExistingUnixUserCount+1; ++n) {
|
||||
for (int n = 0; n < UNIX_USER_PER_MULTI_OPTION-preExistingUnixUserCount; ++n) {
|
||||
toCleanup(realAssetRepo.save(
|
||||
HsHostingAssetRealEntity.builder()
|
||||
.type(UNIX_USER)
|
||||
|
@@ -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)) {
|
||||
|
Reference in New Issue
Block a user