use of org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network in project netvirt by opendaylight.
the class ConfigurationClassifierImpl method getEntriesForAce.
private Set<ClassifierRenderableEntry> getEntriesForAce(Ace ace) {
String ruleName = ace.getRuleName();
LOG.debug("Generating classifier entries for Ace: {}", ruleName);
LOG.trace("Ace details: {}", ace);
Optional<NetvirtsfcAclActions> sfcActions = Optional.ofNullable(ace.getActions()).map(actions -> actions.getAugmentation(RedirectToSfc.class));
String rspName = sfcActions.map(NetvirtsfcAclActions::getRspName).map(Strings::emptyToNull).orElse(null);
String sfpName = sfcActions.map(NetvirtsfcAclActions::getSfpName).map(Strings::emptyToNull).orElse(null);
if (rspName == null && sfpName == null) {
LOG.debug("Ace {} ignored: no valid SFC redirect action", ruleName);
return Collections.emptySet();
}
if (rspName != null && sfpName != null) {
LOG.warn("Ace {} ignored: both SFP and a RSP as redirect actions not supported", ruleName);
return Collections.emptySet();
}
Matches matches = ace.getMatches();
if (matches == null) {
LOG.warn("Ace {} ignored: no matches", ruleName);
return Collections.emptySet();
}
NeutronNetwork network = matches.getAugmentation(NeutronNetwork.class);
if (sfpName != null && network != null) {
LOG.warn("Ace {} ignored: SFP redirect action with neutron network match not supported", ruleName);
return Collections.emptySet();
}
String sourcePort = Optional.ofNullable(matches.getAugmentation(NeutronPorts.class)).map(NeutronPorts::getSourcePortUuid).map(Strings::emptyToNull).orElse(null);
String destinationPort = Optional.ofNullable(matches.getAugmentation(NeutronPorts.class)).map(NeutronPorts::getDestinationPortUuid).map(Strings::emptyToNull).orElse(null);
if (rspName != null) {
return getEntriesForRspRedirect(ruleName, sourcePort, destinationPort, network, rspName, matches);
}
return getEntriesForSfpRedirect(ruleName, sourcePort, destinationPort, sfpName, matches);
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network in project netvirt by opendaylight.
the class ConfigureL3VpnCommand method createL3VpnCLI.
private void createL3VpnCLI() throws InterruptedException, ExecutionException {
if (vid == null) {
session.getConsole().println("Please supply a valid VPN ID");
session.getConsole().println(getHelp("create"));
return;
}
if (rd == null) {
session.getConsole().println("Please supply a valid RD");
session.getConsole().println(getHelp("create"));
return;
}
if (irt == null) {
session.getConsole().println("Please supply a valid list of import RTs separated by {,}");
session.getConsole().println(getHelp("create"));
return;
}
if (ert == null) {
session.getConsole().println("Please supply a valid list of export RTs separated by {,}");
session.getConsole().println(getHelp("create"));
return;
}
Uuid vuuid = new Uuid(vid);
RpcResult<CreateL3VPNOutput> createL3VpnRpcResult = null;
{
ArrayList<String> rdList = new ArrayList<>(Arrays.asList(rd.split(",")));
ArrayList<String> irtList = new ArrayList<>(Arrays.asList(irt.split(",")));
ArrayList<String> ertList = new ArrayList<>(Arrays.asList(ert.split(",")));
Uuid tuuid = null;
if (tid != null) {
tuuid = new Uuid(tid);
}
List<L3vpn> l3vpns = new ArrayList<>();
L3vpn l3vpn = new L3vpnBuilder().setId(vuuid).setName(name).setRouteDistinguisher(rdList).setImportRT(irtList).setExportRT(ertList).setTenantId(tuuid).build();
l3vpns.add(l3vpn);
Future<RpcResult<CreateL3VPNOutput>> result = neutronvpnService.createL3VPN(new CreateL3VPNInputBuilder().setL3vpn(l3vpns).build());
createL3VpnRpcResult = result.get();
if (createL3VpnRpcResult.isSuccessful()) {
session.getConsole().println("L3VPN created successfully");
LOG.trace("createl3vpn: {}", result);
} else {
session.getConsole().println("Error populating createL3VPN : " + result.get().getErrors());
session.getConsole().println(getHelp("create"));
}
}
/**
* passing a subnetId list alongwith create-l3-vpn CLI implicitly indicates that
* association of network(s) to VPN is being intended.
*/
if (createL3VpnRpcResult.isSuccessful()) {
{
List<Uuid> networkIdList = new ArrayList<>();
if (sid != null) {
for (String sidStr : sid.split(",")) {
Uuid subnetId = new Uuid(sidStr);
Uuid networkId = neutronVpnManager.getNetworkForSubnet(subnetId);
if (networkId != null) {
networkIdList.add(networkId);
} else {
session.getConsole().println("Could not find network for subnet " + subnetId.getValue() + ". Not proceeding with adding subnet to VPN");
}
}
if (!networkIdList.isEmpty()) {
Future<RpcResult<AssociateNetworksOutput>> result = neutronvpnService.associateNetworks(new AssociateNetworksInputBuilder().setVpnId(vuuid).setNetworkId(networkIdList).build());
RpcResult<AssociateNetworksOutput> associateNetworksRpcResult = result.get();
if (associateNetworksRpcResult.isSuccessful()) {
session.getConsole().println("Subnet(s) added to VPN successfully");
LOG.trace("associateNetworks: {}", result);
} else {
session.getConsole().println("Error while adding subnet(s) to VPN: " + result.get().getErrors());
session.getConsole().println(getHelp("create"));
}
}
}
}
}
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network in project netvirt by opendaylight.
the class ConfigureL3VpnCommand method deleteL3VpnCLI.
private void deleteL3VpnCLI() throws InterruptedException, ExecutionException {
if (vid == null) {
session.getConsole().println("Please supply a valid VPN ID");
session.getConsole().println(getHelp("delete"));
return;
}
Uuid vpnId = new Uuid(vid);
// disassociation of network(s) (removal of subnet(s)) from VPN to be followed by deletion of VPN
RpcResult<DissociateNetworksOutput> dissociateNetworksRpcResult = null;
List<Uuid> networkIdList = null;
networkIdList = neutronVpnManager.getNetworksForVpn(vpnId);
if (networkIdList != null && !networkIdList.isEmpty()) {
Future<RpcResult<DissociateNetworksOutput>> result = neutronvpnService.dissociateNetworks(new DissociateNetworksInputBuilder().setVpnId(vpnId).setNetworkId(networkIdList).build());
dissociateNetworksRpcResult = result.get();
if (dissociateNetworksRpcResult.isSuccessful()) {
session.getConsole().println("Subnet(s) removed from VPN successfully");
LOG.trace("dissociateNetworks: {}", result);
} else {
session.getConsole().println("Error while removing subnet(s) from VPN: " + result.get().getErrors());
session.getConsole().println(getHelp("delete"));
}
}
if (networkIdList == null || networkIdList.isEmpty() || dissociateNetworksRpcResult.isSuccessful()) {
List<Uuid> vpnIdList = new ArrayList<>();
vpnIdList.add(vpnId);
Future<RpcResult<DeleteL3VPNOutput>> result = neutronvpnService.deleteL3VPN(new DeleteL3VPNInputBuilder().setId(vpnIdList).build());
RpcResult<DeleteL3VPNOutput> rpcResult = result.get();
if (rpcResult.isSuccessful()) {
session.getConsole().println("L3VPN deleted successfully");
LOG.trace("deletel3vpn: {}", result);
} else {
session.getConsole().println("Error populating deleteL3VPN : " + result.get().getErrors());
session.getConsole().println(getHelp("delete"));
}
} else {
session.getConsole().println("Not proceeding with deletion of L3VPN since error(s) encountered " + "in removing subnet(s) from VPN");
}
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network in project bgpcep by opendaylight.
the class NetworkTopologyConfigFileProcessorTest method configFileTest.
@Test
public void configFileTest() throws ReadFailedException, InterruptedException {
final KeyedInstanceIdentifier<Topology, TopologyKey> topologyIIdKeyed = InstanceIdentifier.create(NetworkTopology.class).child(Topology.class, new TopologyKey(new TopologyId("topology-test")));
checkNotPresentConfiguration(getDataBroker(), topologyIIdKeyed);
assertNotNull(ClassLoader.getSystemClassLoader().getResource("initial/network-topology-config.xml"));
final NetworkTopologyConfigFileProcessor processor = new NetworkTopologyConfigFileProcessor(this.configLoader, getDataBroker());
processor.init();
checkPresentConfiguration(getDataBroker(), topologyIIdKeyed);
assertEquals(SchemaPath.create(true, NetworkTopology.QNAME), processor.getSchemaPath());
processor.close();
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network in project lispflowmapping by opendaylight.
the class ListenerTest method toStringTest.
/**
* Tests {@link NetworkListener#toString}, {@link PortListener#toString}, {@link SubnetListener#toString} method.
*/
@Test
public void toStringTest() {
final DataProcessor<Network> networkDataProcessor = Mockito.mock(DataProcessor.class);
final DataBroker dataBroker = Mockito.mock(DataBroker.class);
final NetworkListener networkListener = new NetworkListener(networkDataProcessor, dataBroker);
final DataProcessor<Port> portDataProcessor = Mockito.mock(DataProcessor.class);
final PortListener portListener = new PortListener(portDataProcessor, dataBroker);
final DataProcessor<Subnet> subnetDataProcessor = Mockito.mock(DataProcessor.class);
final SubnetListener subnetListener = new SubnetListener(subnetDataProcessor, dataBroker);
assertEquals("NetworkListener", networkListener.toString());
assertEquals("PortListener", portListener.toString());
assertEquals("SubnetListener", subnetListener.toString());
}
Aggregations