Browse Source

Merge branch 'master' of git.bubblev.org:bubblev/bubble into feature/flex_routing

pull/51/head
Jonathan Cobb 4 years ago
parent
commit
989ebe2815
3 changed files with 20 additions and 6 deletions
  1. +18
    -4
      bubble-server/src/main/java/bubble/service/account/StandardSyncAccountService.java
  2. +1
    -1
      bubble-server/src/main/resources/messages
  3. +1
    -1
      bubble-web

+ 18
- 4
bubble-server/src/main/java/bubble/service/account/StandardSyncAccountService.java View File

@@ -46,18 +46,21 @@ public class StandardSyncAccountService implements SyncAccountService {
log.warn("sync: thisNetwork was null, sync_account is impossible");
return;
}
if (!account.admin()) {
log.info("sync: not syncing non-admin account");
return;
}

if (!account.sync()) {
log.info("sync: account sync disabled for account: "+account.getName());
return;
}

final AnsibleInstallType installType = thisNetwork.getInstallType();
if (installType == AnsibleInstallType.sage) {
// changing account on sage, notify all bubbles launched by user that have syncAccount == true

// sync account: sage -> node(s)
// Note that a non-admin person can change only his own account on sage node, while admin can change any
// account. In both cases, the change should be synced through the nodes, so even for non-admin account, the
// sync should be done here.

for (BubbleNetwork network : networkDAO.findByAccount(account.getUuid())) {
if (network.getState() != BubbleNetworkState.running) continue;
if (!network.syncAccount()) continue;
@@ -72,10 +75,21 @@ public class StandardSyncAccountService implements SyncAccountService {
}

} else if (installType == AnsibleInstallType.node) {
// sync account: node -> sage
// On sage there's just a single account related to this node - the node's network owner's account. So only
// that account should be synced in this case. It doesn't matter if somebody already changed this account
// to be non-admin (TODO strange situation and maybe it should be tested if it is forbidden already)

if (account.getUuid().equals(thisNetwork.getAccount())) {
log.info("sync: not syncing non-owner account from node to sage");
return;
}

if (!thisNetwork.syncAccount()) {
log.info("sync: disabled for node, not sending sync_account notification");
return;
}

// changing account on node, notify sage, which will then notify all bubbles launched by user that have
// syncAccount == true
log.info("sync: sending sync_account notification from node to sage: "+configuration.getSageNode());


+ 1
- 1
bubble-server/src/main/resources/messages

@@ -1 +1 @@
Subproject commit b84f708deb8b80b3850af575a4341999d6dbb601
Subproject commit 4f8345542b29228db0dba3e845f0662ab9cf6693

+ 1
- 1
bubble-web

@@ -1 +1 @@
Subproject commit 2d0df5ecd846bc81f72d37ec385ed8b46ae17fd9
Subproject commit 230cec24414134fcc5dd39224dec5826506f19de

Loading…
Cancel
Save