brooklyn.networking.sdn.SdnAttributes Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of brooklyn-clocker-docker Show documentation
Show all versions of brooklyn-clocker-docker Show documentation
Clocker Brooklyn entities and locations for Docker integration.
/*
* Copyright 2014 by Cloudsoft Corporation Limited
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package brooklyn.networking.sdn;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import javax.annotation.Nullable;
import brooklyn.config.ConfigKey;
import brooklyn.entity.Entity;
import brooklyn.entity.basic.ConfigKeys;
import brooklyn.event.AttributeSensor;
import brooklyn.event.basic.Sensors;
import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
import com.google.common.reflect.TypeToken;
/**
* SDN attributes and configuration keys.
*/
public class SdnAttributes {
public static final ConfigKey> NETWORK_LIST = ConfigKeys.newConfigKey(
new TypeToken>() { }, "network.list", "Collection of extra networks to create for an entity", Collections.emptyList());
public static final ConfigKey SDN_ENABLE = ConfigKeys.newBooleanConfigKey("sdn.enable", "Enable Sofware-Defined Networking", Boolean.FALSE);
public static final ConfigKey SDN_DEBUG = ConfigKeys.newBooleanConfigKey("sdn.debug", "Enable SDN debugging utility installation", Boolean.FALSE);
public static final AttributeSensor> ATTACHED_NETWORKS = Sensors.newSensor(new TypeToken>() { },
"sdn.networks.attached", "The list of networks that an entity is attached to");
public static final Predicate attachedToNetwork(String networkId) {
Preconditions.checkNotNull(networkId, "networkId");
return new AttachedToNetworkPredicate(networkId);
}
public static class AttachedToNetworkPredicate implements Predicate {
private final String id;
public AttachedToNetworkPredicate(String id) {
this.id = Preconditions.checkNotNull(id, "id");
}
@Override
public boolean apply(@Nullable Entity input) {
List networks = input.getAttribute(SdnAttributes.ATTACHED_NETWORKS);
if (networks != null) {
return networks.contains(id);
} else {
return false;
}
}
};
}