Here the nodes will be represented using NodeMetaData having standard
attributes which hold true for all the cloud providers. What if I wish to
access say aws-ec2 specific attributes without compromising on the generic
code which hold true across vendors?
If you need to get access at AWS-specific APIs or classes, you can
"unwrap" [1] the context to access the underlying API [2]:
AWSEC2Api awsApi = context.unwrapApi(AWSEC2Api.class);
If you only use the API in places where provider-specific logic is
required, the remainder of the code should remain generic. See this
recent thread [3] for an example of testing for a specific backing
provider before unwrapping.
ap
[1]
http://javadocs.jclouds.cloudbees.net/org/jclouds/View.html#unwrapApi(java.lang.Class)
[2]
https://github.com/jclouds/jclouds/blob/master/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2Api.java
[3] http://apache.markmail.org/thread/g24ahltkamzf6bpp