Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2014 Open Networking Laboratory
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.onosproject.cli.net;
 
 
 import java.util.List;

Installs point-to-point connectivity intents.
 
 @Command(scope = "onos", name = "push-random-intents",
          description = "Installs random intents to test throughput")
 public class RandomIntentCommand extends AbstractShellCommand {
 
     @Argument(index = 0, name = "count",
               description = "Number of intents to push",
               required = true, multiValued = false)
     String countString = null;
 
     private IntentService service;
     private HostService hostService;
     private int count;
 
     @Override
     protected void execute() {
          = get(IntentService.class);
          = get(HostService.class);
 
          = Integer.parseInt();
 
         if ( > 0) {
             Collection<Intentintents = generateIntents();
             submitIntents(intents);
         } else {
             withdrawIntents();
         }
     }
 
     private Collection<IntentgenerateIntents() {
         TrafficSelector selector = DefaultTrafficSelector.emptySelector();
         TrafficTreatment treatment = DefaultTrafficTreatment.emptyTreatment();
 
         List<Hosthosts = Lists.newArrayList(.getHosts());
         List<IntentfullMesh = Lists.newArrayList();
         for (int i = 0; i < hosts.size(); i++) {
             for (int j = i + 1; j < hosts.size(); j++) {
                 fullMesh.add(new HostToHostIntent(appId(),
                                                   hosts.get(i).id(),
                                                   hosts.get(j).id(),
                                                   selectortreatment));
             }
         }
         Collections.shuffle(fullMesh);
         return fullMesh.subList(0, Math.min(fullMesh.size()));
     }
 
     private void submitIntents(Collection<Intentintents) {
         for (Intent intent : intents) {
             .submit(intent);
         }
         print("Submitted %d host to host intents."intents.size());
     }
 
     private void withdrawIntents() {
         for (Intent intent : .getIntents()) {
             if (appId().equals(intent.appId())) {
                 .withdraw(intent);
             }
         }
        print("Withdrew all randomly generated host to host intents.");
    }
    @Override
    protected ApplicationId appId() {
        return get(CoreService.class).registerApplication("org.onosproject.cli-random");
    }
New to GrepCode? Check out our FAQ X