@Override public void removeHost(DockerHost host) { SdnAgent agent = host.sensors().get(SdnAgent.SDN_AGENT); if (agent == null) { LOG.warn("{} cannot find calico service: {}", this, host); return; } agent.stop(); getAgents().removeMember(agent); Entities.unmanage(agent); if (LOG.isDebugEnabled()) LOG.debug("{} removed calico plugin {}", this, agent); }
@Override public void removeHost(DockerHost host) { SdnAgent agent = host.sensors().get(SdnAgent.SDN_AGENT); if (agent == null) { LOG.warn("{} cannot find overlay service: {}", this, host); return; } agent.stop(); getAgents().removeMember(agent); Entities.unmanage(agent); if (LOG.isDebugEnabled()) LOG.debug("{} removed overlay plugin {}", this, agent); }
@Override public void removeHost(DockerHost host) { SdnAgent agent = host.sensors().get(SdnAgent.SDN_AGENT); if (agent == null) { LOG.warn("{} cannot find Weave service: {}", this, host); return; } agent.stop(); getAgents().removeMember(agent); Entities.unmanage(agent); LOG.debug("{} removed Weave service {}", this, agent); }
@Override public void release(DockerContainerLocation machine) { lock.readLock().lock(); try { LOG.info("Releasing {}", machine); Group cluster = dockerHost.getDockerContainerCluster(); DockerContainer container = machine.getOwner(); if (cluster.removeMember(container)) { LOG.info("Docker Host {}: member {} released", dockerHost, machine); } else { LOG.warn("Docker Host {}: member {} not found for release", dockerHost, machine); } // Now close and unmange the container try { container.stop(); machine.close(); } catch (Exception e) { LOG.warn("Error stopping container: " + container, e); Exceptions.propagateIfFatal(e); } finally { Entities.unmanage(container); } } finally { lock.readLock().unlock(); } }
@Override public void deallocateNetwork(VirtualNetwork network) { String networkId = network.sensors().get(VirtualNetwork.NETWORK_ID); sensors().get(SDN_NETWORKS).removeMember(network); SdnAgent agent = (SdnAgent) (getAgents().getMembers().iterator().next()); agent.deallocateNetwork(network); LOG.info("Deallocated network {} at {}", networkId, agent); }
@Override public void release(MarathonTaskLocation location) { lock.readLock().lock(); try { LOG.info("Releasing {}", location); Group cluster = framework.sensors().get(MesosFramework.FRAMEWORK_TASKS); MarathonTask task = location.getOwner(); if (cluster.removeMember(task)) { LOG.info("Marathon framework {}: member {} released", framework, location); } else { LOG.warn("Marathon framework {}: member {} not found for release", framework, location); } // Now close and unmange the container try { location.close(); task.stop(); } catch (Exception e) { LOG.warn("Error stopping task: " + task, e); Exceptions.propagateIfFatal(e); } finally { Entities.unmanage(task); } } finally { lock.readLock().unlock(); } }
@Override public void deallocateNetwork(VirtualNetwork network) { sensors().get(SDN_NETWORKS).removeMember(network); network.stop(); Entities.unmanage(network); // TODO actually deprovision the network if possible? }
@Override public void deleteUnmanagedTasks() { for (Entity member : getTaskCluster().getMembers()) { if (member instanceof MesosTask && Boolean.FALSE.equals(member.config().get(MesosTask.MANAGED))) { // TODO Presumably `unmanage(member)` would be enough, but leaving like this // because that is what Andrew previously used! getTaskCluster().removeMember(member); getTaskCluster().removeChild(member); Entities.unmanage(member); } } }
continue; } else if (Lifecycle.STOPPING.equals(state) || Lifecycle.STOPPED.equals(state)) { getTaskCluster().removeMember(member); getTaskCluster().removeChild(member); Entities.unmanage(member);
e.clearParent(); for (Group group : e.groups()) { if (!Entities.isNoLongerManaged(group)) group.removeMember(e);
protected void updateMembership(Entity e) { boolean isMember = checkMembership(e); if (isMember) getGroup().addMember(e); else getGroup().removeMember(e); }
continue; } else if (Lifecycle.STOPPING.equals(state) || Lifecycle.STOPPED.equals(state)) { getDockerContainerCluster().removeMember(member); getDockerContainerCluster().removeChild(member); Entities.unmanage(member);
continue; } else if (Lifecycle.STOPPING.equals(state) || Lifecycle.STOPPED.equals(state)) { group.removeMember(found); group.removeChild(found); Entities.unmanage(found);