Search in sources :

Example 1 with FLOATING_IP_FORMAT

use of org.onosproject.openstacknetworking.api.Constants.FLOATING_IP_FORMAT in project onos by opennetworkinglab.

the class OpenstackSyncStateCommand method doExecute.

@Override
protected void doExecute() {
    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<>();
    headerMap.put(HTTP_HEADER_ACCEPT, HTTP_HEADER_VALUE_JSON);
    Optional<OpenstackNode> node = osNodeService.nodes(CONTROLLER).stream().findFirst();
    if (!node.isPresent()) {
        error("Keystone auth info has not been configured. " + "Please specify auth info via network-cfg.json.");
        return;
    }
    OSClient osClient = OpenstackNetworkingUtil.getConnectedClient(node.get());
    if (osClient == null) {
        return;
    }
    print("Synchronizing OpenStack security groups");
    print(SECURITY_GROUP_FORMAT, "ID", "Name");
    osClient.headers(headerMap).networking().securitygroup().list().forEach(osSg -> {
        if (osSgAdminService.securityGroup(osSg.getId()) != null) {
            osSgAdminService.updateSecurityGroup(osSg);
        } else {
            osSgAdminService.createSecurityGroup(osSg);
        }
        printSecurityGroup(osSg);
    });
    print("\nSynchronizing OpenStack networks");
    print(NETWORK_FORMAT, "ID", "Name", "VNI", "Subnets");
    osClient.headers(headerMap).networking().network().list().forEach(osNet -> {
        if (osNetAdminService.network(osNet.getId()) != null) {
            osNetAdminService.updateNetwork(osNet);
        } else {
            osNetAdminService.createNetwork(osNet);
        }
        printNetwork(osNet);
    });
    print("\nSynchronizing OpenStack subnets");
    print(SUBNET_FORMAT, "ID", "Network", "CIDR");
    osClient.headers(headerMap).networking().subnet().list().forEach(osSubnet -> {
        if (osNetAdminService.subnet(osSubnet.getId()) != null) {
            osNetAdminService.updateSubnet(osSubnet);
        } else {
            osNetAdminService.createSubnet(osSubnet);
        }
        printSubnet(osSubnet, osNetAdminService);
    });
    print("\nSynchronizing OpenStack ports");
    print(PORT_FORMAT, "ID", "Network", "MAC", "Fixed IPs");
    osClient.headers(headerMap).networking().port().list().forEach(osPort -> {
        if (osNetAdminService.port(osPort.getId()) != null) {
            osNetAdminService.updatePort(osPort);
        } else {
            osNetAdminService.createPort(osPort);
        }
        printPort(osPort, osNetAdminService);
    });
    print("\nSynchronizing OpenStack routers");
    print(ROUTER_FORMAT, "ID", "Name", "External", "Internal");
    osClient.headers(headerMap).networking().router().list().forEach(osRouter -> {
        if (osRouterAdminService.router(osRouter.getId()) != null) {
            osRouterAdminService.updateRouter(osRouter);
        } else {
            osRouterAdminService.createRouter(osRouter);
        }
        // FIXME do we need to manage router interfaces separately?
        osNetAdminService.ports().stream().filter(osPort -> Objects.equals(osPort.getDeviceId(), osRouter.getId()) && Objects.equals(osPort.getDeviceOwner(), DEVICE_OWNER_IFACE)).forEach(osPort -> addRouterIface(osPort, osRouterAdminService));
        printRouter(osRouter, osNetAdminService);
    });
    print("\nSynchronizing OpenStack floating IPs");
    print(FLOATING_IP_FORMAT, "ID", "Floating IP", "Fixed IP");
    osClient.headers(headerMap).networking().floatingip().list().forEach(osFloating -> {
        if (osRouterAdminService.floatingIp(osFloating.getId()) != null) {
            osRouterAdminService.updateFloatingIp(osFloating);
        } else {
            osRouterAdminService.createFloatingIp(osFloating);
        }
        printFloatingIp(osFloating);
    });
}
Also used : OpenstackNetworkingUtil.printPort(org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.printPort) OpenstackNode(org.onosproject.openstacknode.api.OpenstackNode) OSClient(org.openstack4j.api.OSClient) ROUTER_FORMAT(org.onosproject.openstacknetworking.api.Constants.ROUTER_FORMAT) OpenstackNetworkingUtil(org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil) OpenstackNetworkingUtil.printNetwork(org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.printNetwork) OpenstackRouterAdminService(org.onosproject.openstacknetworking.api.OpenstackRouterAdminService) HashMap(java.util.HashMap) Command(org.apache.karaf.shell.api.action.Command) CONTROLLER(org.onosproject.openstacknode.api.OpenstackNode.NodeType.CONTROLLER) OpenstackSecurityGroupAdminService(org.onosproject.openstacknetworking.api.OpenstackSecurityGroupAdminService) OpenstackNetworkingUtil.printFloatingIp(org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.printFloatingIp) OpenstackNetworkingUtil.printSubnet(org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.printSubnet) NETWORK_FORMAT(org.onosproject.openstacknetworking.api.Constants.NETWORK_FORMAT) OpenstackNetworkingUtil.addRouterIface(org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.addRouterIface) OpenstackNetworkAdminService(org.onosproject.openstacknetworking.api.OpenstackNetworkAdminService) Map(java.util.Map) FLOATING_IP_FORMAT(org.onosproject.openstacknetworking.api.Constants.FLOATING_IP_FORMAT) SUBNET_FORMAT(org.onosproject.openstacknetworking.api.Constants.SUBNET_FORMAT) PORT_FORMAT(org.onosproject.openstacknetworking.api.Constants.PORT_FORMAT) OpenstackNodeService(org.onosproject.openstacknode.api.OpenstackNodeService) OpenstackNetworkingUtil.printSecurityGroup(org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.printSecurityGroup) SECURITY_GROUP_FORMAT(org.onosproject.openstacknetworking.api.Constants.SECURITY_GROUP_FORMAT) Objects(java.util.Objects) AbstractShellCommand(org.onosproject.cli.AbstractShellCommand) Service(org.apache.karaf.shell.api.action.lifecycle.Service) Optional(java.util.Optional) OpenstackNetworkingUtil.printRouter(org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.printRouter) OpenstackNodeService(org.onosproject.openstacknode.api.OpenstackNodeService) HashMap(java.util.HashMap) OpenstackRouterAdminService(org.onosproject.openstacknetworking.api.OpenstackRouterAdminService) OSClient(org.openstack4j.api.OSClient) OpenstackNode(org.onosproject.openstacknode.api.OpenstackNode) OpenstackSecurityGroupAdminService(org.onosproject.openstacknetworking.api.OpenstackSecurityGroupAdminService) OpenstackNetworkAdminService(org.onosproject.openstacknetworking.api.OpenstackNetworkAdminService)

Aggregations

HashMap (java.util.HashMap)1 Map (java.util.Map)1 Objects (java.util.Objects)1 Optional (java.util.Optional)1 Command (org.apache.karaf.shell.api.action.Command)1 Service (org.apache.karaf.shell.api.action.lifecycle.Service)1 AbstractShellCommand (org.onosproject.cli.AbstractShellCommand)1 FLOATING_IP_FORMAT (org.onosproject.openstacknetworking.api.Constants.FLOATING_IP_FORMAT)1 NETWORK_FORMAT (org.onosproject.openstacknetworking.api.Constants.NETWORK_FORMAT)1 PORT_FORMAT (org.onosproject.openstacknetworking.api.Constants.PORT_FORMAT)1 ROUTER_FORMAT (org.onosproject.openstacknetworking.api.Constants.ROUTER_FORMAT)1 SECURITY_GROUP_FORMAT (org.onosproject.openstacknetworking.api.Constants.SECURITY_GROUP_FORMAT)1 SUBNET_FORMAT (org.onosproject.openstacknetworking.api.Constants.SUBNET_FORMAT)1 OpenstackNetworkAdminService (org.onosproject.openstacknetworking.api.OpenstackNetworkAdminService)1 OpenstackRouterAdminService (org.onosproject.openstacknetworking.api.OpenstackRouterAdminService)1 OpenstackSecurityGroupAdminService (org.onosproject.openstacknetworking.api.OpenstackSecurityGroupAdminService)1 OpenstackNetworkingUtil (org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil)1 OpenstackNetworkingUtil.addRouterIface (org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.addRouterIface)1 OpenstackNetworkingUtil.printFloatingIp (org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.printFloatingIp)1 OpenstackNetworkingUtil.printNetwork (org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.printNetwork)1