View Javadoc

1   /**
2    *
3    * Copyright (C) 2011 Cloud Conscious, LLC. <info@cloudconscious.com>
4    *
5    * ====================================================================
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * 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, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   * ====================================================================
18   */
19  package org.jclouds.compute.domain;
20  
21  import java.util.Set;
22  
23  import javax.annotation.Nullable;
24  
25  import org.jclouds.compute.domain.internal.NodeMetadataImpl;
26  import org.jclouds.domain.Credentials;
27  
28  import com.google.inject.ImplementedBy;
29  
30  /**
31   * @author Adrian Cole
32   * @author Ivan Meredith
33   */
34  @ImplementedBy(NodeMetadataImpl.class)
35  public interface NodeMetadata extends ComputeMetadata {
36  
37     /**
38      * Tag used for all resources that belong to the same logical group. run, destroy commands are
39      * scoped to group.
40      * 
41      * @return group for this node, or null, if not a part of a group
42      * 
43      */
44     String getGroup();
45  
46     /**
47      * @see #getGroup
48      */
49     @Deprecated
50     String getTag();
51  
52     /**
53      * 
54      * The hardware this node is running, if possible to determine.
55      */
56     @Nullable
57     Hardware getHardware();
58  
59     /**
60      * 
61      * The id of the image this node was created from, if possible to correlate.
62      */
63     @Nullable
64     String getImageId();
65  
66     /**
67      * 
68      * The operating system this node is running, if possible to determine.
69      */
70     @Nullable
71     OperatingSystem getOperatingSystem();
72  
73     /**
74      * Current State of the node
75      */
76     NodeState getState();
77  
78     /**
79      * @return the TCP port used for terminal connections. Generally, this is port 22 for ssh.
80      */
81     int getLoginPort();
82  
83     /**
84      * secures access to root with a password. This password is required to access either the console
85      * or run sudo as root.
86      * <p/>
87      * ex. {@code echo 'password' |sudo -S command}
88      * 
89      * @return root or console password, if configured, or null.
90      */
91     @Nullable
92     String getAdminPassword();
93  
94     /**
95      * If possible, these are returned upon all detail requests. However, it is often the case that
96      * credentials are only available at "run" time.
97      */
98     Credentials getCredentials();
99  
100    /**
101     * All public IP addresses, potentially including shared ips.
102     */
103    Set<String> getPublicAddresses();
104 
105    /**
106     * All private IP addresses.
107     */
108    Set<String> getPrivateAddresses();
109 
110 }