Hi all,

Please find the below for the Partition changes to the Topology. So that
Topology will contain all the available partitions and the services.

Topology ----> partitions, services

Partition pojo will be as following:

public class Partition {
    private String id;
    private Scope scope;    //where Scope can be PROVIDER, REGION, ZONE,
HOST
    /**
     * key -  type of scope
     * value - name of the scope
     */
    private Map<String, String> properties = new HashMap();

   ............................
}

The CloudController interface will take Partition into consideration
instead of LocationScope. I'm going to change the CloudController API
accordingly. Please let me know, if you have any concerns with this
approach.

Thanks,
Reka



On Fri, Nov 1, 2013 at 10:47 AM, Reka Thirunavukkarasu <[email protected]>wrote:

> Hi Lahiru
>
> +1. We already have Partition related things in Topology. But we need to
> refactor it to fit the cloud partitioning concept. Will follow it up..
>
> Thanks,
> Reka
>
>
> On Fri, Nov 1, 2013 at 12:02 AM, Lahiru Sandaruwan <[email protected]>wrote:
>
>> Hi Reka,
>>
>> Shall we move LocationScope class to where Topology classes resides?(May
>> be rename as CloudPartition)
>> This is similar to cloud partition we use in Autoscaler. So we can re use
>> this.
>>
>> Also in topology we should keep the Partition as an instance of Member
>> Object for explaining member information.
>> Cloud controller can add it when member life cycle starts itself.
>> Autoscaler uses it.
>>
>>
>> Thanks.
>>
>>
>>
>> On Thu, Oct 24, 2013 at 12:07 PM, Reka Thirunavukkarasu <[email protected]>wrote:
>>
>>> Hi Lahiru,
>>>
>>> Sorry for the delay..I have made the changes to the interface as
>>> following:
>>>
>>>  /**
>>>      * Calling this method will spawn more than one ininstances in the
>>>       * specified locationScope for the particular cluster
>>>
>>>      *
>>>      * @param clusterId
>>>      *            cluster ID of the instance to be started up.
>>>      * @param noOfInstancesToBeSpawned
>>>      *            no of instances to be started up.
>>>
>>>      * @param locationScope
>>>      *            It contains the region, zone, network and host of a
>>> IaaS where
>>>      *            an instance need to be started.
>>>      * @return public IP which is associated with the newly started
>>> instance.
>>>      */
>>>      public String startInstance(String clusterId, LocationScope
>>> locationScope, int noOfInstancesToBeSpawned);
>>>
>>>
>>>   /**
>>>      * Calling this method will result in termination of an instance
>>> which is belong
>>>      * to the provided cluster Id and the location scope..
>>>      *
>>>      * @param noOfInstances
>>>      *            no of instances to be started up
>>>
>>>      * @param clusterId
>>>      *            cluster ID of the instance to be terminated.
>>>      * @param locationScope
>>>      *            It contains the region, zone, network and host of a
>>> IaaS where
>>>      *            an instance need to be terminated..
>>>      * @return whether an instance terminated successfully or not.
>>>      */
>>>     public boolean terminateInstance(String noOfInstances, String
>>> clusterId, LocationScope locationScope);
>>>
>>> Thanks,
>>> Reka
>>>
>>>
>>> On Wed, Oct 23, 2013 at 3:21 PM, Reka Thirunavukkarasu <[email protected]>wrote:
>>>
>>>> +1. Will define the interface for that and share it with you ASAP..
>>>>
>>>> Thanks,
>>>> Reka
>>>>
>>>>
>>>> On Wed, Oct 23, 2013 at 3:17 PM, Lahiru Sandaruwan <[email protected]>wrote:
>>>>
>>>>> Hi Reka,
>>>>>
>>>>> Thanks and looks good.
>>>>> Shall we also introduce an interfaces for spawning and terminating
>>>>> several instances at once?
>>>>>
>>>>> These instances might be from different partitions. i.e. spawn 1
>>>>> instance from EC2, Asia region and spawn 2 instances from EC2, Europe
>>>>> region. Same way for termination.
>>>>>
>>>>> Thanks.
>>>>>
>>>>>
>>>>> On Tue, Oct 22, 2013 at 10:48 AM, Reka Thirunavukkarasu <[email protected]
>>>>> > wrote:
>>>>>
>>>>>> Hi Lahiru and Devs,
>>>>>>
>>>>>> Please find the service methods to talk to jclouds as below. Also,
>>>>>> Please provide your suggestions to make the interface more flexible. Let 
>>>>>> me
>>>>>> explain, why we have to change the interface?
>>>>>>
>>>>>> With the new architecture, autoscaler can take more robust decision
>>>>>> from the stats, its collects from the Event Processing Engine. In the 
>>>>>> case
>>>>>> of scale down or scale up, it can start/terminate instances  within a
>>>>>> cloud, within a region, within a zone, within a network and within a 
>>>>>> host.
>>>>>> If any of them is not specified in the Locationscope, the cloud 
>>>>>> controller
>>>>>> will take the decision with the default location. Also, autoscaler can
>>>>>> terminate the unhealthy instances by providing the instance ID.
>>>>>>
>>>>>>   /**
>>>>>>      * Calling this method will result in an instance startup, which
>>>>>> is belong
>>>>>>      * to the provided Cluster ID. Also note that the instance that
>>>>>> is starting up
>>>>>>      * belongs to the group whose name is derived from its Cluster
>>>>>> ID, replacing <i>.</i>
>>>>>>      * by a hyphen (<i>-</i>).
>>>>>>      *
>>>>>>      * @param clusterId
>>>>>>      *            cluster ID of the instance to be started up.
>>>>>>      * @param locationScope
>>>>>>      *            It contains the region, zone, network and host of a
>>>>>> IaaS where
>>>>>>      *            an instance need to be started.
>>>>>>      * @return public IP which is associated with the newly started
>>>>>> instance.
>>>>>>      */
>>>>>>     public String startInstance(String clusterId, LocationScope
>>>>>> locationScope);
>>>>>>
>>>>>>     /**
>>>>>>      * Calling this method will result in termination of an instance
>>>>>> which is belong
>>>>>>      * to the provided cluster Id and the location scope..
>>>>>>      *
>>>>>>      * @param clusterId
>>>>>>      *            cluster ID of the instance to be terminated.
>>>>>>      * @param locationScope
>>>>>>      *            It contains the region, zone, network and host of a
>>>>>> IaaS where
>>>>>>      *            an instance need to be terminated..
>>>>>>      * @return whether an instance terminated successfully or not.
>>>>>>      */
>>>>>>     public boolean terminateInstance(String clusterId, LocationScope
>>>>>> locationScope);
>>>>>>
>>>>>>      /**
>>>>>>      * Calling this method will result in termination of an instance
>>>>>> which is belong
>>>>>>      * to the provided instance Id.
>>>>>>      *
>>>>>>      * @param instanceId
>>>>>>      *            instance Id of the instance to be terminated.
>>>>>>      * @return whether an instance terminated successfully or not.
>>>>>>      */
>>>>>>     public boolean terminateInstance(String instanceId);
>>>>>>
>>>>>>     /**
>>>>>>      * Calling this method will result in termination of all
>>>>>> instances belong
>>>>>>      * to the provided cluster ID.
>>>>>>      *
>>>>>>      * @param clusterId
>>>>>>      *            cluster ID of the instance to be terminated.
>>>>>>      * @return whether an instance terminated successfully or not.
>>>>>>      */
>>>>>>     public boolean terminateAllInstances(String clusterId);
>>>>>>
>>>>>>
>>>>>>     /**
>>>>>>      * Calling this method will result in termination of the lastly
>>>>>> spawned instance which is
>>>>>>      * belong to the provided clusterID.
>>>>>>      *
>>>>>>      * @param clusterId
>>>>>>      *            service domain of the instance to be terminated.
>>>>>>      * @return whether the termination is successful or not.
>>>>>>      */
>>>>>>     public boolean terminateLastlySpawnedInstance(String clusterId);
>>>>>>
>>>>>>
>>>>>> The LocationScope can be found as below:
>>>>>>
>>>>>> public class LocationScope {
>>>>>>     private String zone;
>>>>>>     private String network;
>>>>>>     private String host;
>>>>>>     private String region;
>>>>>>     private String cloud;
>>>>>> ............
>>>>>> }
>>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>> Reka
>>>>>>
>>>>>>
>>>>>> On Tue, Oct 22, 2013 at 8:09 AM, Lahiru Sandaruwan 
>>>>>> <[email protected]>wrote:
>>>>>>
>>>>>>> Hi Reka,
>>>>>>>
>>>>>>> What will be the $subject? Just want to get an idea what kind of
>>>>>>> service methods they would be.
>>>>>>>
>>>>>>> Thanks.
>>>>>>>
>>>>>>> --
>>>>>>> --
>>>>>>> Lahiru Sandaruwan
>>>>>>> Software Engineer,
>>>>>>> Platform Technologies,
>>>>>>> WSO2 Inc., http://wso2.com
>>>>>>> lean.enterprise.middleware
>>>>>>>
>>>>>>> email: [email protected] cell: (+94) 773 325 954
>>>>>>> blog: http://lahiruwrites.blogspot.com/
>>>>>>> twitter: http://twitter.com/lahirus
>>>>>>> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Reka Thirunavukkarasu
>>>>>> Software Engineer,
>>>>>> WSO2, Inc.:http://wso2.com,
>>>>>> Mobile: +94776442007
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> --
>>>>> Lahiru Sandaruwan
>>>>> Software Engineer,
>>>>> Platform Technologies,
>>>>> WSO2 Inc., http://wso2.com
>>>>> lean.enterprise.middleware
>>>>>
>>>>> email: [email protected] cell: (+94) 773 325 954
>>>>> blog: http://lahiruwrites.blogspot.com/
>>>>> twitter: http://twitter.com/lahirus
>>>>> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Reka Thirunavukkarasu
>>>> Software Engineer,
>>>> WSO2, Inc.:http://wso2.com,
>>>> Mobile: +94776442007
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Reka Thirunavukkarasu
>>> Software Engineer,
>>> WSO2, Inc.:http://wso2.com,
>>> Mobile: +94776442007
>>>
>>>
>>>
>>
>>
>> --
>> --
>> Lahiru Sandaruwan
>> Software Engineer,
>> Platform Technologies,
>> WSO2 Inc., http://wso2.com
>> lean.enterprise.middleware
>>
>> email: [email protected] cell: (+94) 773 325 954
>> blog: http://lahiruwrites.blogspot.com/
>> twitter: http://twitter.com/lahirus
>> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>>
>>
>
>
> --
> Reka Thirunavukkarasu
> Software Engineer,
> WSO2, Inc.:http://wso2.com,
> Mobile: +94776442007
>
>
>


-- 
Reka Thirunavukkarasu
Software Engineer,
WSO2, Inc.:http://wso2.com,
Mobile: +94776442007

Reply via email to