Just to brief on other two;

IaasProvider - via this your implementation get access to all the
configurations that you've made on the IaaS.
NodeMetadata - representation of a running instance/node in jclouds


On Sat, Feb 8, 2014 at 1:09 PM, Nirmal Fernando <[email protected]>wrote:

> Well those were already there. You could find a separate thread on
> PartitionValidator.
>
>
> On Sat, Feb 8, 2014 at 12:57 PM, Isuru Perera <[email protected]> wrote:
>
>> Could you also explain about related classes? For example:  IaasProvider,
>> PartitionValidator, NodeMetadata
>>
>>
>> On Sat, Feb 8, 2014 at 12:45 PM, Nirmal Fernando 
>> <[email protected]>wrote:
>>
>>> Related jira: https://issues.apache.org/jira/browse/STRATOS-418
>>>
>>>
>>> On Sat, Feb 8, 2014 at 12:44 PM, Nirmal Fernando <[email protected]
>>> > wrote:
>>>
>>>> Hi All,
>>>>
>>>> It's time to refactor the definition a bit and following is the
>>>> re-factored version [1].
>>>>
>>>> Any thoughts?
>>>>
>>>> [1]
>>>>
>>>> /**
>>>>  * All IaaSes that are going to support by Cloud Controller, should
>>>> extend this abstract class.
>>>>  */
>>>> public abstract class Iaas {
>>>>     /**
>>>>      * Reference to the corresponding {@link IaasProvider}
>>>>      */
>>>>     private IaasProvider iaasProvider;
>>>>
>>>>     public Iaas(IaasProvider iaasProvider) {
>>>>         this.setIaasProvider(iaasProvider);
>>>>     }
>>>>
>>>>     public IaasProvider getIaasProvider() {
>>>>         return iaasProvider;
>>>>     }
>>>>
>>>>     public void setIaasProvider(IaasProvider iaasProvider) {
>>>>         this.iaasProvider = iaasProvider;
>>>>     }
>>>>
>>>>     /**
>>>>      * This should build the {@link ComputeService} object and the
>>>> {@link Template} object,
>>>>      * using the information from {@link IaasProvider} and should set
>>>> the built
>>>>      * {@link ComputeService} object in the {@link
>>>> IaasProvider#setComputeService(ComputeService)}
>>>>      * and also should set the built {@link Template} object in the
>>>>      * {@link IaasProvider#setTemplate(Template)}.
>>>>      */
>>>>     public abstract void buildComputeServiceAndTemplate();
>>>>
>>>>     /**
>>>>      * This method provides a way to set payload that can be obtained
>>>> from {@link IaasProvider#getPayload()}
>>>>      * in the {@link Template} of this IaaS.
>>>>      */
>>>>     public abstract void setDynamicPayload();
>>>>
>>>>     /**
>>>>      * This will obtain an IP address from the allocated list and
>>>> associate that IP with this node.
>>>>      * @param node Node to be associated with an IP.
>>>>      * @return associated public IP.
>>>>      */
>>>>     public abstract String associateAddress(NodeMetadata node);
>>>>
>>>>     /**
>>>>      * This will deallocate/release the given IP address back to pool.
>>>>      * @param iaasInfo corresponding {@link IaasProvider}
>>>>      * @param ip public IP address to be released.
>>>>      */
>>>>     public abstract void releaseAddress(String ip);
>>>>
>>>>     /**
>>>>      * This method should create a Key Pair corresponds to a given
>>>> public key in the respective region having the name given.
>>>>      * Also should override the value of the key pair in the {@link
>>>> Template} of this IaaS.
>>>>      * @param region region that the key pair will get created.
>>>>      * @param keyPairName name of the key pair. NOTE: Jclouds adds a
>>>> prefix : <code>jclouds#</code>
>>>>      * @param publicKey public key, from which the key pair will be
>>>> created.
>>>>      * @return whether the key pair creation is successful or not.
>>>>      */
>>>>     public abstract boolean createKeyPairFromPublicKey(String region,
>>>> String keyPairName, String publicKey);
>>>>
>>>>     /**
>>>>      * Validate a given region name against a particular IaaS.
>>>>      * If a particular IaaS doesn't have a concept called region, it
>>>> can simply throw {@link InvalidRegionException}.
>>>>      * @param region name of the region.
>>>>      * @return whether the region is valid.
>>>>      * @throws InvalidRegionException if the region is invalid.
>>>>      */
>>>>     public abstract boolean isValidRegion(String region) throws
>>>> InvalidRegionException;
>>>>
>>>>     /**
>>>>      * Validate a given zone name against a particular region in an
>>>> IaaS.
>>>>      * If a particular IaaS doesn't have a concept called zone, it can
>>>> simply throw {@link InvalidZoneException}.
>>>>      * @param region region of the IaaS that the zone belongs to.
>>>>      * @param zone
>>>>      * @return whether the zone is valid in the given region or not.
>>>>      * @throws InvalidZoneException if the zone is invalid in a given
>>>> region.
>>>>      */
>>>>     public abstract boolean isValidZone(String region, String zone)
>>>> throws InvalidZoneException;
>>>>
>>>>     /**
>>>>      * Validate a given host id against a particular zone in an IaaS.
>>>>      * If a particular IaaS doesn't have a concept called hosts, it can
>>>> simply throw {@link InvalidHostException}.
>>>>      * @param zone zone of the IaaS that the host belongs to.
>>>>      * @param host
>>>>      * @return whether the host is valid in the given zone or not.
>>>>      * @throws InvalidHostException if the host is invalid in a given
>>>> zone.
>>>>      */
>>>>     public abstract boolean isValidHost(String zone, String host)
>>>> throws InvalidHostException;
>>>>
>>>>     /**
>>>>      * provides the {@link PartitionValidator} corresponds to this
>>>> particular IaaS.
>>>>      * @return {@link PartitionValidator}
>>>>      */
>>>>     public abstract PartitionValidator getPartitionValidator();
>>>>
>>>>     /**
>>>>      * Builds only the jclouds {@link Template}
>>>>      */
>>>>     public abstract void buildTemplate();
>>>>
>>>> }
>>>>
>>>>
>>>> --
>>>> Best Regards,
>>>> Nirmal
>>>>
>>>> Nirmal Fernando.
>>>> PPMC Member & Committer of Apache Stratos,
>>>> Senior Software Engineer, WSO2 Inc.
>>>>
>>>> Blog: http://nirmalfdo.blogspot.com/
>>>>
>>>
>>>
>>>
>>> --
>>> Best Regards,
>>> Nirmal
>>>
>>> Nirmal Fernando.
>>> PPMC Member & Committer of Apache Stratos,
>>> Senior Software Engineer, WSO2 Inc.
>>>
>>> Blog: http://nirmalfdo.blogspot.com/
>>>
>>
>>
>>
>> --
>> Isuru Perera
>> Senior Software Engineer | WSO2, Inc. | http://wso2.com/
>> Lean . Enterprise . Middleware
>>
>> about.me/chrishantha
>>
>
>
>
> --
> Best Regards,
> Nirmal
>
> Nirmal Fernando.
> PPMC Member & Committer of Apache Stratos,
> Senior Software Engineer, WSO2 Inc.
>
> Blog: http://nirmalfdo.blogspot.com/
>



-- 
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Reply via email to