serverPoolMemberTrackerPolicy = policies().add(PolicySpec.create(ServerPoolMemberTrackerPolicy.class) .displayName("Controller targets tracker") .configure("group", serverPool)
/** * @deprecated since 0.9.0; see {@link BasicPolicySupport#removePolicy(Policy)}; e.g. {@code policies().removePolicy(policy)} */ @Override @Deprecated public boolean removePolicy(Policy policy) { return policies().remove(policy); }
@Override public Iterator<Policy> iterator() { return asList().iterator(); }
serverPoolMemberTrackerPolicy = policies().add(PolicySpec.create(MemberTrackingPolicy.class) .displayName("Controller targets tracker") .configure("group", serverPool)); serverPoolMemberTrackerPolicy = policies().add(PolicySpec.create(ServerPoolMemberTrackerPolicy.class) .displayName("Controller targets tracker") .configure("group", serverPool)
urlMappingsMemberTrackerPolicy = policies().add(PolicySpec.create(UrlMappingsMemberTrackerPolicy.class) .configure("group", urlMappings));
/** * Start the tracker. * <p> * Subclasses should take care to synchronize on {@link #trackerLock}. */ protected void startTracker() { synchronized (trackerLock) { if (targetEntityProvider == null || !getManagementSupport().isDeployed()) { log.debug("Tracker for " + this + " not yet active: " + targetEntityProvider + " / " + getManagementContext()); return; } endTracker(); ImmutableSet.Builder<Sensor<?>> sensorsToTrack = ImmutableSet.<Sensor<?>>builder().add( HOSTNAME, ADDRESS, Attributes.MAIN_URI, WebAppService.ROOT_URL); // Don't subscribe to lifecycle events if entities will be included regardless of their status. if (Boolean.TRUE.equals(config().get(FILTER_FOR_RUNNING))) { sensorsToTrack.add(Attributes.SERVICE_STATE_ACTUAL); } log.debug("Initializing tracker for " + this + ", following " + targetEntityProvider); tracker = policies().add(PolicySpec.create(MemberTrackingPolicy.class) .displayName("GeoDNS targets tracker") .configure(AbstractMembershipTrackingPolicy.SENSORS_TO_TRACK, sensorsToTrack.build()) .configure(AbstractMembershipTrackingPolicy.GROUP, targetEntityProvider)); refreshGroupMembership(); } }
@Override public void add(Policy policy) { Policy old = findApparentlyEqualAndWarnIfNotSameUniqueTag(policiesInternal, policy); if (old!=null) { LOG.debug("Removing "+old+" when adding "+policy+" to "+AbstractEntity.this); remove(old); } CatalogUtils.setCatalogItemIdOnAddition(AbstractEntity.this, policy); policiesInternal.add((AbstractPolicy)policy); ((AbstractPolicy)policy).setEntity(AbstractEntity.this); ConfigConstraints.assertValid(policy); getManagementSupport().getEntityChangeListener().onPolicyAdded(policy); sensors().emit(AbstractEntity.POLICY_ADDED, new PolicyDescriptor(policy)); }
protected void addHostTrackerPolicy() { Group hosts = getDockerHostCluster(); if (hosts != null) { MemberTrackingPolicy hostTrackerPolicy = policies().add(PolicySpec.create(MemberTrackingPolicy.class) .displayName("Docker host tracker") .configure("group", hosts)); LOG.info("Added policy {} to {}, during start", hostTrackerPolicy, this); } }
/** * End the tracker. * <p> * Subclasses should take care to synchronize on {@link #trackerLock}. */ protected void endTracker() { synchronized (trackerLock) { if (tracker == null || targetEntityProvider == null) return; policies().remove(tracker); tracker = null; } }
/** * @deprecated since 0.9.0; see {@link BasicPolicySupport#addPolicy(Policy)}; e.g. {@code policies().addPolicy(policy)} */ @Override @Deprecated public void addPolicy(Policy policy) { policies().add(policy); }
@Override public <T extends Policy> T add(PolicySpec<T> spec) { T policy = getManagementContext().getEntityManager().createPolicy(spec); add(policy); return policy; }
protected void connectSensors() { policies().add(PolicySpec.create(MemberTrackingPolicy.class) .displayName("EtcdCluster node tracker") .configure("sensorsToTrack", ImmutableSet.of(Attributes.HOSTNAME, EtcdNode.ETCD_NODE_INSTALLED)) .configure("notifyOnDuplicates", Boolean.TRUE) .configure("group", this)); }
protected void removeUrlMappingsMemberTrackerPolicy() { if (urlMappingsMemberTrackerPolicy != null) { policies().remove(urlMappingsMemberTrackerPolicy); urlMappingsMemberTrackerPolicy = null; } Group urlMappings = getConfig(URL_MAPPINGS); if (urlMappings!=null && targetAddressesHandler!=null) { subscriptions().unsubscribe(urlMappings, targetAddressesHandler); targetAddressesHandler = null; } }
/** * @deprecated since 0.9.0; see {@link BasicPolicySupport#addPolicy(PolicySpec)}; e.g. {@code policies().addPolicy(spec)} */ @Override @Deprecated public <T extends Policy> T addPolicy(PolicySpec<T> spec) { return policies().add(spec); }
/** * @deprecated since 0.9.0; see {@link BasicPolicySupport#iterator()}; e.g. {@code policies().iterator()} */ @Override @Deprecated public Collection<Policy> getPolicies() { return policies().asList(); }
protected void removeServerPoolMemberTrackingPolicy() { if (serverPoolMemberTrackerPolicy != null) { policies().remove(serverPoolMemberTrackerPolicy); } }
private void addMembershipTrackerPolicy() { membershipTracker = policies().add(PolicySpec.create(MemberTrackingPolicy.class) .displayName(getDisplayName() + " membership tracker") .configure("group", this)); }
@Override public boolean removeAllPolicies() { boolean changed = false; for (Policy policy : policiesInternal) { remove(policy); changed = true; } return changed; } }
protected void removeServerPoolMemberTrackingPolicy() { if (serverPoolMemberTrackerPolicy != null) { policies().remove(serverPoolMemberTrackerPolicy); } }
/** * @deprecated since 0.9.0; see {@link BasicPolicySupport#removeAllPolicies()}; e.g. {@code policies().removeAllPolicies()} */ @Override @Deprecated public boolean removeAllPolicies() { return policies().removeAllPolicies(); }