Java Code Examples for org.onosproject.net.group.GroupService#removeGroup()

The following examples show how to use org.onosproject.net.group.GroupService#removeGroup() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: GroupsWebResource.java    From onos with Apache License 2.0 5 votes vote down vote up
/**
 * Removes the specified group.
 *
 * @param deviceId  device identifier
 * @param appCookie application cookie to be used for lookup
 * @return 204 NO CONTENT
 */
@DELETE
@Path("{deviceId}/{appCookie}")
public Response deleteGroupByDeviceIdAndAppCookie(@PathParam("deviceId") String deviceId,
                                                  @PathParam("appCookie") String appCookie) {
    GroupService groupService = get(GroupService.class);
    DeviceId deviceIdInstance = DeviceId.deviceId(deviceId);

    final GroupKey appCookieInstance = createKey(appCookie);

    groupService.removeGroup(deviceIdInstance, appCookieInstance, null);
    return Response.noContent().build();
}
 
Example 2
Source File: K8sPurgeRulesCommand.java    From onos with Apache License 2.0 4 votes vote down vote up
@Override
protected void doExecute() {
    FlowRuleService flowRuleService = get(FlowRuleService.class);
    GroupService groupService = get(GroupService.class);
    CoreService coreService = get(CoreService.class);
    K8sNodeService k8sNodeService = get(K8sNodeService.class);
    ApplicationId appId = coreService.getAppId(K8S_NETWORKING_APP_ID);

    if (appId == null) {
        error("Failed to purge kubernetes networking flow rules.");
        return;
    }

    flowRuleService.removeFlowRulesById(appId);
    print("Successfully purged flow rules installed by kubernetes networking app.");

    boolean result = true;
    long timeoutExpiredMs = System.currentTimeMillis() + TIMEOUT_MS;

    // we make sure all flow rules are removed from the store
    while (stream(flowRuleService.getFlowEntriesById(appId)
            .spliterator(), false).count() > 0) {

        long  waitMs = timeoutExpiredMs - System.currentTimeMillis();

        try {
            sleep(SLEEP_MS);
        } catch (InterruptedException e) {
            log.error("Exception caused during rule purging...");
        }

        if (stream(flowRuleService.getFlowEntriesById(appId)
                .spliterator(), false).count() == 0) {
            break;
        } else {
            flowRuleService.removeFlowRulesById(appId);
            print("Failed to purging flow rules, retrying rule purging...");
        }

        if (waitMs <= 0) {
            result = false;
            break;
        }
    }

    for (K8sNode node : k8sNodeService.completeNodes()) {
        for (Group group : groupService.getGroups(node.intgBridge(), appId)) {
            groupService.removeGroup(node.intgBridge(), group.appCookie(), appId);
        }
    }

    if (result) {
        print("Successfully purged flow rules!");
    } else {
        error("Failed to purge flow rules.");
    }
}