diff --git a/building_manager.py b/building_manager.py
index e192d48575ffb22a89a4bec00507d319827493e1..a855c089e2a0dab1a6d8f4b52abd66599f878210 100755
--- a/building_manager.py
+++ b/building_manager.py
@@ -554,10 +554,14 @@ def generate_swarm(machines):
             print(f'Create initial swarm with leader {leader}')
             if init_swarm_machine(leader):
                 print('Swarm init successful\n')
+                assign_label_to_node(leader, 'building',
+                                     leader, manager=leader)
         else:
             print(f'Machine {machine} joins swarm of leader {leader}')
             if (join_swarm_machine(machine, leader)):
                 print('Joining swarm successful\n')
+                assign_label_to_node(machine, 'building',
+                                     machine, manager=leader)
 
 
 # }}}
@@ -566,19 +570,25 @@ def generate_swarm(machines):
 # ******************************
 # Docker client commands {{{
 # ******************************
-def assign_label_to_node(nodeid, label, value):
+def assign_label_to_node(nodeid, label, value, manager=None):
     """Assigns a label to a node (e.g. building)
 
     :nodeid: Id or name of the node
     :label: Label you want to add
     :value: The value to assign to the label
+    :manager: Dpcker machine to use for command, otherwise local
     """
-    client = docker.from_env()
+    if manager:
+        building_env = get_machine_env(manager)
+        client = docker.from_env(environment=building_env)
+    else:
+        client = docker.from_env()
 
     node = client.nodes.get(nodeid)
     spec = node.attrs['Spec']
     spec['Labels'][label] = value
     node.update(spec)
+    logging.info(f'Assign label {label} with value {value} to {nodeid}')
 
     client.close()