Yes, that makes perfect sense.

Also, can somebody confirm if the properties at this point are supported as per 
4.0.0?

From: Lahiru Sandaruwan [mailto:lahi...@wso2.com]
Sent: Wednesday, March 25, 2015 6:23 AM
To: dev
Subject: Re: Persistence Volume Mapping support

Yes, Agree wit Udara,

In case #1 and #3, we might need to mandate the size.

Thanks.

On Wed, Mar 25, 2015 at 11:45 AM, Udara Liyanage 
<ud...@wso2.com<mailto:ud...@wso2.com>> wrote:
Hi Imesh,

There are three scenarios. I will explain them

1) You have a volume snapshot and you want to created volumes from that 
snapshot. In this case you have to specify the snapshotId

  {
                                        
"snapshotId":"5659ad7b-2eab-4b1a-8738-40df2b32bfcb",
                                        "device": "/dev/vdc",
"mappingPath": "/home/ubuntu/sdc",
                                        "size": "5",
                                        "removeOnTermination": "true"
                                }

Here Statos will create a volume from the given snaphost with the given size. 
Here user has to be carefull to give a size equal or larger than the snapshot 
size, otherwise volume creation is falied since you can not create volumes 
smaller than the snaphost.

2) You have a precreated volume which you want to attach for the instance.

{
                                        
"volumeId":"5659ad7b-2eab-4b1a-8738-40df2b32bfcb",
                                        "device": "/dev/vdc",
"mappingPath": "/home/ubuntu/sdc",
                                        "removeOnTermination": "true"
                                }

Here Stratos will not create any volume, rather it attach the given volume. 
Here you don't need to provide the size.

3) User want to create a raw volume

{

                                        "device": "/dev/vdc",
"mappingPath": "/home/ubuntu/sdc",
"size": "5",
                                        "removeOnTermination": "true"
                                }

In this scenario a raw volume will be created with the given size.


@Imesh this was the same implementation which was coming from 400.

On Wed, Mar 25, 2015 at 11:36 AM, Imesh Gunaratne 
<im...@apache.org<mailto:im...@apache.org>> wrote:
Hi Shaheed,

I think the "size" parameter was there in 4.0.0 release, please see [1]. 
However I agree that it should not raise a NPE if it was not given rather a 
validation should be done.

Udara: Can you please confirm whether we have done any changes to the 
persistence definition in 4.1.0?

[1] 
https://cwiki.apache.org/confluence/display/STRATOS/4.0.0+Persistence+Volume+Mapping

Thanks

On Wed, Mar 25, 2015 at 12:10 AM, Shaheedur Haque (shahhaqu) 
<shahh...@cisco.com<mailto:shahh...@cisco.com>> wrote:
Hi,

I finally progressed our other infrastructure to the point where I can usefully 
test the persistence support. At first, I was confused as to why the volume was 
not being attached, then I realized I had put the “persistence” JSON in the 
wrong place. However, when I fixed *that*, I start getting 500/Server Internal 
Error on Application setup.

The JSON structure I have looks like this:

        "application": {
            "applicationId": "di-000-001",
            "application_template_id": "cisco-qvpc-cf-01-0",
            "multiTenant": false,
            "components": {
                "cartridges": [
                    {
                        "cartridgeMin": 1,
                        "cartridgeMax": 10000000,
                        "type": "cisco-qvpc-cf-01-0",
                        "subscribableInfo": {
                            "deploymentPolicy": "static-1",
                            "artifactRepository": {
                                "repoUrl": 
"http://octl.qmog.cisco.com:10080/git/default.git";,
                                "repoUsername": "user",
                                "privateRepo": true,
                                "repoPassword": "password"
                            },
                            "autoscalingPolicy": "economyPolicy",
                            "alias": "cisco-qvpc-cf-01-0",
                            "property": [
                                {
                                    "name": "payload_parameter.VOLUME_INFO",
                                    "value": 
"di-000-001:fcd8bc58-844b-4370-816e-7dd6b78ed22a"
                                }
                            ],
                            "persistence": [
                                {
                                    "volume": [
                                        {
                                            "device": "/dev/vdb",
                                            "removeOnTermination": "false",
                                            "volumeId": 
"fcd8bc58-844b-4370-816e-7dd6b78ed22a"
                                        }
                                    ],
                                    "isRequired": "true"
                                }
                            ]
                        }
                    }
                ]
            },
            "alias": "di-000-001"
        },

Where the “property” list and “persistence” list in red are the new additions. 
The actual exception is this:

TID: [0] [STRATOS] [2015-03-24 18:30:02,497] ERROR 
{org.apache.stratos.rest.endpoint.handlers.CustomThrowableExceptionMapper} -  
Internal server error
java.lang.NumberFormatException: null
        at java.lang.Integer.parseInt(Integer.java:454)
        at java.lang.Integer.parseInt(Integer.java:527)
        at 
org.apache.stratos.rest.endpoint.util.converter.ObjectConverter.convertVolumeToStubVolume(ObjectConverter.java:1480)
        at 
org.apache.stratos.rest.endpoint.util.converter.ObjectConverter.convertSubscribableInfo(ObjectConverter.java:1458)
        at 
org.apache.stratos.rest.endpoint.util.converter.ObjectConverter.convertCartridgeReferenceBeansToStubCartridgeContexts(ObjectConverter.java:1420)
        at 
org.apache.stratos.rest.endpoint.util.converter.ObjectConverter.convertApplicationDefinitionToStubApplicationContext(ObjectConverter.java:1226)
        at 
org.apache.stratos.rest.endpoint.api.StratosApiV41Utils.addApplication(StratosApiV41Utils.java:1074)
        at 
org.apache.stratos.rest.endpoint.api.StratosApiV41.addApplication(StratosApiV41.java:600)

And that turns out to be this line:

            volumeContext.setSize(Integer.parseInt(volumeBean.getSize()));

which is maybe not surprising since I have not specified a size. But then 
again, I never used to specify a size. So why has this now become seemingly a 
required value? Please can you fix this, and otherwise revert any changes to 
the programming model that are not strictly required.

If any changes *are* required, please explain them as reverse engineering this 
stuff is just painful.

While we are on this subject, please can somebody confirm that the “property” 
list as well as the “persistence” list is supported? I’d prefer to get this 
stuff sorted in one pass if at all possible ☺.

Thanks, Shaheed


From: Udara Liyanage [mailto:ud...@wso2.com<mailto:ud...@wso2.com>]
Sent: Tuesday, March 24, 2015 3:35 PM
To: dev
Subject: Re: Persistence Volume Mapping support

Hi,

I tested below scenarios and they are working

Create a volume with a given snapshot
Create a raw volume
Attach an existing volume without creating a new volume
Multiple volumes with above three combinations

Then I will test the mounting extension script

On Tue, Mar 24, 2015 at 11:47 AM, Lahiru Sandaruwan 
<lahi...@wso2.com<mailto:lahi...@wso2.com>> wrote:
Great.

Thanks.

On Tue, Mar 24, 2015 at 10:16 AM, Udara Liyanage 
<ud...@wso2.com<mailto:ud...@wso2.com>> wrote:
Hi,

I think I found the cause for the error. Region value is appended for the 
instance ID at the time of attaching
RegionOne/1a264759-a7b4-4ab8-b6f6-a6b0624cea79

When I remove the region from the instance ID at debugging. It worked for me.
I will fix it.

On Tue, Mar 24, 2015 at 10:00 AM, Udara Liyanage 
<ud...@wso2.com<mailto:ud...@wso2.com>> wrote:
Hi,

I just added a main class inside cc component and start locally. It should pick 
the current jclouds version ?
However I faced the same issue when I tried with stratos at volume attachment. 
I will have a look.

On Tue, Mar 24, 2015 at 9:00 AM, Lahiru Sandaruwan 
<lahi...@wso2.com<mailto:lahi...@wso2.com>> wrote:
Your client is using the same Jclouds version, that we do?


On Tue, Mar 24, 2015 at 8:27 AM, Udara Liyanage 
<ud...@wso2.com<mailto:ud...@wso2.com>> wrote:

Hi Lahiru,

I didn't try with Stratos. I wrote a client to create and attach volumes.
On 24 Mar 2015 07:31, "Lahiru Sandaruwan" 
<lahi...@wso2.com<mailto:lahi...@wso2.com>> wrote:


On Tue, Mar 24, 2015 at 7:01 AM, Udara Liyanage 
<ud...@wso2.com<mailto:ud...@wso2.com>> wrote:

Hi Lahiru,

I could create a new volume and create a new volume from a snapshot and attach 
the volume.

Great. So the attaching the volume was successful?  Can you share the json you 
used?

Thanks.

I will do further testing today and keep the thread updated.



--
--
Lahiru Sandaruwan
Committer and PMC member, Apache Stratos,
Senior Software Engineer,
WSO2 Inc., http://wso2.com
lean.enterprise.middleware

phone: +94773325954<tel:%2B94773325954>
email: lahi...@wso2.com<mailto:lahi...@wso2.com> blog: 
http://lahiruwrites.blogspot.com/
linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146




--
--
Lahiru Sandaruwan
Committer and PMC member, Apache Stratos,
Senior Software Engineer,
WSO2 Inc., http://wso2.com
lean.enterprise.middleware

phone: +94773325954<tel:%2B94773325954>
email: lahi...@wso2.com<mailto:lahi...@wso2.com> blog: 
http://lahiruwrites.blogspot.com/
linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146




--

Udara Liyanage
Software Engineer
WSO2, Inc.: http://wso2.com<http://wso2.com/>
lean. enterprise. middleware
web: http://udaraliyanage.wordpress.com
phone: +94 71 443 6897<tel:%2B94%2071%20443%206897>



--

Udara Liyanage
Software Engineer
WSO2, Inc.: http://wso2.com<http://wso2.com/>
lean. enterprise. middleware
web: http://udaraliyanage.wordpress.com
phone: +94 71 443 6897<tel:%2B94%2071%20443%206897>



--
--
Lahiru Sandaruwan
Committer and PMC member, Apache Stratos,
Senior Software Engineer,
WSO2 Inc., http://wso2.com
lean.enterprise.middleware

phone: +94773325954<tel:%2B94773325954>
email: lahi...@wso2.com<mailto:lahi...@wso2.com> blog: 
http://lahiruwrites.blogspot.com/
linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146




--

Udara Liyanage
Software Engineer
WSO2, Inc.: http://wso2.com<http://wso2.com/>
lean. enterprise. middleware
web: http://udaraliyanage.wordpress.com
phone: +94 71 443 6897<tel:%2B94%2071%20443%206897>



--
Imesh Gunaratne

Technical Lead, WSO2
Committer & PMC Member, Apache Stratos



--

Udara Liyanage
Software Engineer
WSO2, Inc.: http://wso2.com<http://wso2.com/>
lean. enterprise. middleware
web: http://udaraliyanage.wordpress.com
phone: +94 71 443 6897



--
--
Lahiru Sandaruwan
Committer and PMC member, Apache Stratos,
Senior Software Engineer,
WSO2 Inc., http://wso2.com
lean.enterprise.middleware

phone: +94773325954
email: lahi...@wso2.com<mailto:lahi...@wso2.com> blog: 
http://lahiruwrites.blogspot.com/
linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146

Reply via email to