EMMA Coverage Report (generated Mon Oct 17 05:41:20 EDT 2011)
[all classes][org.jclouds.trmk.vcloud_0_8.compute]

COVERAGE SUMMARY FOR SOURCE FILE [TerremarkVCloudComputeService.java]

nameclass, %method, %block, %line, %
TerremarkVCloudComputeService.java0%   (0/1)0%   (0/3)0%   (0/45)0%   (0/7)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class TerremarkVCloudComputeService0%   (0/1)0%   (0/3)0%   (0/45)0%   (0/7)
TerremarkVCloudComputeService (ComputeServiceContext, Map, Supplier, Supplier... 0%   (0/1)0%   (0/29)0%   (0/3)
destroyNodesMatching (Predicate): Set 0%   (0/1)0%   (0/10)0%   (0/3)
templateOptions (): TerremarkVCloudTemplateOptions 0%   (0/1)0%   (0/6)0%   (0/1)

1/**
2 * Licensed to jclouds, Inc. (jclouds) under one or more
3 * contributor license agreements.  See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership.  jclouds licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License.  You may obtain a copy of the License at
9 *
10 *   http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied.  See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19package org.jclouds.trmk.vcloud_0_8.compute;
20 
21import java.util.Map;
22import java.util.Set;
23import java.util.concurrent.ConcurrentMap;
24import java.util.concurrent.ExecutorService;
25 
26import javax.inject.Inject;
27import javax.inject.Named;
28import javax.inject.Provider;
29import javax.inject.Singleton;
30 
31import org.jclouds.Constants;
32import org.jclouds.collect.Memoized;
33import org.jclouds.compute.ComputeServiceContext;
34import org.jclouds.compute.callables.RunScriptOnNode;
35import org.jclouds.compute.domain.Hardware;
36import org.jclouds.compute.domain.Image;
37import org.jclouds.compute.domain.NodeMetadata;
38import org.jclouds.compute.domain.TemplateBuilder;
39import org.jclouds.compute.internal.BaseComputeService;
40import org.jclouds.compute.internal.PersistNodeCredentials;
41import org.jclouds.compute.options.TemplateOptions;
42import org.jclouds.compute.reference.ComputeServiceConstants.Timeouts;
43import org.jclouds.compute.strategy.CreateNodesInGroupThenAddToSet;
44import org.jclouds.compute.strategy.DestroyNodeStrategy;
45import org.jclouds.compute.strategy.GetNodeMetadataStrategy;
46import org.jclouds.compute.strategy.InitializeRunScriptOnNodeOrPlaceInBadMap;
47import org.jclouds.compute.strategy.ListNodesStrategy;
48import org.jclouds.compute.strategy.RebootNodeStrategy;
49import org.jclouds.compute.strategy.ResumeNodeStrategy;
50import org.jclouds.compute.strategy.SuspendNodeStrategy;
51import org.jclouds.domain.Credentials;
52import org.jclouds.domain.Location;
53import org.jclouds.scriptbuilder.functions.InitAdminAccess;
54import org.jclouds.trmk.vcloud_0_8.compute.domain.KeyPairCredentials;
55import org.jclouds.trmk.vcloud_0_8.compute.domain.OrgAndName;
56import org.jclouds.trmk.vcloud_0_8.compute.functions.NodeMetadataToOrgAndName;
57import org.jclouds.trmk.vcloud_0_8.compute.options.TerremarkVCloudTemplateOptions;
58import org.jclouds.trmk.vcloud_0_8.compute.strategy.CleanupOrphanKeys;
59 
60import com.google.common.base.Predicate;
61import com.google.common.base.Supplier;
62 
63/**
64 * @author Adrian Cole
65 */
66@Singleton
67public class TerremarkVCloudComputeService extends BaseComputeService {
68   private final CleanupOrphanKeys cleanupOrphanKeys;
69 
70   @Inject
71   protected TerremarkVCloudComputeService(ComputeServiceContext context, Map<String, Credentials> credentialStore,
72         @Memoized Supplier<Set<? extends Image>> images, @Memoized Supplier<Set<? extends Hardware>> sizes,
73         @Memoized Supplier<Set<? extends Location>> locations, ListNodesStrategy listNodesStrategy,
74         GetNodeMetadataStrategy getNodeMetadataStrategy, CreateNodesInGroupThenAddToSet runNodesAndAddToSetStrategy,
75         RebootNodeStrategy rebootNodeStrategy, DestroyNodeStrategy destroyNodeStrategy,
76         ResumeNodeStrategy resumeNodeStrategy, SuspendNodeStrategy suspendNodeStrategy,
77         Provider<TemplateBuilder> templateBuilderProvider, Provider<TemplateOptions> templateOptionsProvider,
78         @Named("NODE_RUNNING") Predicate<NodeMetadata> nodeRunning,
79         @Named("NODE_TERMINATED") Predicate<NodeMetadata> nodeTerminated,
80         @Named("NODE_SUSPENDED") Predicate<NodeMetadata> nodeSuspended,
81         InitializeRunScriptOnNodeOrPlaceInBadMap.Factory initScriptRunnerFactory,
82         RunScriptOnNode.Factory runScriptOnNodeFactory, InitAdminAccess initAdminAccess,
83         PersistNodeCredentials persistNodeCredentials, Timeouts timeouts,
84         @Named(Constants.PROPERTY_USER_THREADS) ExecutorService executor, CleanupOrphanKeys cleanupOrphanKeys,
85         ConcurrentMap<OrgAndName, KeyPairCredentials> credentialsMap, NodeMetadataToOrgAndName nodeToOrgAndName) {
86      super(context, credentialStore, images, sizes, locations, listNodesStrategy, getNodeMetadataStrategy,
87            runNodesAndAddToSetStrategy, rebootNodeStrategy, destroyNodeStrategy, resumeNodeStrategy,
88            suspendNodeStrategy, templateBuilderProvider, templateOptionsProvider, nodeRunning, nodeTerminated,
89            nodeSuspended, initScriptRunnerFactory, initAdminAccess, runScriptOnNodeFactory, persistNodeCredentials,
90            timeouts, executor);
91      this.cleanupOrphanKeys = cleanupOrphanKeys;
92   }
93 
94   /**
95    * like {@link BaseComputeService#destroyNodesMatching} except that this will
96    * clean implicit keypairs.
97    */
98   @Override
99   public Set<? extends NodeMetadata> destroyNodesMatching(Predicate<NodeMetadata> filter) {
100      Set<? extends NodeMetadata> deadOnes = super.destroyNodesMatching(filter);
101      cleanupOrphanKeys.execute(deadOnes);
102      return deadOnes;
103   }
104 
105   /**
106    * returns template options, except of type
107    * {@link TerremarkVCloudTemplateOptions}.
108    */
109   @Override
110   public TerremarkVCloudTemplateOptions templateOptions() {
111      return TerremarkVCloudTemplateOptions.class.cast(super.templateOptions());
112   }
113 
114}

[all classes][org.jclouds.trmk.vcloud_0_8.compute]
EMMA 2.0.5312 (C) Vladimir Roubtsov