/*
* Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.groupbasedpolicy.neutron.mapper.test;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.DirectionBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.EthertypeBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.ProtocolBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.secgroups.rev150712.SecurityRuleAttributes;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.secgroups.rev150712.security.groups.attributes.security.groups.SecurityGroup;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.secgroups.rev150712.security.groups.attributes.security.groups.SecurityGroupBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.secgroups.rev150712.security.rules.attributes.security.rules.SecurityRule;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.secgroups.rev150712.security.rules.attributes.security.rules.SecurityRuleBuilder;
import com.google.common.base.Strings;
public final class NeutronEntityFactory {
private NeutronEntityFactory() {
throw new UnsupportedOperationException("Cannot create an instance");
}
public static SecurityGroup securityGroup(String id, String tenantId) {
return new SecurityGroupBuilder().setUuid(new Uuid(id)).setTenantId(new Uuid(tenantId)).build();
}
public static SecurityGroup securityGroupWithName(String id, String tenantId, String name) {
return new SecurityGroupBuilder().setUuid(new Uuid(id)).setTenantId(new Uuid(tenantId)).setName(name).build();
}
public static SecurityRule securityRuleWithoutGroupIds(String id, String tenant, Class<? extends EthertypeBase> etherType,
Class<? extends DirectionBase> direction, Class<? extends ProtocolBase> protocol, int portMin, int portMax) {
SecurityRuleAttributes.Protocol proto = new SecurityRuleAttributes.Protocol(protocol);
SecurityRuleBuilder secRule = new SecurityRuleBuilder();
secRule.setUuid(new Uuid(id));
secRule.setTenantId(new Uuid(tenant));
secRule.setEthertype(etherType);
secRule.setDirection(direction);
secRule.setProtocol(proto);
secRule.setPortRangeMin(portMin);
secRule.setPortRangeMax(portMax);
return secRule.build();
}
public static SecurityRule securityRuleWithEtherType(String id, String tenant,
Class<? extends EthertypeBase> etherType, Class<? extends DirectionBase> direction, String ownerGroupId,
String remoteGroupId) {
SecurityRuleBuilder securityRuleBuilder = new SecurityRuleBuilder().setUuid(new Uuid(id))
.setTenantId(new Uuid(tenant))
.setEthertype(etherType)
.setDirection(direction)
.setSecurityGroupId(new Uuid(ownerGroupId));
if (!Strings.isNullOrEmpty(remoteGroupId)) {
securityRuleBuilder.setRemoteGroupId(new Uuid(remoteGroupId));
}
return securityRuleBuilder.build();
}
}