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 <[email protected]> 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) <
> [email protected]> 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 J.
>>
>>
>>
>> Thanks, Shaheed
>>
>>
>>
>>
>>
>> *From:* Udara Liyanage [mailto:[email protected]]
>> *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 <[email protected]>
>> wrote:
>>
>> Great.
>>
>>
>>
>> Thanks.
>>
>>
>>
>> On Tue, Mar 24, 2015 at 10:16 AM, Udara Liyanage <[email protected]> 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 <[email protected]> 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 <[email protected]>
>> wrote:
>>
>> Your client is using the same Jclouds version, that we do?
>>
>>
>>
>>
>>
>> On Tue, Mar 24, 2015 at 8:27 AM, Udara Liyanage <[email protected]> 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" <[email protected]> wrote:
>>
>>
>>
>>
>>
>> On Tue, Mar 24, 2015 at 7:01 AM, Udara Liyanage <[email protected]> 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
>> email: [email protected] 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
>> email: [email protected] 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
>>
>> lean. enterprise. middleware
>>
>> web: http://udaraliyanage.wordpress.com
>>
>> phone: +94 71 443 6897
>>
>>
>>
>>
>>
>> --
>>
>>
>> Udara Liyanage
>>
>> Software Engineer
>>
>> WSO2, Inc.: 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: [email protected] 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
>>
>> lean. enterprise. middleware
>>
>> web: http://udaraliyanage.wordpress.com
>>
>> phone: +94 71 443 6897
>>
>
>
>
> --
> Imesh Gunaratne
>
> Technical Lead, WSO2
> Committer & PMC Member, Apache Stratos
>
--
Udara Liyanage
Software Engineer
WSO2, Inc.: http://wso2.com
lean. enterprise. middleware
web: http://udaraliyanage.wordpress.com
phone: +94 71 443 6897