Refactor: reduce to number of column for better readability at SONA

Change-Id: Ic8dd78cfc219272f98f37651f244c3564755960c
This commit is contained in:
Jian Li 2018-12-10 11:41:03 +09:00
parent 6f5b646aa7
commit 5ecfd1a59c
60 changed files with 518 additions and 288 deletions

View File

@ -39,14 +39,17 @@ public final class Constants {
public static final String PORT_NAME_PREFIX_VM = "tap";
public static final String PORT_NAME_VHOST_USER_PREFIX_VM = "vhu";
public static final String OPENSTACK_NETWORKING_APP_ID = "org.onosproject.openstacknetworking";
public static final String OPENSTACK_NETWORKING_APP_ID =
"org.onosproject.openstacknetworking";
public static final String ARP_BROADCAST_MODE = "broadcast";
public static final String ARP_PROXY_MODE = "proxy";
public static final String DEFAULT_GATEWAY_MAC_STR = "fe:00:00:00:00:02";
public static final MacAddress DEFAULT_GATEWAY_MAC = MacAddress.valueOf(DEFAULT_GATEWAY_MAC_STR);
public static final MacAddress DEFAULT_EXTERNAL_ROUTER_MAC = MacAddress.valueOf("fe:00:00:00:00:01");
public static final MacAddress DEFAULT_GATEWAY_MAC =
MacAddress.valueOf(DEFAULT_GATEWAY_MAC_STR);
public static final MacAddress DEFAULT_EXTERNAL_ROUTER_MAC =
MacAddress.valueOf("fe:00:00:00:00:01");
public static final String PCI_VENDOR_INFO = "pci_vendor_info";
public static final String DIRECT = "direct";

View File

@ -104,7 +104,8 @@ public interface OpenstackNetworkAdminService extends OpenstackNetworkService {
* @param router router which owns externalGateway
* @param vlanId vlan id of external network
*/
void deriveExternalPeerRouterMac(ExternalGateway externalGateway, Router router, VlanId vlanId);
void deriveExternalPeerRouterMac(ExternalGateway externalGateway,
Router router, VlanId vlanId);
/**
* Deletes external router with supplied external gateway.

View File

@ -26,7 +26,8 @@ import static com.google.common.base.MoreObjects.toStringHelper;
/**
* Describes OpenStack network service event.
*/
public class OpenstackNetworkEvent extends AbstractEvent<OpenstackNetworkEvent.Type, Network> {
public class OpenstackNetworkEvent
extends AbstractEvent<OpenstackNetworkEvent.Type, Network> {
private final Port port;
private final Subnet subnet;

View File

@ -20,5 +20,6 @@ import org.onosproject.store.StoreDelegate;
/**
* OpenStack network store delegate abstraction.
*/
public interface OpenstackNetworkStoreDelegate extends StoreDelegate<OpenstackNetworkEvent> {
public interface OpenstackNetworkStoreDelegate
extends StoreDelegate<OpenstackNetworkEvent> {
}

View File

@ -27,7 +27,8 @@ import static com.google.common.base.MoreObjects.toStringHelper;
/**
* Describes OpenStack router service events.
*/
public class OpenstackRouterEvent extends AbstractEvent<OpenstackRouterEvent.Type, Router> {
public class OpenstackRouterEvent
extends AbstractEvent<OpenstackRouterEvent.Type, Router> {
private final ExternalGateway exGateway;
private final RouterInterface routerIface;

View File

@ -21,7 +21,8 @@ import org.openstack4j.model.network.SecurityGroupRule;
/**
* Service for administering the inventory of Openstack security group.
*/
public interface OpenstackSecurityGroupAdminService extends OpenstackSecurityGroupService {
public interface OpenstackSecurityGroupAdminService
extends OpenstackSecurityGroupService {
/**
* Creates a security group.
*

View File

@ -55,7 +55,8 @@ public class OpenstackSecurityGroupEvent
* @param type SecurityGroupEvent type
* @param sg SecurityGroup object
*/
public OpenstackSecurityGroupEvent(OpenstackSecurityGroupEvent.Type type, SecurityGroup sg) {
public OpenstackSecurityGroupEvent(OpenstackSecurityGroupEvent.Type type,
SecurityGroup sg) {
super(type, sg);
}
@ -66,7 +67,8 @@ public class OpenstackSecurityGroupEvent
* @param sg security group
* @param sgRule SecurityGroup object
*/
public OpenstackSecurityGroupEvent(OpenstackSecurityGroupEvent.Type type, SecurityGroup sg,
public OpenstackSecurityGroupEvent(OpenstackSecurityGroupEvent.Type type,
SecurityGroup sg,
SecurityGroupRule sgRule) {
super(type, sg);
this.sgRule = sgRule;

View File

@ -20,5 +20,6 @@ import org.onosproject.store.StoreDelegate;
/**
* OpenStack security group store delegate abstraction.
*/
public interface OpenstackSecurityGroupStoreDelegate extends StoreDelegate<OpenstackSecurityGroupEvent> {
public interface OpenstackSecurityGroupStoreDelegate
extends StoreDelegate<OpenstackSecurityGroupEvent> {
}

View File

@ -20,5 +20,6 @@ import org.onosproject.openstacknetworking.api.OpenstackNetworkEvent.Type;
/**
* Handles port precommit request.
*/
public interface PreCommitPortService extends PreCommitService<String, Type, InstancePortAdminService> {
public interface PreCommitPortService
extends PreCommitService<String, Type, InstancePortAdminService> {
}

View File

@ -26,6 +26,8 @@ import org.onosproject.openstacknetworking.api.OpenstackNetworkAdminService;
import java.util.List;
import static org.onosproject.cli.AbstractShellCommand.get;
/**
* Deletes external peer router.
*/
@ -39,11 +41,12 @@ public class DeleteExternalPeerRouterCommand extends AbstractShellCommand {
private String ipAddress = null;
private static final String FORMAT = "%-20s%-20s%-20s";
private static final String NO_ELEMENT = "There's no external peer router information with given ip address";
private static final String NO_ELEMENT =
"There's no external peer router information with given ip address";
@Override
protected void doExecute() {
OpenstackNetworkAdminService service = AbstractShellCommand.get(OpenstackNetworkAdminService.class);
OpenstackNetworkAdminService service = get(OpenstackNetworkAdminService.class);
if (service.externalPeerRouters().stream()
.noneMatch(router -> router.ipAddress().toString().equals(ipAddress))) {

View File

@ -20,7 +20,6 @@ import org.apache.karaf.shell.api.console.CommandLine;
import org.apache.karaf.shell.api.console.Completer;
import org.apache.karaf.shell.api.console.Session;
import org.apache.karaf.shell.support.completers.StringsCompleter;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.openstacknetworking.api.OpenstackNetworkService;
import org.openstack4j.model.network.Port;
@ -30,6 +29,7 @@ import java.util.Set;
import java.util.SortedSet;
import java.util.stream.Collectors;
import static org.onosproject.cli.AbstractShellCommand.get;
import static org.onosproject.openstacknetworking.api.Constants.DIRECT;
/**
@ -41,7 +41,7 @@ public class DirectPortListCompleter implements Completer {
@Override
public int complete(Session session, CommandLine commandLine, List<String> candidates) {
StringsCompleter delegate = new StringsCompleter();
OpenstackNetworkService osNetService = AbstractShellCommand.get(OpenstackNetworkService.class);
OpenstackNetworkService osNetService = get(OpenstackNetworkService.class);
Set<String> set = osNetService.ports().stream()
.filter(port -> port.getvNicType().equals(DIRECT))
.map(Port::getId)

View File

@ -26,6 +26,7 @@ import org.onosproject.openstacknetworking.api.OpenstackNetworkService;
import java.util.List;
import static org.onosproject.cli.AbstractShellCommand.get;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.prettyJson;
/**
@ -40,8 +41,9 @@ public class ExternalPeerRouterListCommand extends AbstractShellCommand {
@Override
protected void doExecute() {
OpenstackNetworkService service = AbstractShellCommand.get(OpenstackNetworkService.class);
List<ExternalPeerRouter> routers = Lists.newArrayList(service.externalPeerRouters());
OpenstackNetworkService service = get(OpenstackNetworkService.class);
List<ExternalPeerRouter> routers =
Lists.newArrayList(service.externalPeerRouters());
if (outputJson()) {
print("%s", json(this, routers));

View File

@ -21,7 +21,6 @@ import org.apache.karaf.shell.api.console.Completer;
import org.apache.karaf.shell.api.console.Session;
import org.apache.karaf.shell.support.completers.StringsCompleter;
import org.onlab.packet.IpAddress;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.openstacknetworking.api.ExternalPeerRouter;
import org.onosproject.openstacknetworking.api.OpenstackNetworkService;
@ -31,6 +30,8 @@ import java.util.Set;
import java.util.SortedSet;
import java.util.stream.Collectors;
import static org.onosproject.cli.AbstractShellCommand.get;
/**
* IP Address Completer.
*/
@ -40,7 +41,7 @@ public class IpAddressCompleter implements Completer {
@Override
public int complete(Session session, CommandLine commandLine, List<String> candidates) {
StringsCompleter delegate = new StringsCompleter();
OpenstackNetworkService osNetService = AbstractShellCommand.get(OpenstackNetworkService.class);
OpenstackNetworkService osNetService = get(OpenstackNetworkService.class);
Set<IpAddress> set = osNetService.externalPeerRouters().stream()
.map(ExternalPeerRouter::ipAddress)
.collect(Collectors.toSet());

View File

@ -21,7 +21,6 @@ import org.apache.karaf.shell.api.console.Completer;
import org.apache.karaf.shell.api.console.Session;
import org.apache.karaf.shell.support.completers.StringsCompleter;
import org.onlab.packet.MacAddress;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.openstacknetworking.api.ExternalPeerRouter;
import org.onosproject.openstacknetworking.api.OpenstackNetworkService;
@ -31,6 +30,8 @@ import java.util.Set;
import java.util.SortedSet;
import java.util.stream.Collectors;
import static org.onosproject.cli.AbstractShellCommand.get;
/**
* Mac Address Completer.
*/
@ -40,7 +41,7 @@ public class MacAddressCompleter implements Completer {
@Override
public int complete(Session session, CommandLine commandLine, List<String> candidates) {
StringsCompleter delegate = new StringsCompleter();
OpenstackNetworkService osNetService = AbstractShellCommand.get(OpenstackNetworkService.class);
OpenstackNetworkService osNetService = get(OpenstackNetworkService.class);
Set<MacAddress> set = osNetService.externalPeerRouters().stream()
.map(ExternalPeerRouter::macAddress)
.collect(Collectors.toSet());

View File

@ -35,6 +35,7 @@ import org.onosproject.openstacknetworking.api.OpenstackFlowRuleService;
import java.util.Optional;
import static org.onosproject.cli.AbstractShellCommand.get;
import static org.onosproject.openstacknetworking.api.Constants.DHCP_TABLE;
import static org.onosproject.openstacknetworking.api.Constants.OPENSTACK_NETWORKING_APP_ID;
import static org.onosproject.openstacknetworking.api.Constants.PRIORITY_FORCED_ACL_RULE;
@ -61,12 +62,12 @@ public class OpenstackAddAclCommand extends AbstractShellCommand {
@Override
protected void doExecute() {
OpenstackFlowRuleService flowRuleService = AbstractShellCommand.get(OpenstackFlowRuleService.class);
CoreService coreService = AbstractShellCommand.get(CoreService.class);
OpenstackFlowRuleService flowRuleService = get(OpenstackFlowRuleService.class);
CoreService coreService = get(CoreService.class);
ApplicationId appId = coreService.getAppId(OPENSTACK_NETWORKING_APP_ID);
InstancePortService instancePortService = AbstractShellCommand.get(InstancePortService.class);
InstancePortService instancePortService = get(InstancePortService.class);
IpAddress srcIpAddress;

View File

@ -66,9 +66,11 @@ public class OpenstackConfigArpModeCommand extends AbstractShellCommand {
// reinstall all rules only if the arpMode is changed to the configured one
while (true) {
String switchingValue =
getPropertyValue(service.getProperties(switchingComponent), ARP_MODE_NAME);
getPropertyValue(
service.getProperties(switchingComponent), ARP_MODE_NAME);
String routingValue =
getPropertyValue(service.getProperties(routingComponent), ARP_MODE_NAME);
getPropertyValue(
service.getProperties(routingComponent), ARP_MODE_NAME);
if (arpMode.equals(switchingValue) && arpMode.equals(routingValue)) {
break;

View File

@ -29,6 +29,7 @@ import org.openstack4j.model.network.Port;
import java.util.Optional;
import static org.onosproject.cli.AbstractShellCommand.get;
import static org.onosproject.openstacknetworking.api.Constants.UNSUPPORTED_VENDOR;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.getIntfNameFromPciAddress;
import static org.onosproject.openstacknode.api.OpenstackNode.NodeType.COMPUTE;
@ -48,9 +49,9 @@ public class OpenstackDirectPortAddCommand extends AbstractShellCommand {
@Override
protected void doExecute() {
OpenstackNetworkService osNetService = AbstractShellCommand.get(OpenstackNetworkService.class);
OpenstackNodeService osNodeService = AbstractShellCommand.get(OpenstackNodeService.class);
DeviceService deviceService = AbstractShellCommand.get(DeviceService.class);
OpenstackNetworkService osNetService = get(OpenstackNetworkService.class);
OpenstackNodeService osNodeService = get(OpenstackNodeService.class);
DeviceService deviceService = get(DeviceService.class);
Port port = osNetService.port(portId);
if (port == null) {

View File

@ -26,6 +26,7 @@ import org.openstack4j.model.network.Port;
import java.util.List;
import java.util.stream.Collectors;
import static org.onosproject.cli.AbstractShellCommand.get;
import static org.onosproject.openstacknetworking.api.Constants.DIRECT;
import static org.onosproject.openstacknetworking.api.Constants.PCISLOT;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.getIntfNameFromPciAddress;
@ -42,7 +43,7 @@ public class OpenstackDirectPortListCommand extends AbstractShellCommand {
@Override
protected void doExecute() {
OpenstackNetworkService service = AbstractShellCommand.get(OpenstackNetworkService.class);
OpenstackNetworkService service = get(OpenstackNetworkService.class);
List<Port> ports = service.ports().stream()
.filter(port -> port.getvNicType().equals(DIRECT))
@ -67,7 +68,8 @@ public class OpenstackDirectPortListCommand extends AbstractShellCommand {
osNet.getName(),
port.getMacAddress(),
fixedIps.isEmpty() ? "" : fixedIps,
port.getProfile().containsKey(PCISLOT) ? port.getProfile().get(PCISLOT).toString() : "",
port.getProfile().containsKey(PCISLOT) ?
port.getProfile().get(PCISLOT).toString() : "",
getIntfNameFromPciAddress(port));
}

View File

@ -29,6 +29,7 @@ import org.openstack4j.openstack.networking.domain.NeutronFloatingIP;
import java.util.Comparator;
import java.util.List;
import static org.onosproject.cli.AbstractShellCommand.get;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.modelEntityToJson;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.prettyJson;
@ -44,7 +45,7 @@ public class OpenstackFloatingIpListCommand extends AbstractShellCommand {
@Override
protected void doExecute() {
OpenstackRouterService service = AbstractShellCommand.get(OpenstackRouterService.class);
OpenstackRouterService service = get(OpenstackRouterService.class);
List<NetFloatingIP> floatingIps = Lists.newArrayList(service.floatingIps());
floatingIps.sort(Comparator.comparing(NetFloatingIP::getFloatingIpAddress));

View File

@ -28,6 +28,7 @@ import org.onosproject.openstacknode.api.OpenstackNodeAdminService;
import java.util.Optional;
import static org.onosproject.cli.AbstractShellCommand.get;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.sendTraceRequestToNode;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.traceRequestString;
@ -49,16 +50,19 @@ public class OpenstackFlowTraceCommand extends AbstractShellCommand {
@Completion(InstanceIpAddressCompleter.class)
private String dstIp = null;
private static final String NO_ELEMENT = "There's no instance port information with given ip address";
private static final String FLOW_TRACE_REQUEST_STRING_UPLINK = "Flow trace request string for uplink: ";
private static final String FLOW_TRACE_REQUEST_STRING_DOWNLINK = "Flow trace request string for downlink: ";
private static final String NO_ELEMENT =
"There's no instance port information with given ip address";
private static final String FLOW_TRACE_REQUEST_STRING_UPLINK =
"Flow trace request string for uplink: ";
private static final String FLOW_TRACE_REQUEST_STRING_DOWNLINK =
"Flow trace request string for downlink: ";
@Override
protected void doExecute() {
OpenstackNodeAdminService osNodeService = AbstractShellCommand.get(OpenstackNodeAdminService.class);
InstancePortAdminService instancePortService = AbstractShellCommand.get(InstancePortAdminService.class);
OpenstackNetworkAdminService osNetService = AbstractShellCommand.get(OpenstackNetworkAdminService.class);
OpenstackNodeAdminService osNodeService = get(OpenstackNodeAdminService.class);
InstancePortAdminService instancePortService = get(InstancePortAdminService.class);
OpenstackNetworkAdminService osNetService = get(OpenstackNetworkAdminService.class);
Optional<InstancePort> srcInstance = instancePortService.instancePorts().stream()
.filter(port -> port.ipAddress().toString().equals(srcIp)).findAny();
@ -71,8 +75,9 @@ public class OpenstackFlowTraceCommand extends AbstractShellCommand {
OpenstackNode srcNode = osNodeService.node(srcInstance.get().deviceId());
if (srcNode == null || srcNode.sshAuthInfo() == null) {
log.error("Openstack node {} is null or has no SSH authentication information.\n" +
" Please refers to the sample network-cfg.json in OpenstackNode app to push" +
"SSH authentication information", srcNode == null ? "" : srcNode.hostname());
" Please refers to the sample network-cfg.json in " +
"OpenstackNode app to push SSH authentication information",
srcNode == null ? "" : srcNode.hostname());
return;
}

View File

@ -30,6 +30,7 @@ import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import static org.onosproject.cli.AbstractShellCommand.get;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.modelEntityToJson;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.prettyJson;
@ -45,7 +46,7 @@ public class OpenstackNetworkListCommand extends AbstractShellCommand {
@Override
protected void doExecute() {
OpenstackNetworkService service = AbstractShellCommand.get(OpenstackNetworkService.class);
OpenstackNetworkService service = get(OpenstackNetworkService.class);
List<Network> networks = Lists.newArrayList(service.networks());
networks.sort(Comparator.comparing(Network::getName));

View File

@ -33,6 +33,7 @@ import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import static org.onosproject.cli.AbstractShellCommand.get;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.modelEntityToJson;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.prettyJson;
@ -51,7 +52,7 @@ public class OpenstackPortListCommand extends AbstractShellCommand {
@Override
protected void doExecute() {
OpenstackNetworkService service = AbstractShellCommand.get(OpenstackNetworkService.class);
OpenstackNetworkService service = get(OpenstackNetworkService.class);
List<Port> ports = Lists.newArrayList(service.ports());
ports.sort(Comparator.comparing(Port::getNetworkId));

View File

@ -25,6 +25,7 @@ import org.onosproject.openstacknetworking.api.Constants;
import static java.lang.Thread.sleep;
import static java.util.stream.StreamSupport.stream;
import static org.onosproject.cli.AbstractShellCommand.get;
/**
* Purges all existing network states.
@ -39,8 +40,8 @@ public class OpenstackPurgeRulesCommand extends AbstractShellCommand {
@Override
protected void doExecute() {
FlowRuleService flowRuleService = AbstractShellCommand.get(FlowRuleService.class);
CoreService coreService = AbstractShellCommand.get(CoreService.class);
FlowRuleService flowRuleService = get(FlowRuleService.class);
CoreService coreService = get(CoreService.class);
ApplicationId appId = coreService.getAppId(Constants.OPENSTACK_NETWORKING_APP_ID);
if (appId == null) {
@ -49,7 +50,7 @@ public class OpenstackPurgeRulesCommand extends AbstractShellCommand {
}
flowRuleService.removeFlowRulesById(appId);
print("Successfully purged flow rules installed by OpenStack networking application.");
print("Successfully purged flow rules installed by OpenStack networking app.");
boolean result = true;
long timeoutExpiredMs = System.currentTimeMillis() + TIMEOUT_MS;

View File

@ -35,6 +35,7 @@ import org.onosproject.openstacknetworking.api.OpenstackFlowRuleService;
import java.util.Optional;
import static org.onosproject.cli.AbstractShellCommand.get;
import static org.onosproject.openstacknetworking.api.Constants.DHCP_TABLE;
import static org.onosproject.openstacknetworking.api.Constants.OPENSTACK_NETWORKING_APP_ID;
import static org.onosproject.openstacknetworking.api.Constants.PRIORITY_FORCED_ACL_RULE;
@ -61,12 +62,12 @@ public class OpenstackRemoveAclCommand extends AbstractShellCommand {
@Override
protected void doExecute() {
OpenstackFlowRuleService flowRuleService = AbstractShellCommand.get(OpenstackFlowRuleService.class);
CoreService coreService = AbstractShellCommand.get(CoreService.class);
OpenstackFlowRuleService flowRuleService = get(OpenstackFlowRuleService.class);
CoreService coreService = get(CoreService.class);
ApplicationId appId = coreService.getAppId(OPENSTACK_NETWORKING_APP_ID);
InstancePortService instancePortService = AbstractShellCommand.get(InstancePortService.class);
InstancePortService instancePortService = get(InstancePortService.class);
IpAddress srcIpAddress = null;

View File

@ -29,6 +29,7 @@ import org.openstack4j.openstack.networking.domain.NeutronSecurityGroup;
import java.util.Comparator;
import java.util.List;
import static org.onosproject.cli.AbstractShellCommand.get;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.modelEntityToJson;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.prettyJson;
@ -47,8 +48,7 @@ public class OpenstackSecurityGroupListCommand extends AbstractShellCommand {
@Override
protected void doExecute() {
OpenstackSecurityGroupService service =
AbstractShellCommand.get(OpenstackSecurityGroupService.class);
OpenstackSecurityGroupService service = get(OpenstackSecurityGroupService.class);
List<SecurityGroup> sgs = Lists.newArrayList(service.securityGroups());
sgs.sort(Comparator.comparing(SecurityGroup::getId));

View File

@ -28,6 +28,7 @@ import org.openstack4j.openstack.networking.domain.NeutronSubnet;
import java.util.Comparator;
import java.util.List;
import static org.onosproject.cli.AbstractShellCommand.get;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.modelEntityToJson;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.prettyJson;
@ -43,14 +44,15 @@ public class OpenstackSubnetListCommand extends AbstractShellCommand {
@Override
protected void doExecute() {
OpenstackNetworkService service = AbstractShellCommand.get(OpenstackNetworkService.class);
OpenstackNetworkService service = get(OpenstackNetworkService.class);
List<Subnet> subnets = Lists.newArrayList(service.subnets());
subnets.sort(Comparator.comparing(Subnet::getName));
if (outputJson()) {
print("%s", json(subnets));
} else {
print(FORMAT, "ID", "Name", "CIDR", "GatewayIp", "NetworkId", "NetworkName", "HostRoutes");
print(FORMAT, "ID", "Name", "CIDR", "GatewayIp", "NetworkId",
"NetworkName", "HostRoutes");
for (Subnet subnet: subnets) {
print(FORMAT,

View File

@ -23,6 +23,7 @@ import org.onosproject.openstacknode.api.OpenstackNode;
import org.onosproject.openstacknode.api.OpenstackNodeAdminService;
import static java.lang.Thread.sleep;
import static org.onosproject.cli.AbstractShellCommand.get;
import static org.onosproject.openstacknode.api.NodeState.COMPLETE;
import static org.onosproject.openstacknode.api.OpenstackNode.NodeType.COMPUTE;
import static org.onosproject.openstacknode.api.OpenstackNode.NodeType.GATEWAY;
@ -42,7 +43,7 @@ public class OpenstackSyncRulesCommand extends AbstractShellCommand {
protected void doExecute() {
// All handlers in this application reacts the node complete event and
// tries to re-configure flow rules for the complete node.
OpenstackNodeAdminService osNodeService = AbstractShellCommand.get(OpenstackNodeAdminService.class);
OpenstackNodeAdminService osNodeService = get(OpenstackNodeAdminService.class);
if (osNodeService == null) {
error("Failed to re-install flow rules for OpenStack networking.");
return;

View File

@ -66,12 +66,15 @@ public class OpenstackSyncStateCommand extends AbstractShellCommand {
@Override
protected void doExecute() {
OpenstackSecurityGroupAdminService osSgAdminService = get(OpenstackSecurityGroupAdminService.class);
OpenstackNetworkAdminService osNetAdminService = get(OpenstackNetworkAdminService.class);
OpenstackRouterAdminService osRouterAdminService = get(OpenstackRouterAdminService.class);
OpenstackSecurityGroupAdminService osSgAdminService =
get(OpenstackSecurityGroupAdminService.class);
OpenstackNetworkAdminService osNetAdminService =
get(OpenstackNetworkAdminService.class);
OpenstackRouterAdminService osRouterAdminService =
get(OpenstackRouterAdminService.class);
OpenstackNodeService osNodeService = get(OpenstackNodeService.class);
Map<String, String> headerMap = new HashMap();
Map<String, String> headerMap = new HashMap<>();
headerMap.put(HTTP_HEADER_ACCEPT, HTTP_HEADER_VALUE_JSON);
Optional<OpenstackNode> node = osNodeService.nodes(CONTROLLER).stream().findFirst();

View File

@ -30,6 +30,8 @@ import org.onosproject.openstacknetworking.api.OpenstackNetworkAdminService;
import java.util.List;
import static org.onosproject.cli.AbstractShellCommand.get;
/**
* Updates external peer router.
*/
@ -54,12 +56,13 @@ public class UpdateExternalPeerRouterCommand extends AbstractShellCommand {
private String vlanId = null;
private static final String FORMAT = "%-20s%-20s%-20s";
private static final String NO_ELEMENT = "There's no external peer router information with given ip address";
private static final String NO_ELEMENT =
"There's no external peer router information with given ip address";
private static final String NONE = "None";
@Override
protected void doExecute() {
OpenstackNetworkAdminService service = AbstractShellCommand.get(OpenstackNetworkAdminService.class);
OpenstackNetworkAdminService service = get(OpenstackNetworkAdminService.class);
IpAddress externalPeerIpAddress = IpAddress.valueOf(
IpAddress.Version.INET, Ip4Address.valueOf(ipAddress).toOctets());

View File

@ -33,6 +33,8 @@ import org.openstack4j.model.network.Subnet;
import java.util.List;
import static org.onosproject.cli.AbstractShellCommand.get;
/**
* Updates external peer router macc address.
*/
@ -51,13 +53,14 @@ public class UpdateExternalPeerRouterVlanCommand extends AbstractShellCommand {
private String vlanId = null;
private static final String FORMAT = "%-20s%-20s%-20s";
private static final String NO_ELEMENT = "There's no external peer router information with given ip address";
private static final String NO_ELEMENT =
"There's no external peer router information with given ip address";
private static final String NONE = "None";
@Override
protected void doExecute() {
OpenstackNetworkAdminService osNetAdminService = AbstractShellCommand.get(OpenstackNetworkAdminService.class);
OpenstackRouterService osRouterService = AbstractShellCommand.get(OpenstackRouterService.class);
OpenstackNetworkAdminService osNetAdminService = get(OpenstackNetworkAdminService.class);
OpenstackRouterService osRouterService = get(OpenstackRouterService.class);
IpAddress externalPeerIpAddress = IpAddress.valueOf(
IpAddress.Version.INET, Ip4Address.valueOf(ipAddress).toOctets());
@ -93,10 +96,13 @@ public class UpdateExternalPeerRouterVlanCommand extends AbstractShellCommand {
try {
if (vlanId.equals(NONE)) {
osNetAdminService.updateExternalPeerRouterVlan(externalPeerIpAddress, VlanId.NONE);
osNetAdminService.deriveExternalPeerRouterMac(router.getExternalGatewayInfo(), router, VlanId.NONE);
osNetAdminService.updateExternalPeerRouterVlan(
externalPeerIpAddress, VlanId.NONE);
osNetAdminService.deriveExternalPeerRouterMac(
router.getExternalGatewayInfo(), router, VlanId.NONE);
} else {
osNetAdminService.updateExternalPeerRouterVlan(externalPeerIpAddress, VlanId.vlanId(vlanId));
osNetAdminService.updateExternalPeerRouterVlan(
externalPeerIpAddress, VlanId.vlanId(vlanId));
osNetAdminService.deriveExternalPeerRouterMac(
router.getExternalGatewayInfo(), router, VlanId.vlanId(vlanId));
@ -106,7 +112,8 @@ public class UpdateExternalPeerRouterVlanCommand extends AbstractShellCommand {
}
print(FORMAT, "Router IP", "Mac Address", "VLAN ID");
List<ExternalPeerRouter> routers = Lists.newArrayList(osNetAdminService.externalPeerRouters());
List<ExternalPeerRouter> routers =
Lists.newArrayList(osNetAdminService.externalPeerRouters());
for (ExternalPeerRouter r: routers) {
print(FORMAT, r.ipAddress(),

View File

@ -21,7 +21,6 @@ import org.apache.karaf.shell.api.console.Completer;
import org.apache.karaf.shell.api.console.Session;
import org.apache.karaf.shell.support.completers.StringsCompleter;
import org.onlab.packet.VlanId;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.openstacknetworking.api.ExternalPeerRouter;
import org.onosproject.openstacknetworking.api.OpenstackNetworkService;
@ -31,6 +30,8 @@ import java.util.Set;
import java.util.SortedSet;
import java.util.stream.Collectors;
import static org.onosproject.cli.AbstractShellCommand.get;
/**
* Vlan Id Completer.
*/
@ -40,7 +41,7 @@ public class VlanIdCompleter implements Completer {
@Override
public int complete(Session session, CommandLine commandLine, List<String> candidates) {
StringsCompleter delegate = new StringsCompleter();
OpenstackNetworkService osNetService = AbstractShellCommand.get(OpenstackNetworkService.class);
OpenstackNetworkService osNetService = get(OpenstackNetworkService.class);
Set<VlanId> set = osNetService.externalPeerRouters().stream()
.map(ExternalPeerRouter::vlanId)
.collect(Collectors.toSet());

View File

@ -15,6 +15,6 @@
*/
/**
* CLI implementation for refresh/reprogram the data plane for the existing VM(OpenStackInstance).
* CLI implementation for refresh/reprogram the data plane for the existing VM.
*/
package org.onosproject.openstacknetworking.cli;

View File

@ -121,9 +121,12 @@ public class DistributedOpenstackNetworkStore
private final ExecutorService eventExecutor = newSingleThreadExecutor(
groupedThreads(this.getClass().getSimpleName(), "event-handler", log));
private final MapEventListener<String, Network> networkMapListener = new OpenstackNetworkMapListener();
private final MapEventListener<String, Subnet> subnetMapListener = new OpenstackSubnetMapListener();
private final MapEventListener<String, Port> portMapListener = new OpenstackPortMapListener();
private final MapEventListener<String, Network>
networkMapListener = new OpenstackNetworkMapListener();
private final MapEventListener<String, Subnet>
subnetMapListener = new OpenstackSubnetMapListener();
private final MapEventListener<String, Port>
portMapListener = new OpenstackPortMapListener();
private ConsistentMap<String, Network> osNetworkStore;
private ConsistentMap<String, Subnet> osSubnetStore;
@ -276,7 +279,8 @@ public class DistributedOpenstackNetworkStore
osNetworkStore.clear();
}
private class OpenstackNetworkMapListener implements MapEventListener<String, Network> {
private class OpenstackNetworkMapListener
implements MapEventListener<String, Network> {
@Override
public void event(MapEvent<String, Network> event) {
@ -421,7 +425,8 @@ public class DistributedOpenstackNetworkStore
ImmutableList.of() : newPort.getSecurityGroups();
oldSecurityGroups.stream()
.filter(sgId -> !Objects.requireNonNull(newPort.getSecurityGroups()).contains(sgId))
.filter(sgId -> !Objects.requireNonNull(
newPort.getSecurityGroups()).contains(sgId))
.forEach(sgId -> notifyDelegate(new OpenstackNetworkEvent(
OPENSTACK_PORT_SECURITY_GROUP_REMOVED, newPort, sgId
)));

View File

@ -109,11 +109,12 @@ public class DistributedOpenstackRouterStore
private final ExecutorService eventExecutor = newSingleThreadExecutor(
groupedThreads(this.getClass().getSimpleName(), "event-handler", log));
private final MapEventListener<String, Router> routerMapListener = new OpenstackRouterMapListener();
private final MapEventListener<String, RouterInterface> routerInterfaceMapListener =
new OpenstackRouterInterfaceMapListener();
private final MapEventListener<String, NetFloatingIP> floatingIpMapListener =
new OpenstackFloatingIpMapListener();
private final MapEventListener<String, Router>
routerMapListener = new OpenstackRouterMapListener();
private final MapEventListener<String, RouterInterface>
routerInterfaceMapListener = new OpenstackRouterInterfaceMapListener();
private final MapEventListener<String, NetFloatingIP>
floatingIpMapListener = new OpenstackFloatingIpMapListener();
private ConsistentMap<String, Router> osRouterStore;
private ConsistentMap<String, RouterInterface> osRouterInterfaceStore;

View File

@ -152,14 +152,16 @@ public class DistributedSecurityGroupStore
osSecurityGroupStore.clear();
}
private class OpenstackSecurityGroupMapListener implements MapEventListener<String, SecurityGroup> {
private class OpenstackSecurityGroupMapListener
implements MapEventListener<String, SecurityGroup> {
@Override
public void event(MapEvent<String, SecurityGroup> event) {
switch (event.type()) {
case INSERT:
log.debug("OpenStack security group created {}", event.newValue());
eventExecutor.execute(() -> notifyDelegate(new OpenstackSecurityGroupEvent(
eventExecutor.execute(() ->
notifyDelegate(new OpenstackSecurityGroupEvent(
OPENSTACK_SECURITY_GROUP_CREATED,
event.newValue().value())));
break;
@ -171,7 +173,8 @@ public class DistributedSecurityGroupStore
break;
case REMOVE:
log.debug("OpenStack security group removed {}", event.oldValue());
eventExecutor.execute(() -> notifyDelegate(new OpenstackSecurityGroupEvent(
eventExecutor.execute(() ->
notifyDelegate(new OpenstackSecurityGroupEvent(
OPENSTACK_SECURITY_GROUP_REMOVED,
event.oldValue().value())));
break;

View File

@ -67,7 +67,10 @@ import static org.slf4j.LoggerFactory.getLogger;
* Provides implementation of administering and interfacing instance ports.
* It also provides instance port events for the hosts mapped to OpenStack VM interface.
*/
@Component(immediate = true, service = { InstancePortService.class, InstancePortAdminService.class })
@Component(
immediate = true,
service = { InstancePortService.class, InstancePortAdminService.class }
)
public class InstancePortManager
extends ListenerRegistry<InstancePortEvent, InstancePortListener>
implements InstancePortService, InstancePortAdminService {
@ -155,7 +158,8 @@ public class InstancePortManager
// in case OpenStack removes the port prior to OVS, we will not update
// the instance port as it does not exist in the store
if (instancePortStore.instancePort(instancePort.portId()) == null) {
log.warn("Unable to update instance port {}, as it does not exist", instancePort.portId());
log.warn("Unable to update instance port {}, as it does not exist",
instancePort.portId());
return;
}

View File

@ -93,10 +93,12 @@ public class OpenStackSwitchingDirectPortProvider {
@Reference(cardinality = ReferenceCardinality.MANDATORY)
protected MastershipService mastershipService;
private final ExecutorService executor =
Executors.newSingleThreadExecutor(groupedThreads(this.getClass().getSimpleName(), "direct-port-event"));
private final OpenstackNetworkListener openstackNetworkListener = new InternalOpenstackNetworkListener();
private final InternalOpenstackNodeListener internalNodeListener = new InternalOpenstackNodeListener();
private final ExecutorService executor = Executors.newSingleThreadExecutor(
groupedThreads(this.getClass().getSimpleName(), "direct-port-event"));
private final OpenstackNetworkListener
openstackNetworkListener = new InternalOpenstackNetworkListener();
private final InternalOpenstackNodeListener
internalNodeListener = new InternalOpenstackNodeListener();
private NodeId localNodeId;
private ApplicationId appId;
@ -173,7 +175,8 @@ public class OpenStackSwitchingDirectPortProvider {
.filter(node -> node.hostname().equals(port.getHostId()))
.findAny();
if (!osNode.isPresent()) {
log.error("AddPort failed because openstackNode doesn't exist that matches hostname {}",
log.error("AddPort failed because openstackNode doesn't " +
"exist that matches hostname {}",
port.getHostId());
return;
}
@ -189,15 +192,18 @@ public class OpenStackSwitchingDirectPortProvider {
log.trace("Retrieved interface name: {}", intfName);
try {
//If the VF port has been already added to the device for some reason, we remove it first,
//and then add VF so that other handlers run their logic.
// if the VF port has been already added to the device for
// some reason, we remove it first, and then add VF so that
// other handlers run their logic.
if (hasIntfAleadyInDevice(osNode.get().intgBridge(),
intfName, deviceService)) {
log.trace("Device {} has already has VF interface {}, so remove first.",
osNode.get().intgBridge(),
intfName);
osNodeService.removeVfPort(osNode.get(), intfName);
//we wait 3000ms because the ovsdb client can't deal with removal/add at the same time.
// we wait 3000ms because the ovsdb client can't deal
// with removal/add at the same time.
sleep(SLEEP_MS);
}
} catch (InterruptedException e) {
@ -212,7 +218,8 @@ public class OpenStackSwitchingDirectPortProvider {
if (!port.getvNicType().equals(DIRECT)) {
return;
} else if (instancePortService.instancePort(port.getId()) == null) {
log.trace("RemovePort skipped because no instance port exist for portId: {}", port.getId());
log.trace("RemovePort skipped because no instance port exist for portId: {}",
port.getId());
return;
} else {
InstancePort instancePort = instancePortService.instancePort(port.getId());
@ -228,7 +235,8 @@ public class OpenStackSwitchingDirectPortProvider {
return;
}
Optional<org.onosproject.net.Port> removedPort = deviceService.getPorts(deviceId).stream()
Optional<org.onosproject.net.Port> removedPort =
deviceService.getPorts(deviceId).stream()
.filter(p -> Objects.equals(p.number(), instancePort.portNumber()))
.findAny();
@ -309,15 +317,17 @@ public class OpenStackSwitchingDirectPortProvider {
if (intfName == null) {
log.error("Failed to retrieve interface name from a port {}", port.getId());
} else if (intfName.equals(UNSUPPORTED_VENDOR)) {
log.warn("Failed to retrieve interface name from a port {} because of unsupported ovs-based sr-iov");
log.warn("Failed to retrieve interface name from a port {} " +
"because of unsupported ovs-based sr-iov");
return;
}
if (!hasIntfAleadyInDevice(node.intgBridge(), intfName, deviceService)) {
log.debug("Port {} is bound to the interface {} but not added in the bridge {}. Adding it..",
port.getId(),
intfName,
node.intgBridge());
log.debug("Port {} is bound to the interface {} but not " +
"added in the bridge {}. Adding it..",
port.getId(),
intfName,
node.intgBridge());
osNodeService.addVfPort(node, intfName);
}
}

View File

@ -219,12 +219,16 @@ public class OpenstackFlowRuleManager implements OpenstackFlowRuleService {
setupJumpTable(deviceId);
// for outbound table transition
connectTables(deviceId, Constants.STAT_OUTBOUND_TABLE, Constants.VTAP_OUTBOUND_TABLE);
connectTables(deviceId, Constants.VTAP_OUTBOUND_TABLE, Constants.FORWARDING_TABLE);
connectTables(deviceId, Constants.STAT_OUTBOUND_TABLE,
Constants.VTAP_OUTBOUND_TABLE);
connectTables(deviceId, Constants.VTAP_OUTBOUND_TABLE,
Constants.FORWARDING_TABLE);
// for FLAT outbound table transition
connectTables(deviceId, Constants.STAT_FLAT_OUTBOUND_TABLE, Constants.VTAP_FLAT_OUTBOUND_TABLE);
connectTables(deviceId, Constants.VTAP_FLAT_OUTBOUND_TABLE, Constants.FLAT_TABLE);
connectTables(deviceId, Constants.STAT_FLAT_OUTBOUND_TABLE,
Constants.VTAP_FLAT_OUTBOUND_TABLE);
connectTables(deviceId, Constants.VTAP_FLAT_OUTBOUND_TABLE,
Constants.FLAT_TABLE);
}
private void setupJumpTable(DeviceId deviceId) {

View File

@ -493,7 +493,8 @@ public class OpenstackMetadataProxyHandler {
request.addHeader(new BasicHeader(INSTANCE_ID_HEADER, port.getDeviceId()));
request.addHeader(new BasicHeader(TENANT_ID_HEADER, port.getTenantId()));
request.addHeader(new BasicHeader(FORWARDED_FOR_HEADER, instPort.ipAddress().toString()));
request.addHeader(new BasicHeader(FORWARDED_FOR_HEADER,
instPort.ipAddress().toString()));
if (metadataSecret() != null) {
request.addHeader(new BasicHeader(INSTANCE_ID_SIGNATURE_HEADER,
hmacEncrypt(metadataSecret(), port.getDeviceId())));

View File

@ -71,11 +71,13 @@ import java.util.stream.Collectors;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static java.util.Objects.requireNonNull;
import static org.onosproject.net.AnnotationKeys.PORT_NAME;
import static org.onosproject.openstacknetworking.api.Constants.DIRECT;
import static org.onosproject.openstacknetworking.api.Constants.PCISLOT;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.getIntfNameFromPciAddress;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.vnicType;
import static org.onosproject.openstacknode.api.OpenstackNode.NodeType.GATEWAY;
import static org.slf4j.LoggerFactory.getLogger;
/**
@ -83,7 +85,10 @@ import static org.slf4j.LoggerFactory.getLogger;
* subnet, and port.
*/
@Component(immediate = true, service = { OpenstackNetworkAdminService.class, OpenstackNetworkService.class })
@Component(
immediate = true,
service = { OpenstackNetworkAdminService.class, OpenstackNetworkService.class }
)
public class OpenstackNetworkManager
extends ListenerRegistry<OpenstackNetworkEvent, OpenstackNetworkListener>
implements OpenstackNetworkAdminService, OpenstackNetworkService {
@ -97,15 +102,24 @@ public class OpenstackNetworkManager
private static final String MSG_UPDATED = "updated";
private static final String MSG_REMOVED = "removed";
private static final String ERR_NULL_NETWORK = "OpenStack network cannot be null";
private static final String ERR_NULL_NETWORK_ID = "OpenStack network ID cannot be null";
private static final String ERR_NULL_SUBNET = "OpenStack subnet cannot be null";
private static final String ERR_NULL_SUBNET_ID = "OpenStack subnet ID cannot be null";
private static final String ERR_NULL_SUBNET_NET_ID = "OpenStack subnet network ID cannot be null";
private static final String ERR_NULL_SUBNET_CIDR = "OpenStack subnet CIDR cannot be null";
private static final String ERR_NULL_PORT = "OpenStack port cannot be null";
private static final String ERR_NULL_PORT_ID = "OpenStack port ID cannot be null";
private static final String ERR_NULL_PORT_NET_ID = "OpenStack port network ID cannot be null";
private static final String ERR_NULL_NETWORK =
"OpenStack network cannot be null";
private static final String ERR_NULL_NETWORK_ID =
"OpenStack network ID cannot be null";
private static final String ERR_NULL_SUBNET =
"OpenStack subnet cannot be null";
private static final String ERR_NULL_SUBNET_ID =
"OpenStack subnet ID cannot be null";
private static final String ERR_NULL_SUBNET_NET_ID =
"OpenStack subnet network ID cannot be null";
private static final String ERR_NULL_SUBNET_CIDR =
"OpenStack subnet CIDR cannot be null";
private static final String ERR_NULL_PORT =
"OpenStack port cannot be null";
private static final String ERR_NULL_PORT_ID =
"OpenStack port ID cannot be null";
private static final String ERR_NULL_PORT_NET_ID =
"OpenStack port network ID cannot be null";
private static final String ERR_IN_USE = " still in use";
@ -130,11 +144,13 @@ public class OpenstackNetworkManager
@Reference(cardinality = ReferenceCardinality.MANDATORY)
protected OpenstackNodeService osNodeService;
private final OpenstackNetworkStoreDelegate delegate = new InternalNetworkStoreDelegate();
private final OpenstackNetworkStoreDelegate
delegate = new InternalNetworkStoreDelegate();
private ConsistentMap<String, ExternalPeerRouter> externalPeerRouterMap;
private static final KryoNamespace SERIALIZER_EXTERNAL_PEER_ROUTER_MAP = KryoNamespace.newBuilder()
private static final KryoNamespace
SERIALIZER_EXTERNAL_PEER_ROUTER_MAP = KryoNamespace.newBuilder()
.register(KryoNamespaces.API)
.register(ExternalPeerRouter.class)
.register(DefaultExternalPeerRouter.class)
@ -332,8 +348,10 @@ public class OpenstackNetworkManager
//Additional prefixes will be added
osPort = osNetworkStore.ports()
.stream()
.filter(p -> p.getvNicType().equals(DIRECT) && p.getProfile().get(PCISLOT) != null)
.filter(p -> Objects.requireNonNull(getIntfNameFromPciAddress(p)).equals(portName))
.filter(p -> p.getvNicType().equals(DIRECT) &&
p.getProfile().get(PCISLOT) != null)
.filter(p -> requireNonNull(
getIntfNameFromPciAddress(p)).equals(portName))
.findFirst();
return osPort.orElse(null);
default:
@ -425,15 +443,16 @@ public class OpenstackNetworkManager
}
@Override
public void deriveExternalPeerRouterMac(ExternalGateway externalGateway, Router router, VlanId vlanId) {
public void deriveExternalPeerRouterMac(ExternalGateway externalGateway,
Router router, VlanId vlanId) {
log.info("deriveExternalPeerRouterMac called");
IpAddress sourceIp = getExternalGatewaySourceIp(externalGateway, router);
IpAddress targetIp = getExternalPeerRouterIp(externalGateway);
if (sourceIp == null || targetIp == null) {
log.warn("Failed to derive external router mac address because source IP {} or target IP {} is null",
sourceIp, targetIp);
log.warn("Failed to derive external router mac address because " +
"source IP {} or target IP {} is null", sourceIp, targetIp);
return;
}
@ -449,11 +468,11 @@ public class OpenstackNetworkManager
targetIp.toOctets(),
vlanId.id());
if (osNodeService.completeNodes(OpenstackNode.NodeType.GATEWAY).isEmpty()) {
if (osNodeService.completeNodes(GATEWAY).isEmpty()) {
log.warn("There's no complete gateway");
return;
}
OpenstackNode gatewayNode = osNodeService.completeNodes(OpenstackNode.NodeType.GATEWAY)
OpenstackNode gatewayNode = osNodeService.completeNodes(GATEWAY)
.stream()
.findFirst()
.orElse(null);
@ -483,7 +502,8 @@ public class OpenstackNetworkManager
.vlanId(vlanId)
.build());
log.info("Initializes external peer router map with peer router IP {}", targetIp.toString());
log.info("Initializes external peer router map with peer router IP {}",
targetIp.toString());
}
@Override
@ -515,7 +535,8 @@ public class OpenstackNetworkManager
}
@Override
public void updateExternalPeerRouterMac(IpAddress ipAddress, MacAddress macAddress) {
public void updateExternalPeerRouterMac(IpAddress ipAddress,
MacAddress macAddress) {
try {
externalPeerRouterMap.computeIfPresent(ipAddress.toString(), (id, existing) ->
DefaultExternalPeerRouter.builder()
@ -532,7 +553,9 @@ public class OpenstackNetworkManager
}
@Override
public void updateExternalPeerRouter(IpAddress ipAddress, MacAddress macAddress, VlanId vlanId) {
public void updateExternalPeerRouter(IpAddress ipAddress,
MacAddress macAddress,
VlanId vlanId) {
try {
externalPeerRouterMap.computeIfPresent(ipAddress.toString(), (id, existing) ->
DefaultExternalPeerRouter.builder()
@ -671,7 +694,8 @@ public class OpenstackNetworkManager
}
}
private IpAddress getExternalGatewaySourceIp(ExternalGateway externalGateway, Router router) {
private IpAddress getExternalGatewaySourceIp(ExternalGateway externalGateway,
Router router) {
Port exGatewayPort = ports(externalGateway.getNetworkId())
.stream()
.filter(port -> Objects.equals(port.getDeviceId(), router.getId()))
@ -694,6 +718,7 @@ public class OpenstackNetworkManager
.stream()
.findFirst();
return externalSubnet.map(subnet -> IpAddress.valueOf(subnet.getGateway())).orElse(null);
return externalSubnet.map(subnet ->
IpAddress.valueOf(subnet.getGateway())).orElse(null);
}
}

View File

@ -48,7 +48,10 @@ import static org.slf4j.LoggerFactory.getLogger;
* Provides implementation of administering and interfacing OpenStack router and
* floating IP address.
*/
@Component(immediate = true, service = { OpenstackRouterAdminService.class, OpenstackRouterService.class })
@Component(
immediate = true,
service = { OpenstackRouterAdminService.class, OpenstackRouterService.class }
)
public class OpenstackRouterManager
extends ListenerRegistry<OpenstackRouterEvent, OpenstackRouterListener>
implements OpenstackRouterAdminService, OpenstackRouterService {
@ -62,14 +65,22 @@ public class OpenstackRouterManager
private static final String MSG_UPDATED = "updated";
private static final String MSG_REMOVED = "removed";
private static final String ERR_NULL_ROUTER = "OpenStack router cannot be null";
private static final String ERR_NULL_ROUTER_ID = "OpenStack router ID cannot be null";
private static final String ERR_NULL_ROUTER_NAME = "OpenStack router name cannot be null";
private static final String ERR_NULL_IFACE = "OpenStack router interface cannot be null";
private static final String ERR_NULL_IFACE_ROUTER_ID = "OpenStack router interface router ID cannot be null";
private static final String ERR_NULL_IFACE_PORT_ID = "OpenStack router interface port ID cannot be null";
private static final String ERR_NULL_FLOATING = "OpenStack floating IP cannot be null";
private static final String ERR_NULL_FLOATING_ID = "OpenStack floating IP cannot be null";
private static final String ERR_NULL_ROUTER =
"OpenStack router cannot be null";
private static final String ERR_NULL_ROUTER_ID =
"OpenStack router ID cannot be null";
private static final String ERR_NULL_ROUTER_NAME =
"OpenStack router name cannot be null";
private static final String ERR_NULL_IFACE =
"OpenStack router interface cannot be null";
private static final String ERR_NULL_IFACE_ROUTER_ID =
"OpenStack router interface router ID cannot be null";
private static final String ERR_NULL_IFACE_PORT_ID =
"OpenStack router interface port ID cannot be null";
private static final String ERR_NULL_FLOATING =
"OpenStack floating IP cannot be null";
private static final String ERR_NULL_FLOATING_ID =
"OpenStack floating IP cannot be null";
private static final String ERR_IN_USE = " still in use";
@ -79,7 +90,8 @@ public class OpenstackRouterManager
@Reference(cardinality = ReferenceCardinality.MANDATORY)
protected OpenstackRouterStore osRouterStore;
private final OpenstackRouterStoreDelegate delegate = new InternalRouterStoreDelegate();
private final OpenstackRouterStoreDelegate
delegate = new InternalRouterStoreDelegate();
@Activate
protected void activate() {

View File

@ -138,11 +138,16 @@ public class OpenstackRoutingFloatingIpHandler {
private final ExecutorService eventExecutor = newSingleThreadExecutor(
groupedThreads(this.getClass().getSimpleName(), "event-handler", log));
private final OpenstackRouterListener floatingIpListener = new InternalFloatingIpListener();
private final InstancePortListener instancePortListener = new InternalInstancePortListener();
private final OpenstackNodeListener osNodeListener = new InternalNodeListener();
private final OpenstackNetworkListener osNetworkListener = new InternalOpenstackNetworkListener();
private final InstancePortListener instPortListener = new InternalInstancePortListener();
private final OpenstackRouterListener
floatingIpListener = new InternalFloatingIpListener();
private final InstancePortListener
instancePortListener = new InternalInstancePortListener();
private final OpenstackNodeListener
osNodeListener = new InternalNodeListener();
private final OpenstackNetworkListener
osNetworkListener = new InternalOpenstackNetworkListener();
private final InstancePortListener
instPortListener = new InternalInstancePortListener();
private ApplicationId appId;
private NodeId localNodeId;
@ -323,7 +328,8 @@ public class OpenstackRoutingFloatingIpHandler {
TrafficTreatment.Builder tBuilder = DefaultTrafficTreatment.builder();
OpenstackNode selectedGatewayNode = getGwByComputeDevId(gateways, instPort.deviceId());
OpenstackNode selectedGatewayNode =
getGwByComputeDevId(gateways, instPort.deviceId());
if (selectedGatewayNode == null) {
log.warn(ERR_FLOW + "no gateway node selected");

View File

@ -216,17 +216,21 @@ public class OpenstackRoutingHandler {
private void routerUpdated(Router osRouter) {
ExternalGateway exGateway = osRouter.getExternalGatewayInfo();
osRouterService.routerInterfaces(osRouter.getId()).forEach(iface -> {
Network network = osNetworkAdminService.network(osNetworkAdminService.subnet(iface.getSubnetId())
Network network = osNetworkAdminService.network(
osNetworkAdminService.subnet(iface.getSubnetId())
.getNetworkId());
setRouterAdminRules(network.getProviderSegID(), network.getNetworkType(), !osRouter.isAdminStateUp());
setRouterAdminRules(network.getProviderSegID(),
network.getNetworkType(), !osRouter.isAdminStateUp());
});
ExternalPeerRouter externalPeerRouter = osNetworkAdminService.externalPeerRouter(exGateway);
ExternalPeerRouter externalPeerRouter =
osNetworkAdminService.externalPeerRouter(exGateway);
VlanId vlanId = externalPeerRouter == null ? VlanId.NONE : externalPeerRouter.vlanId();
if (exGateway == null) {
deleteUnassociatedExternalPeerRouter();
osRouterService.routerInterfaces(osRouter.getId()).forEach(iface -> setSourceNat(iface, false));
osRouterService.routerInterfaces(osRouter.getId()).forEach(iface ->
setSourceNat(iface, false));
} else {
osNetworkAdminService.deriveExternalPeerRouterMac(exGateway, osRouter, vlanId);
osRouterService.routerInterfaces(osRouter.getId()).forEach(iface ->
@ -250,7 +254,8 @@ public class OpenstackRoutingHandler {
!routerIps.contains(externalPeerRouter.ipAddress().toString()))
.forEach(externalPeerRouter -> {
osNetworkAdminService
.deleteExternalPeerRouter(externalPeerRouter.ipAddress().toString());
.deleteExternalPeerRouter(
externalPeerRouter.ipAddress().toString());
log.trace("Deleted unassociated external peer router {}",
externalPeerRouter.ipAddress().toString());
});
@ -261,7 +266,8 @@ public class OpenstackRoutingHandler {
private void routerRemove(Router osRouter) {
osRouterService.routerInterfaces(osRouter.getId()).forEach(iface -> {
Network network = osNetworkAdminService.network(osNetworkAdminService.subnet(iface.getSubnetId())
Network network = osNetworkAdminService.network(
osNetworkAdminService.subnet(iface.getSubnetId())
.getNetworkId());
setRouterAdminRules(network.getProviderSegID(), network.getNetworkType(), false);
});
@ -279,7 +285,8 @@ public class OpenstackRoutingHandler {
if (!osRouter.isAdminStateUp()) {
Network network = osNetworkAdminService.network(osSubnet.getNetworkId());
setRouterAdminRules(network.getProviderSegID(), network.getNetworkType(), true);
setRouterAdminRules(network.getProviderSegID(),
network.getNetworkType(), true);
}
setInternalRoutes(osRouter, osSubnet, true);
@ -303,7 +310,8 @@ public class OpenstackRoutingHandler {
if (!osRouter.isAdminStateUp()) {
Network network = osNetworkAdminService.network(osSubnet.getNetworkId());
setRouterAdminRules(network.getProviderSegID(), network.getNetworkType(), false);
setRouterAdminRules(network.getProviderSegID(),
network.getNetworkType(), false);
}
setInternalRoutes(osRouter, osSubnet, false);
@ -395,7 +403,8 @@ public class OpenstackRoutingHandler {
if (osRouter.getExternalGatewayInfo() == null) {
return null;
}
String extNetId = osNetworkAdminService.network(osRouter.getExternalGatewayInfo().getNetworkId()).getId();
String extNetId = osNetworkAdminService.network(
osRouter.getExternalGatewayInfo().getNetworkId()).getId();
Optional<Subnet> extSubnet = osNetworkAdminService.subnets().stream()
.filter(subnet -> subnet.getNetworkId().equals(extNetId))
.findAny();
@ -706,9 +715,13 @@ public class OpenstackRoutingHandler {
install);
}
private void setRulesToGateway(OpenstackNode osNode, String segmentId, IpPrefix srcSubnet,
NetworkType networkType, boolean install) {
OpenstackNode sourceNatGateway = osNodeService.completeNodes(GATEWAY).stream().findFirst().orElse(null);
private void setRulesToGateway(OpenstackNode osNode,
String segmentId,
IpPrefix srcSubnet,
NetworkType networkType,
boolean install) {
OpenstackNode sourceNatGateway =
osNodeService.completeNodes(GATEWAY).stream().findFirst().orElse(null);
if (sourceNatGateway == null) {
return;
@ -763,8 +776,11 @@ public class OpenstackRoutingHandler {
install);
}
private void setRulesForSnatIngressRule(DeviceId deviceId, Long vni, IpPrefix destVmIp,
DeviceId dstDeviceId, boolean install) {
private void setRulesForSnatIngressRule(DeviceId deviceId,
Long vni,
IpPrefix destVmIp,
DeviceId dstDeviceId,
boolean install) {
TrafficSelector selector = DefaultTrafficSelector.builder()
.matchEthType(Ethernet.TYPE_IPV4)
@ -791,13 +807,16 @@ public class OpenstackRoutingHandler {
install);
}
private void setRulesToGatewayWithRoutableSubnets(OpenstackNode osNode, OpenstackNode sourceNatGateway,
String segmentId, Subnet updatedSubnet,
Set<Subnet> routableSubnets, NetworkMode networkMode,
private void setRulesToGatewayWithRoutableSubnets(OpenstackNode osNode,
OpenstackNode sourceNatGateway,
String segmentId,
Subnet updatedSubnet,
Set<Subnet> routableSubnets,
NetworkMode networkMode,
boolean install) {
//At first we install flow rules to gateway with segId and gatewayIp of updated subnet
setRulesToGatewayWithDstIp(osNode, sourceNatGateway, segmentId, IpAddress.valueOf(updatedSubnet.getGateway()),
networkMode, install);
setRulesToGatewayWithDstIp(osNode, sourceNatGateway, segmentId,
IpAddress.valueOf(updatedSubnet.getGateway()), networkMode, install);
routableSubnets.forEach(subnet -> {
setRulesToGatewayWithDstIp(osNode, sourceNatGateway,
@ -811,9 +830,12 @@ public class OpenstackRoutingHandler {
});
}
private void setRulesToGatewayWithDstIp(OpenstackNode osNode, OpenstackNode sourceNatGateway,
String segmentId, IpAddress dstIp,
NetworkMode networkMode, boolean install) {
private void setRulesToGatewayWithDstIp(OpenstackNode osNode,
OpenstackNode sourceNatGateway,
String segmentId,
IpAddress dstIp,
NetworkMode networkMode,
boolean install) {
TrafficSelector.Builder sBuilder = DefaultTrafficSelector.builder()
.matchEthType(Ethernet.TYPE_IPV4)
.matchIPDst(dstIp.getIp4Address().toIpPrefix());
@ -850,7 +872,10 @@ public class OpenstackRoutingHandler {
install);
}
private void setOvsNatIngressRule(DeviceId deviceId, IpPrefix cidr, MacAddress dstMac, boolean install) {
private void setOvsNatIngressRule(DeviceId deviceId,
IpPrefix cidr,
MacAddress dstMac,
boolean install) {
TrafficSelector selector = DefaultTrafficSelector.builder()
.matchEthType(Ethernet.TYPE_IPV4)
@ -879,7 +904,10 @@ public class OpenstackRoutingHandler {
install);
}
private void setOvsNatEgressRule(DeviceId deviceId, IpAddress natAddress, long vni, PortNumber output,
private void setOvsNatEgressRule(DeviceId deviceId,
IpAddress natAddress,
long vni,
PortNumber output,
boolean install) {
TrafficSelector selector = DefaultTrafficSelector.builder()
@ -912,8 +940,11 @@ public class OpenstackRoutingHandler {
install);
}
private void setRulesToController(DeviceId deviceId, String segmentId, IpPrefix srcSubnet,
NetworkType networkType, boolean install) {
private void setRulesToController(DeviceId deviceId,
String segmentId,
IpPrefix srcSubnet,
NetworkType networkType,
boolean install) {
TrafficSelector.Builder sBuilder = DefaultTrafficSelector.builder()
.matchEthType(Ethernet.TYPE_IPV4)
.matchIPSrc(srcSubnet)
@ -951,7 +982,9 @@ public class OpenstackRoutingHandler {
install);
}
private void setRouterAdminRules(String segmentId, NetworkType networkType, boolean install) {
private void setRouterAdminRules(String segmentId,
NetworkType networkType,
boolean install) {
TrafficTreatment treatment;
TrafficSelector.Builder sBuilder = DefaultTrafficSelector.builder()
.matchEthType(Ethernet.TYPE_IPV4);

View File

@ -307,8 +307,9 @@ public class OpenstackRoutingIcmpHandler {
private boolean handleEchoRequest(DeviceId srcDevice, MacAddress srcMac, IPv4 ipPacket,
ICMP icmp) {
//We only handles a request from an instance port
//In case of ehco request to SNAT ip address from an external router, we intentionally ignore it
// we only handles a request from an instance port
// in case of ehco request to SNAT ip address from an external router,
// we intentionally ignore it
InstancePort instPort = instancePortService.instancePort(srcMac);
if (instPort == null) {
log.warn(ERR_REQ + "unknown source host(MAC:{})", srcMac);
@ -339,14 +340,16 @@ public class OpenstackRoutingIcmpHandler {
// this is a request to an external network
log.trace("Icmp request to external {} from {}", dstIp, srcIp);
IpAddress externalIp = externalIpFromSubnet(srcSubnet, osRouterService, osNetworkService);
IpAddress externalIp = externalIpFromSubnet(srcSubnet,
osRouterService, osNetworkService);
if (externalIp == null) {
log.warn(ERR_REQ + "failed to get external ip");
return false;
}
ExternalPeerRouter externalPeerRouter =
externalPeerRouterFromSubnet(srcSubnet, osRouterService, osNetworkService);
externalPeerRouterFromSubnet(srcSubnet,
osRouterService, osNetworkService);
if (externalPeerRouter == null) {
log.warn(ERR_REQ + "failed to get external peer router");
return false;
@ -413,7 +416,8 @@ public class OpenstackRoutingIcmpHandler {
}
Router osRouter = osRouterService.router(osRouterIface.getId());
Set<IpAddress> routableGateways = osRouterService.routerInterfaces(osRouter.getId())
Set<IpAddress> routableGateways =
osRouterService.routerInterfaces(osRouter.getId())
.stream()
.map(iface -> osNetworkService.subnet(iface.getSubnetId()).getGateway())
.map(IpAddress::valueOf)
@ -443,8 +447,10 @@ public class OpenstackRoutingIcmpHandler {
sendReply(icmpReply, instPort);
}
private void sendRequestForExternal(IPv4 ipPacket, DeviceId srcDevice,
IpAddress srcNatIp, ExternalPeerRouter externalPeerRouter) {
private void sendRequestForExternal(IPv4 ipPacket,
DeviceId srcDevice,
IpAddress srcNatIp,
ExternalPeerRouter externalPeerRouter) {
ICMP icmpReq = (ICMP) ipPacket.getPayload();
icmpReq.resetChecksum();
ipPacket.setSourceAddress(srcNatIp.getIp4Address().toInt()).resetChecksum();

View File

@ -222,8 +222,10 @@ public class OpenstackRoutingSnatHandler {
return osNetworkService.subnet(fixedIp.getSubnetId());
}
private void populateSnatFlowRules(InboundPacket packetIn, InstancePort srcInstPort,
TpPort patPort, IpAddress externalIp, ExternalPeerRouter externalPeerRouter) {
private void populateSnatFlowRules(InboundPacket packetIn,
InstancePort srcInstPort,
TpPort patPort, IpAddress externalIp,
ExternalPeerRouter externalPeerRouter) {
Network osNet = osNetworkService.network(srcInstPort.networkId());
if (osNet == null) {
final String error = String.format("%s network %s not found",
@ -344,8 +346,10 @@ public class OpenstackRoutingSnatHandler {
return tmpBuilder.build();
}
private void setUpstreamRules(String segmentId, NetworkType networkType,
IpAddress externalIp, ExternalPeerRouter externalPeerRouter,
private void setUpstreamRules(String segmentId,
NetworkType networkType,
IpAddress externalIp,
ExternalPeerRouter externalPeerRouter,
TpPort patPort,
InboundPacket packetIn) {
IPv4 iPacket = (IPv4) packetIn.parsed().getPayload();

View File

@ -47,8 +47,10 @@ import static org.slf4j.LoggerFactory.getLogger;
* Provides implementation of administering and interfacing OpenStack security
* groups.
*/
@Component(immediate = true,
service = { OpenstackSecurityGroupAdminService.class, OpenstackSecurityGroupService.class })
@Component(
immediate = true,
service = { OpenstackSecurityGroupAdminService.class, OpenstackSecurityGroupService.class }
)
public class OpenstackSecurityGroupManager
extends ListenerRegistry<OpenstackSecurityGroupEvent, OpenstackSecurityGroupListener>
implements OpenstackSecurityGroupAdminService, OpenstackSecurityGroupService {
@ -61,10 +63,14 @@ public class OpenstackSecurityGroupManager
private static final String MSG_CREATED = "created";
private static final String MSG_REMOVED = "removed";
private static final String ERR_NULL_SG = "OpenStack security group cannot be null";
private static final String ERR_NULL_SG_ID = "OpenStack security group ID cannot be null";
private static final String ERR_NULL_SG_RULE = "OpenStack security group rule cannot be null";
private static final String ERR_NULL_SG_RULE_ID = "OpenStack security group rule ID cannot be null";
private static final String ERR_NULL_SG =
"OpenStack security group cannot be null";
private static final String ERR_NULL_SG_ID =
"OpenStack security group ID cannot be null";
private static final String ERR_NULL_SG_RULE =
"OpenStack security group rule cannot be null";
private static final String ERR_NULL_SG_RULE_ID =
"OpenStack security group rule ID cannot be null";
private static final String ERR_NOT_FOUND = "not found";
private static final String ERR_DUPLICATE = "already exist";
@ -76,7 +82,8 @@ public class OpenstackSecurityGroupManager
@Reference(cardinality = ReferenceCardinality.MANDATORY)
protected OpenstackSecurityGroupStore osSecurityGroupStore;
private final OpenstackSecurityGroupStoreDelegate delegate = new InternalSecurityGroupStoreDelegate();
private final OpenstackSecurityGroupStoreDelegate
delegate = new InternalSecurityGroupStoreDelegate();
@Activate
protected void activate() {
@ -125,10 +132,12 @@ public class OpenstackSecurityGroupManager
synchronized (this) {
SecurityGroup sg = securityGroup(sgRule.getSecurityGroupId());
if (sg == null) {
final String error = String.format(MSG_SG, sgRule.getSecurityGroupId(), ERR_NOT_FOUND);
final String error = String.format(MSG_SG,
sgRule.getSecurityGroupId(), ERR_NOT_FOUND);
throw new IllegalStateException(error);
}
if (sg.getRules().stream().anyMatch(rule -> Objects.equals(rule.getId(), sgRule.getId()))) {
if (sg.getRules().stream().anyMatch(rule ->
Objects.equals(rule.getId(), sgRule.getId()))) {
final String error = String.format(MSG_SG_RULE,
sgRule.getSecurityGroupId(), ERR_DUPLICATE);
throw new IllegalStateException(error);
@ -157,11 +166,13 @@ public class OpenstackSecurityGroupManager
SecurityGroup sg = securityGroup(sgRule.getSecurityGroupId());
if (sg == null) {
final String error = String.format(MSG_SG, sgRule.getSecurityGroupId(), ERR_NOT_FOUND);
final String error = String.format(MSG_SG,
sgRule.getSecurityGroupId(), ERR_NOT_FOUND);
throw new IllegalStateException(error);
}
if (sg.getRules().stream().noneMatch(rule -> Objects.equals(rule.getId(), sgRule.getId()))) {
if (sg.getRules().stream().noneMatch(rule ->
Objects.equals(rule.getId(), sgRule.getId()))) {
final String error = String.format(MSG_SG_RULE,
sgRule.getSecurityGroupId(), ERR_NOT_FOUND);
throw new IllegalStateException(error);
@ -210,7 +221,8 @@ public class OpenstackSecurityGroupManager
.findFirst().orElse(null);
}
private class InternalSecurityGroupStoreDelegate implements OpenstackSecurityGroupStoreDelegate {
private class InternalSecurityGroupStoreDelegate
implements OpenstackSecurityGroupStoreDelegate {
@Override
public void notify(OpenstackSecurityGroupEvent event) {

View File

@ -634,7 +634,8 @@ public class OpenstackSwitchingArpHandler {
}
for (OpenstackNode remoteNode : osNodeService.completeNodes(COMPUTE)) {
if (!remoteNode.intgBridge().equals(port.deviceId()) && remoteNode.vlanIntf() != null) {
if (!remoteNode.intgBridge().equals(port.deviceId()) &&
remoteNode.vlanIntf() != null) {
TrafficTreatment treatmentToRemote = DefaultTrafficTreatment.builder()
.setOutput(remoteNode.vlanPortNum())
.build();

View File

@ -318,7 +318,8 @@ public class OpenstackSwitchingDhcpHandler {
IPv4 ipv4Request = (IPv4) ethRequest.getPayload();
IPv4 ipv4Reply = new IPv4();
ipv4Reply.setSourceAddress(clusterService.getLocalNode().ip().getIp4Address().toString());
ipv4Reply.setSourceAddress(
clusterService.getLocalNode().ip().getIp4Address().toString());
ipv4Reply.setDestinationAddress(reqInstPort.ipAddress().getIp4Address().toInt());
ipv4Reply.setTtl(PACKET_TTL);
@ -575,7 +576,8 @@ public class OpenstackSwitchingDhcpHandler {
.split("/")[0]
.split("\\.");
// retrieve destination descriptor and put this to bytebuffer according to RFC 3442
// retrieve destination descriptor and put this to byte buffer
// according to RFC 3442
// ex) 0.0.0.0/0 -> 0
// ex) 10.0.0.0/8 -> 8.10
// ex) 10.17.0.0/16 -> 16.10.17

View File

@ -107,8 +107,8 @@ public class OpenstackSwitchingHostProvider
private HostProviderService hostProviderService;
private final ExecutorService executor =
Executors.newSingleThreadExecutor(groupedThreads(this.getClass().getSimpleName(), "device-event"));
private final ExecutorService executor = Executors.newSingleThreadExecutor(
groupedThreads(this.getClass().getSimpleName(), "device-event"));
private final InternalDeviceListener internalDeviceListener =
new InternalDeviceListener();
private final InternalOpenstackNodeListener internalNodeListener =

View File

@ -113,6 +113,7 @@ import java.util.concurrent.TimeUnit;
import static com.fasterxml.jackson.databind.SerializationFeature.INDENT_OUTPUT;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Strings.isNullOrEmpty;
import static org.onlab.packet.Ip4Address.valueOf;
import static org.onosproject.net.AnnotationKeys.PORT_NAME;
import static org.onosproject.openstacknetworking.api.Constants.DEFAULT_GATEWAY_MAC_STR;
import static org.onosproject.openstacknetworking.api.Constants.PCISLOT;
@ -292,7 +293,8 @@ public final class OpenstackNetworkingUtil {
* @param deviceId device identifier
* @return a gateway node
*/
public static OpenstackNode getGwByComputeDevId(Set<OpenstackNode> gws, DeviceId deviceId) {
public static OpenstackNode getGwByComputeDevId(Set<OpenstackNode> gws,
DeviceId deviceId) {
int numOfGw = gws.size();
if (numOfGw == 0) {
@ -372,7 +374,8 @@ public final class OpenstackNetworkingUtil {
if (!port.getProfile().containsKey(PCISLOT) ||
Strings.isNullOrEmpty(port.getProfile().get(PCISLOT).toString())) {
log.error("Failed to retrieve the interface name because of no pci_slot information from the port");
log.error("Failed to retrieve the interface name because of no " +
"pci_slot information from the port");
return null;
}
@ -416,12 +419,14 @@ public final class OpenstackNetworkingUtil {
* @param deviceService device service
* @return true if the given interface is added to the given device or false otherwise
*/
public static boolean hasIntfAleadyInDevice(DeviceId deviceId, String intfName, DeviceService deviceService) {
public static boolean hasIntfAleadyInDevice(DeviceId deviceId,
String intfName,
DeviceService deviceService) {
checkNotNull(deviceId);
checkNotNull(intfName);
return deviceService.getPorts(deviceId).stream()
.anyMatch(port -> Objects.equals(port.annotations().value(PORT_NAME), intfName));
return deviceService.getPorts(deviceId).stream().anyMatch(port ->
Objects.equals(port.annotations().value(PORT_NAME), intfName));
}
/**
@ -430,7 +435,8 @@ public final class OpenstackNetworkingUtil {
* @param osPort port
* @param adminService openstack admin service
*/
public static void addRouterIface(Port osPort, OpenstackRouterAdminService adminService) {
public static void addRouterIface(Port osPort,
OpenstackRouterAdminService adminService) {
osPort.getFixedIps().forEach(p -> {
JsonNode jsonTree = new ObjectMapper().createObjectNode()
.put("id", osPort.getDeviceId())
@ -459,7 +465,8 @@ public final class OpenstackNetworkingUtil {
* @param name key name
* @return mapping value
*/
public static String getPropertyValue(Set<ConfigProperty> properties, String name) {
public static String getPropertyValue(Set<ConfigProperty> properties,
String name) {
Optional<ConfigProperty> property =
properties.stream().filter(p -> p.name().equals(name)).findFirst();
return property.map(ConfigProperty::value).orElse(null);
@ -472,7 +479,8 @@ public final class OpenstackNetworkingUtil {
* @param name key name
* @return mapping value
*/
public static boolean getPropertyValueAsBoolean(Set<ConfigProperty> properties, String name) {
public static boolean getPropertyValueAsBoolean(Set<ConfigProperty> properties,
String name) {
Optional<ConfigProperty> property =
properties.stream().filter(p -> p.name().equals(name)).findFirst();
@ -598,7 +606,8 @@ public final class OpenstackNetworkingUtil {
new SessionInputBufferImpl(
new HttpTransportMetricsImpl(), HTTP_PAYLOAD_BUFFER);
sessionInputBuffer.bind(new ByteArrayInputStream(rawData));
DefaultHttpRequestParser requestParser = new DefaultHttpRequestParser(sessionInputBuffer);
DefaultHttpRequestParser requestParser =
new DefaultHttpRequestParser(sessionInputBuffer);
try {
return requestParser.parse();
} catch (IOException | HttpException e) {
@ -623,8 +632,8 @@ public final class OpenstackNetworkingUtil {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
sessionOutputBuffer.bind(baos);
HttpMessageWriter<HttpRequest> requestWriter = new DefaultHttpRequestWriter(
sessionOutputBuffer);
HttpMessageWriter<HttpRequest> requestWriter =
new DefaultHttpRequestWriter(sessionOutputBuffer);
requestWriter.write(request);
sessionOutputBuffer.flush();
@ -647,7 +656,8 @@ public final class OpenstackNetworkingUtil {
new SessionInputBufferImpl(
new HttpTransportMetricsImpl(), HTTP_PAYLOAD_BUFFER);
sessionInputBuffer.bind(new ByteArrayInputStream(rawData));
DefaultHttpResponseParser responseParser = new DefaultHttpResponseParser(sessionInputBuffer);
DefaultHttpResponseParser responseParser =
new DefaultHttpResponseParser(sessionInputBuffer);
try {
return responseParser.parse();
} catch (IOException | HttpException e) {
@ -741,7 +751,8 @@ public final class OpenstackNetworkingUtil {
public static String traceRequestString(String srcIp,
String dstIp,
InstancePort srcInstancePort,
OpenstackNetworkService osNetService, boolean uplink) {
OpenstackNetworkService osNetService,
boolean uplink) {
StringBuilder requestStringBuilder = new StringBuilder(DEFAULT_REQUEST_STRING);
@ -762,7 +773,8 @@ public final class OpenstackNetworkingUtil {
modifiedDstIp = osNetService.gatewayIp(srcInstancePort.portId());
requestStringBuilder.append(DL_DST)
.append(DEFAULT_GATEWAY_MAC_STR).append(COMMA);
} else if (!osNetService.ipPrefix(srcInstancePort.portId()).contains(IpAddress.valueOf(dstIp))) {
} else if (!osNetService.ipPrefix(srcInstancePort.portId()).contains(
IpAddress.valueOf(dstIp))) {
requestStringBuilder.append(DL_DST)
.append(DEFAULT_GATEWAY_MAC_STR)
.append(COMMA);
@ -824,7 +836,7 @@ public final class OpenstackNetworkingUtil {
final InputStream inputStream =
new ByteArrayInputStream(requestString.getBytes(Charsets.UTF_8));
OutputStream outputStream = new ByteArrayOutputStream();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
OutputStream errStream = new ByteArrayOutputStream();
channel.setIn(new NoCloseInputStream(inputStream));
@ -848,7 +860,7 @@ public final class OpenstackNetworkingUtil {
}
TimeUnit.SECONDS.sleep(WAIT_OUTPUT_STREAM_SECOND);
traceResult = ((ByteArrayOutputStream) outputStream).toString(Charsets.UTF_8.name());
traceResult = outputStream.toString(Charsets.UTF_8.name());
channel.close();
}
@ -874,7 +886,8 @@ public final class OpenstackNetworkingUtil {
* @return floating ip
*/
public static NetFloatingIP floatingIpByInstancePort(InstancePort instancePort,
OpenstackRouterAdminService osRouterAdminService) {
OpenstackRouterAdminService
osRouterAdminService) {
return osRouterAdminService.floatingIps().stream()
.filter(netFloatingIP -> netFloatingIP.getPortId() != null)
.filter(netFloatingIP -> netFloatingIP.getPortId().equals(instancePort.portId()))
@ -913,8 +926,10 @@ public final class OpenstackNetworkingUtil {
* @return external peer router
*/
public static ExternalPeerRouter externalPeerRouterForNetwork(Network network,
OpenstackNetworkService osNetworkService,
OpenstackRouterAdminService osRouterAdminService) {
OpenstackNetworkService
osNetworkService,
OpenstackRouterAdminService
osRouterAdminService) {
if (network == null) {
return null;
}
@ -950,8 +965,11 @@ public final class OpenstackNetworkingUtil {
* @param osNetworkService openstack network service
* @return external peer router
*/
public static ExternalPeerRouter externalPeerRouterFromSubnet(Subnet subnet, OpenstackRouterService osRouterService,
OpenstackNetworkService osNetworkService) {
public static ExternalPeerRouter externalPeerRouterFromSubnet(Subnet subnet,
OpenstackRouterService
osRouterService,
OpenstackNetworkService
osNetworkService) {
Router osRouter = getRouterFromSubnet(subnet, osRouterService);
if (osRouter == null) {
return null;
@ -975,8 +993,10 @@ public final class OpenstackNetworkingUtil {
* @return external ip address
*/
public static IpAddress externalIpFromSubnet(Subnet srcSubnet,
OpenstackRouterService osRouterService,
OpenstackNetworkService osNetworkService) {
OpenstackRouterService
osRouterService,
OpenstackNetworkService
osNetworkService) {
Router osRouter = getRouterFromSubnet(srcSubnet, osRouterService);
@ -997,14 +1017,16 @@ public final class OpenstackNetworkingUtil {
* @param osNetworkService openstack network service
* @return external ip address
*/
public static IpAddress getExternalIp(Router router, OpenstackNetworkService osNetworkService) {
public static IpAddress getExternalIp(Router router,
OpenstackNetworkService osNetworkService) {
if (router == null) {
return null;
}
ExternalGateway externalGateway = router.getExternalGatewayInfo();
if (externalGateway == null || !externalGateway.isEnableSnat()) {
log.trace("Failed to get externalIp for router {} because externalGateway is null or SNAT is disabled",
log.trace("Failed to get externalIp for router {} because " +
"externalGateway is null or SNAT is disabled",
router.getId());
return null;
}
@ -1023,7 +1045,8 @@ public final class OpenstackNetworkingUtil {
.findAny().get().getIpAddress());
}
private static Router getRouterFromSubnet(Subnet subnet, OpenstackRouterService osRouterService) {
private static Router getRouterFromSubnet(Subnet subnet,
OpenstackRouterService osRouterService) {
RouterInterface osRouterIface = osRouterService.routerInterfaces().stream()
.filter(i -> Objects.equals(i.getSubnetId(), subnet.getId()))
.findAny().orElse(null);
@ -1066,8 +1089,8 @@ public final class OpenstackNetworkingUtil {
arp.setSenderHardwareAddress(instancePort.macAddress().toBytes());
arp.setTargetHardwareAddress(MacAddress.BROADCAST.toBytes());
arp.setSenderProtocolAddress(Ip4Address.valueOf(floatingIP.getFloatingIpAddress()).toInt());
arp.setTargetProtocolAddress(Ip4Address.valueOf(floatingIP.getFloatingIpAddress()).toInt());
arp.setSenderProtocolAddress(valueOf(floatingIP.getFloatingIpAddress()).toInt());
arp.setTargetProtocolAddress(valueOf(floatingIP.getFloatingIpAddress()).toInt());
ethernet.setPayload(arp);

View File

@ -76,7 +76,8 @@ public final class RulePopulatorUtil {
* @param id DeviceId
* @return a builder for OVS Connection Tracking feature actions
*/
public static NiriraConnTrackTreatmentBuilder niciraConnTrackTreatmentBuilder(DriverService ds, DeviceId id) {
public static NiriraConnTrackTreatmentBuilder
niciraConnTrackTreatmentBuilder(DriverService ds, DeviceId id) {
return new NiriraConnTrackTreatmentBuilder(ds, id);
}
@ -102,12 +103,14 @@ public final class RulePopulatorUtil {
}
ExtensionTreatmentResolver resolver = device.as(ExtensionTreatmentResolver.class);
ExtensionTreatment treatment = resolver.getExtensionInstruction(NICIRA_SET_TUNNEL_DST.type());
ExtensionTreatment treatment =
resolver.getExtensionInstruction(NICIRA_SET_TUNNEL_DST.type());
try {
treatment.setPropertyValue(TUNNEL_DST, remoteIp);
return treatment;
} catch (ExtensionPropertyException e) {
log.warn("Failed to get tunnelDst extension treatment for {} because of {}", deviceId, e);
log.warn("Failed to get tunnelDst extension treatment for {} " +
"because of {}", deviceId, e);
return null;
}
}
@ -121,8 +124,10 @@ public final class RulePopulatorUtil {
* @param ctSateMask connection tracking sate masking value
* @return OVS ConnTrack extension match
*/
public static ExtensionSelector buildCtExtensionSelector(DriverService driverService, DeviceId deviceId,
long ctState, long ctSateMask) {
public static ExtensionSelector buildCtExtensionSelector(DriverService driverService,
DeviceId deviceId,
long ctState,
long ctSateMask) {
DriverHandler handler = driverService.createHandler(deviceId);
ExtensionSelectorResolver esr = handler.behaviour(ExtensionSelectorResolver.class);
@ -147,7 +152,9 @@ public final class RulePopulatorUtil {
* @param isEstablished true for +est, false for nothing
* @return ConnTrack State flags
*/
public static long computeCtStateFlag(boolean isTracking, boolean isNew, boolean isEstablished) {
public static long computeCtStateFlag(boolean isTracking,
boolean isNew,
boolean isEstablished) {
long ctMaskFlag = 0x00;
if (isTracking) {
@ -175,7 +182,9 @@ public final class RulePopulatorUtil {
* @param isEstablished true for setting +est value, false for otherwise
* @return ConnTrack State Mask value
*/
public static long computeCtMaskFlag(boolean isTracking, boolean isNew, boolean isEstablished) {
public static long computeCtMaskFlag(boolean isTracking,
boolean isNew,
boolean isEstablished) {
long ctMaskFlag = 0x00;
if (isTracking) {
@ -209,7 +218,8 @@ public final class RulePopulatorUtil {
private boolean natAction;
private NiriraConnTrackTreatmentBuilder(DriverService driverService, DeviceId deviceId) {
private NiriraConnTrackTreatmentBuilder(DriverService driverService,
DeviceId deviceId) {
this.driverService = driverService;
this.deviceId = deviceId;
}
@ -278,12 +288,13 @@ public final class RulePopulatorUtil {
DriverHandler handler = driverService.createHandler(deviceId);
ExtensionTreatmentResolver etr = handler.behaviour(ExtensionTreatmentResolver.class);
ExtensionTreatment natTreatment
= etr.getExtensionInstruction(ExtensionTreatmentType.ExtensionTreatmentTypes.NICIRA_NAT.type());
ExtensionTreatment natTreatment = etr.getExtensionInstruction(
ExtensionTreatmentType.ExtensionTreatmentTypes.NICIRA_NAT.type());
try {
if (natAddress != null) {
natTreatment.setPropertyValue(CT_FLAGS, 1);
natTreatment.setPropertyValue(CT_PRESENT_FLAGS, buildPresentFlag(false, true));
natTreatment.setPropertyValue(CT_PRESENT_FLAGS,
buildPresentFlag(false, true));
natTreatment.setPropertyValue(CT_IPADDRESS_MIN, natAddress);
natTreatment.setPropertyValue(CT_IPADDRESS_MAX, natAddress);
} else {
@ -295,8 +306,8 @@ public final class RulePopulatorUtil {
return null;
}
ExtensionTreatment ctTreatment
= etr.getExtensionInstruction(ExtensionTreatmentType.ExtensionTreatmentTypes.NICIRA_CT.type());
ExtensionTreatment ctTreatment = etr.getExtensionInstruction(
ExtensionTreatmentType.ExtensionTreatmentTypes.NICIRA_CT.type());
try {
List<ExtensionTreatment> nat = new ArrayList<>();
if (natAction) {

View File

@ -58,7 +58,8 @@ public class OpenstackPortWebResource extends AbstractWebResource {
private static final String VHOSTUSER = "vhostuser";
private static final String SOCKET_DIR = "socket_dir";
private final OpenstackNetworkAdminService adminService = get(OpenstackNetworkAdminService.class);
private final OpenstackNetworkAdminService
adminService = get(OpenstackNetworkAdminService.class);
private final OpenstackNodeService nodeService = get(OpenstackNodeService.class);
@Context

View File

@ -20,7 +20,6 @@ import org.apache.karaf.shell.api.console.CommandLine;
import org.apache.karaf.shell.api.console.Completer;
import org.apache.karaf.shell.api.console.Session;
import org.apache.karaf.shell.support.completers.StringsCompleter;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.openstacknode.api.OpenstackNode;
import org.onosproject.openstacknode.api.OpenstackNodeService;
@ -29,6 +28,8 @@ import java.util.Set;
import java.util.SortedSet;
import java.util.stream.Collectors;
import static org.onosproject.cli.AbstractShellCommand.get;
/**
* Openstack host completer.
*/
@ -38,7 +39,7 @@ public class OpenstackHostnameCompleter implements Completer {
@Override
public int complete(Session session, CommandLine commandLine, List<String> candidates) {
StringsCompleter delegate = new StringsCompleter();
OpenstackNodeService osNodeService = AbstractShellCommand.get(OpenstackNodeService.class);
OpenstackNodeService osNodeService = get(OpenstackNodeService.class);
Set<String> hostnames = osNodeService.nodes().stream()
.map(OpenstackNode::hostname)

View File

@ -21,9 +21,9 @@ import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.Completion;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.net.Device;
import org.onosproject.net.DeviceId;
import org.onosproject.net.Port;
import org.onosproject.net.Device;
import org.onosproject.net.device.DeviceService;
import org.onosproject.openstacknode.api.NodeState;
import org.onosproject.openstacknode.api.OpenstackNode;
@ -55,8 +55,8 @@ public class OpenstackNodeCheckCommand extends AbstractShellCommand {
@Override
protected void doExecute() {
OpenstackNodeService osNodeService = AbstractShellCommand.get(OpenstackNodeService.class);
DeviceService deviceService = AbstractShellCommand.get(DeviceService.class);
OpenstackNodeService osNodeService = get(OpenstackNodeService.class);
DeviceService deviceService = get(DeviceService.class);
OpenstackNode osNode = osNodeService.node(hostname);
if (osNode == null) {
@ -110,7 +110,8 @@ public class OpenstackNodeCheckCommand extends AbstractShellCommand {
}
}
private void printPortState(DeviceService deviceService, DeviceId deviceId, String portName) {
private void printPortState(DeviceService deviceService,
DeviceId deviceId, String portName) {
Port port = deviceService.getPorts(deviceId).stream()
.filter(p -> p.annotations().value(PORT_NAME).equals(portName) &&
p.isEnabled())

View File

@ -51,10 +51,8 @@ public class OpenstackNodeInitCommand extends AbstractShellCommand {
@Override
protected void doExecute() {
OpenstackNodeService osNodeService =
AbstractShellCommand.get(OpenstackNodeService.class);
OpenstackNodeAdminService osNodeAdminService =
AbstractShellCommand.get(OpenstackNodeAdminService.class);
OpenstackNodeService osNodeService = get(OpenstackNodeService.class);
OpenstackNodeAdminService osNodeAdminService = get(OpenstackNodeAdminService.class);
if ((!isAll && !isIncomplete && hostnames == null) ||
(isAll && isIncomplete) ||

View File

@ -28,6 +28,7 @@ import org.onosproject.openstacknode.api.OpenstackNodeService;
import java.util.Comparator;
import java.util.List;
import static org.onosproject.openstacknode.api.OpenstackNode.NodeType.GATEWAY;
import static org.onosproject.openstacknode.util.OpenstackNodeUtil.getGwByComputeNode;
import static org.onosproject.openstacknode.util.OpenstackNodeUtil.prettyJson;
@ -43,15 +44,15 @@ public class OpenstackNodeListCommand extends AbstractShellCommand {
@Override
protected void doExecute() {
OpenstackNodeService osNodeService = AbstractShellCommand.get(OpenstackNodeService.class);
OpenstackNodeService osNodeService = get(OpenstackNodeService.class);
List<OpenstackNode> osNodes = Lists.newArrayList(osNodeService.nodes());
osNodes.sort(Comparator.comparing(OpenstackNode::hostname));
if (outputJson()) {
print("%s", json(osNodes));
} else {
print(FORMAT, "Hostname", "Type", "Integration Bridge",
"Management IP", "Data IP", "VLAN Intf", "Uplink Port", "State", "SelectedGw");
print(FORMAT, "Hostname", "Type", "Integration Bridge", "Management IP",
"Data IP", "VLAN Intf", "Uplink Port", "State", "SelectedGw");
for (OpenstackNode osNode : osNodes) {
print(FORMAT,
osNode.hostname(),
@ -62,7 +63,7 @@ public class OpenstackNodeListCommand extends AbstractShellCommand {
osNode.vlanIntf() != null ? osNode.vlanIntf() : "",
osNode.uplinkPort() != null ? osNode.uplinkPort() : "",
osNode.state(),
getGwByComputeNode(osNodeService.completeNodes(OpenstackNode.NodeType.GATEWAY), osNode));
getGwByComputeNode(osNodeService.completeNodes(GATEWAY), osNode));
}
print("Total %s nodes", osNodeService.nodes().size());
}

View File

@ -149,7 +149,8 @@ public class DefaultOpenstackNodeHandler implements OpenstackNodeHandler {
/** OVSDB server listen port. */
private int ovsdbPortNum = OVSDB_PORT_NUM_DEFAULT;
/** A flag which indicates whether auto-recover openstack node status on switch reconnecting event. */
/** A flag which indicates whether auto-recover openstack node status on
* switch reconnecting event. */
private boolean autoRecovery = AUTO_RECOVERY_DEFAULT;
private final ExecutorService eventExecutor = newSingleThreadExecutor(
@ -229,14 +230,14 @@ public class DefaultOpenstackNodeHandler implements OpenstackNodeHandler {
if (osNode.dpdkConfig() != null && osNode.dpdkConfig().dpdkIntfs() != null) {
osNode.dpdkConfig().dpdkIntfs().stream()
.filter(dpdkInterface -> dpdkInterface.deviceName().equals(TUNNEL_BRIDGE))
.forEach(dpdkInterface -> addOrRemoveDpdkInterface(
osNode, dpdkInterface, ovsdbPortNum, ovsdbController, true));
.filter(dpdkintf -> dpdkintf.deviceName().equals(TUNNEL_BRIDGE))
.forEach(dpdkintf -> addOrRemoveDpdkInterface(
osNode, dpdkintf, ovsdbPortNum, ovsdbController, true));
osNode.dpdkConfig().dpdkIntfs().stream()
.filter(dpdkInterface -> dpdkInterface.deviceName().equals(INTEGRATION_BRIDGE))
.forEach(dpdkInterface -> addOrRemoveDpdkInterface(
osNode, dpdkInterface, ovsdbPortNum, ovsdbController, true));
.filter(dpdkintf -> dpdkintf.deviceName().equals(INTEGRATION_BRIDGE))
.forEach(dpdkintf -> addOrRemoveDpdkInterface(
osNode, dpdkintf, ovsdbPortNum, ovsdbController, true));
}
osNode.phyIntfs().forEach(i -> {
@ -249,7 +250,7 @@ public class DefaultOpenstackNodeHandler implements OpenstackNodeHandler {
if (osNode.vlanIntf() != null &&
!isIntfEnabled(osNode, osNode.vlanIntf())) {
addOrRemoveSystemInterface(osNode, INTEGRATION_BRIDGE,
osNode.vlanIntf(), deviceService, true);
osNode.vlanIntf(), deviceService, true);
}
} catch (Exception e) {
log.error("Exception occurred because of {}", e.toString());
@ -367,7 +368,8 @@ public class DefaultOpenstackNodeHandler implements OpenstackNodeHandler {
}
/**
* Checks whether a given network interface in a given openstack node is enabled or not.
* Checks whether a given network interface in a given openstack node
* is enabled or not.
*
* @param osNode openstack node
* @param intf network interface name
@ -390,7 +392,8 @@ public class DefaultOpenstackNodeHandler implements OpenstackNodeHandler {
private boolean isCurrentStateDone(OpenstackNode osNode) {
switch (osNode.state()) {
case INIT:
if (!isOvsdbConnected(osNode, ovsdbPortNum, ovsdbController, deviceService)) {
if (!isOvsdbConnected(osNode, ovsdbPortNum,
ovsdbController, deviceService)) {
return false;
}
@ -445,15 +448,15 @@ public class DefaultOpenstackNodeHandler implements OpenstackNodeHandler {
Set<OvsdbPort> ports = client.getPorts();
for (DpdkInterface dpdkInterface : dpdkInterfaces) {
for (DpdkInterface dpdkIntf : dpdkInterfaces) {
Optional<OvsdbPort> port = ports.stream()
.filter(ovsdbPort -> ovsdbPort.portName().value().equals(dpdkInterface.intf()))
.filter(ovsdbPort -> ovsdbPort.portName().value().equals(dpdkIntf.intf()))
.findAny();
if (!port.isPresent()) {
return false;
}
Interface intf = client.getInterface(dpdkInterface.intf());
Interface intf = client.getInterface(dpdkIntf.intf());
if (intf == null) {
return false;
}
@ -468,8 +471,8 @@ public class DefaultOpenstackNodeHandler implements OpenstackNodeHandler {
return false;
}
if (!mtu.set().contains(dpdkInterface.mtu().intValue()) ||
!option.toString().contains(dpdkInterface.pciAddress())) {
if (!mtu.set().contains(dpdkIntf.mtu().intValue()) ||
!option.toString().contains(dpdkIntf.pciAddress())) {
log.trace("The dpdk interface {} was created but mtu or " +
"pci address is different from the config.");
return false;
@ -516,21 +519,23 @@ public class DefaultOpenstackNodeHandler implements OpenstackNodeHandler {
private void removeVlanInterface(OpenstackNode osNode) {
if (osNode.vlanIntf() != null) {
Optional<DpdkInterface> dpdkInterface = dpdkInterfaceByIntfName(osNode, osNode.vlanIntf());
Optional<DpdkInterface> dpdkIntf =
dpdkInterfaceByIntfName(osNode, osNode.vlanIntf());
removeInterfaceOnIntegrationBridge(osNode, osNode.vlanIntf(), dpdkInterface);
removeInterfaceOnIntegrationBridge(osNode, osNode.vlanIntf(), dpdkIntf);
}
}
private void removePhysicalInterface(OpenstackNode osNode) {
osNode.phyIntfs().forEach(phyIntf -> {
Optional<DpdkInterface> dpdkInterface = dpdkInterfaceByIntfName(osNode, phyIntf.intf());
Optional<DpdkInterface> dpdkIntf = dpdkInterfaceByIntfName(osNode, phyIntf.intf());
removeInterfaceOnIntegrationBridge(osNode, phyIntf.intf(), dpdkInterface);
removeInterfaceOnIntegrationBridge(osNode, phyIntf.intf(), dpdkIntf);
});
}
private Optional<DpdkInterface> dpdkInterfaceByIntfName(OpenstackNode osNode, String intf) {
private Optional<DpdkInterface> dpdkInterfaceByIntfName(OpenstackNode osNode,
String intf) {
return osNode.dpdkConfig() == null ? Optional.empty() :
osNode.dpdkConfig().dpdkIntfs().stream()
.filter(dpdkIntf -> dpdkIntf.intf().equals(intf))

View File

@ -82,8 +82,10 @@ public class DistributedOpenstackNodeStore
private static final String ERR_NOT_FOUND = " does not exist";
private static final String ERR_DUPLICATE = " already exists";
private static final String APP_ID = "org.onosproject.openstacknode";
private static final KryoNamespace SERIALIZER_OPENSTACK_NODE = KryoNamespace.newBuilder()
private static final KryoNamespace
SERIALIZER_OPENSTACK_NODE = KryoNamespace.newBuilder()
.register(KryoNamespaces.API)
.register(OpenstackNode.class)
.register(DefaultOpenstackNode.class)
@ -122,7 +124,7 @@ public class DistributedOpenstackNodeStore
@Activate
protected void activate() {
ApplicationId appId = coreService.registerApplication("org.onosproject.openstacknode");
ApplicationId appId = coreService.registerApplication(APP_ID);
osNodeStore = storageService.<String, OpenstackNode>consistentMapBuilder()
.withSerializer(Serializer.using(SERIALIZER_OPENSTACK_NODE))
.withName("openstack-nodestore")
@ -180,7 +182,8 @@ public class DistributedOpenstackNodeStore
/**
* An internal openstack node map listener.
*/
private class OpenstackNodeMapListener implements MapEventListener<String, OpenstackNode> {
private class OpenstackNodeMapListener
implements MapEventListener<String, OpenstackNode> {
@Override
public void event(MapEvent<String, OpenstackNode> event) {

View File

@ -78,7 +78,8 @@ import static org.slf4j.LoggerFactory.getLogger;
OVSDB_PORT + ":Integer=" + OVSDB_PORT_NUM_DEFAULT
}
)
public class OpenstackNodeManager extends ListenerRegistry<OpenstackNodeEvent, OpenstackNodeListener>
public class OpenstackNodeManager
extends ListenerRegistry<OpenstackNodeEvent, OpenstackNodeListener>
implements OpenstackNodeService, OpenstackNodeAdminService {
private final Logger log = getLogger(getClass());
@ -210,8 +211,8 @@ public class OpenstackNodeManager extends ListenerRegistry<OpenstackNodeEvent, O
}
if (!intfsRemovedFromExistNode(existingNode)) {
log.error("Updated node failed because intfs of existingNode {} are not removed properly",
existingNode.toString());
log.error("Updated node failed because intfs of existingNode {} " +
"are not removed properly", existingNode.toString());
return;
}
@ -291,7 +292,8 @@ public class OpenstackNodeManager extends ListenerRegistry<OpenstackNodeEvent, O
connectSwitch(osNode);
addOrRemoveSystemInterface(osNode, INTEGRATION_BRIDGE, portName, deviceService, true);
addOrRemoveSystemInterface(osNode, INTEGRATION_BRIDGE, portName,
deviceService, true);
}
@Override
@ -300,7 +302,8 @@ public class OpenstackNodeManager extends ListenerRegistry<OpenstackNodeEvent, O
connectSwitch(osNode);
addOrRemoveSystemInterface(osNode, INTEGRATION_BRIDGE, portName, deviceService, false);
addOrRemoveSystemInterface(osNode, INTEGRATION_BRIDGE, portName,
deviceService, false);
}
private boolean intfsRemovedFromExistNode(OpenstackNode osNode) {
@ -347,8 +350,8 @@ public class OpenstackNodeManager extends ListenerRegistry<OpenstackNodeEvent, O
try {
ovsdbController.connect(osNode.managementIp(), tpPort(ovsdbPortNum));
} catch (Exception e) {
log.error("Failed to connect to the openstackNode via ovsdb protocol because of exception {}",
e.toString());
log.error("Failed to connect to the openstackNode via ovsdb " +
"protocol because of exception {}", e);
}
}
}

View File

@ -279,7 +279,8 @@ public final class OpenstackNodeUtil {
}
if (addOrRemove) {
Map<String, String> options = ImmutableMap.of(DPDK_DEVARGS, dpdkInterface.pciAddress());
Map<String, String> options =
ImmutableMap.of(DPDK_DEVARGS, dpdkInterface.pciAddress());
OvsdbInterface.Builder builder = OvsdbInterface.builder()
.name(dpdkInterface.intf())
@ -302,7 +303,8 @@ public final class OpenstackNodeUtil {
* @param openstackNode device identifier
* @return the hostname of selected gateway node
*/
public static String getGwByComputeNode(Set<OpenstackNode> gws, OpenstackNode openstackNode) {
public static String getGwByComputeNode(Set<OpenstackNode> gws,
OpenstackNode openstackNode) {
int numOfGw = gws.size();
if (numOfGw == 0) {