protected Object doExecute()

in commands/src/main/java/org/jclouds/karaf/commands/compute/GroupDestroyCommand.java [40:72]


   protected Object doExecute() throws Exception {
      ComputeService service = getComputeService();
      if (service == null) {
         System.out.println("Failed to find or create a compute service.");
         return null;
      }
      Set<NodeMetadata> aggregatedMetadata = new LinkedHashSet<NodeMetadata>();

      for (final String group : groups) {
         Set<? extends NodeMetadata> nodeMetadatas = service.destroyNodesMatching(new Predicate<NodeMetadata>() {
            @Override
            public boolean apply(@Nullable NodeMetadata input) {
               return input.getGroup().contains(group);
            }
         });

         for (NodeMetadata node : nodeMetadatas) {
           for (String cacheKey : ServiceHelper.findCacheKeysForService(service)) {
            cacheProvider.getProviderCacheForType(Constants.ACTIVE_NODE_CACHE).remove(cacheKey, node.getId());
            cacheProvider.getProviderCacheForType(Constants.INACTIVE_NODE_CACHE).remove(cacheKey, node.getId());
            cacheProvider.getProviderCacheForType(Constants.SUSPENDED_NODE_CACHE).remove(cacheKey, node.getId());
            aggregatedMetadata.add(node);
           }
         }
      }

      if (!aggregatedMetadata.isEmpty()) {
         System.out.println("Destroyed nodes:");
         printNodes(service, aggregatedMetadata,  System.out);
      }

      return null;
   }