On Jun 23, 2014, at 3:45 PM, sebgoa <run...@gmail.com> wrote:

> 
> On Jun 23, 2014, at 3:33 PM, Prasanna Santhanam <t...@apache.org> wrote:
> 
>> Be advised that advanced.cfg might be adding the NFS store as
>> secondary storage as opposed to cacheStorage that the S3 image store
>> needs it to be. At least that's how it was the last time I ran it.
> 
> Thanks. 
> 
> That's exactly what I am trying to figure out. Can we migrate from a NFS 
> secondary storage to an object store.
> 
> If I move the NFS to be a cache store then I can add a new ImageStore. But 
> the updatecloudstoobjectstore which is supposed to do everything at once, 
> does not work for me.
> 


Ok, problem solved. When using the API, the provider key is case sensitive. so 
you need to pass S3 and not s3 :(



>> 
>> On Mon, Jun 23, 2014 at 02:45:55PM +0200, sebgoa wrote:
>>> 
>>> On Jun 23, 2014, at 2:30 PM, Koushik Das <koushik....@citrix.com> wrote:
>>> 
>>>> This has nothing to do with the zoneId. If you search the source code for 
>>>> the error message "Failed to add data store: DataCenter id is null, and 
>>>> simulator image store has to be associated with a data center", it points 
>>>> toSimulatorImageStoreLifeCycleImpl.initialize() method. This indicates 
>>>> that somehow the image store provider for Simulator is getting picked up. 
>>>> For S3 provider type, the S3ImageStoreLifeCycleImpl should get invoked and 
>>>> in that the zoneId is not used so there won't be issues.
>>> 
>>> Happy to discuss it on IRC, if you could join.
>>> 
>>> in SimulatorImageStoreLifeCycleImpl.initialize() on 4.4-forward I see:
>>> 
>>> Long dcId = (Long)dsInfos.get("zoneId");
>>>       String url = (String)dsInfos.get("url");
>>>       String name = (String)dsInfos.get("name");
>>>       if (name == null) {
>>>           name = url;
>>>       }
>>>    ...
>>> 
>>>       if (dcId == null) {
>>>           throw new InvalidParameterValueException("DataCenter id is null, 
>>> and simulator image store has to be associated with a data center");
>>>       }
>>> 
>>> So my non Java expertise tells me that dcId is null because zoneId is not 
>>> set ???
>>> 
>>> 
>>>> 
>>>> 
>>>> -----Original Message-----
>>>> From: Sebastien Goasguen [mailto:run...@gmail.com] 
>>>> Sent: Monday, 23 June 2014 5:47 PM
>>>> To: dev@cloudstack.apache.org
>>>> Subject: Re: S3 use with simulator
>>>> 
>>>> 
>>>> On Jun 23, 2014, at 7:14 AM, Koushik Das <koushik....@citrix.com> wrote:
>>>> 
>>>>> This is the request
>>>>> 
>>>>> http://localhost:8096/api?command=updateCloudToUseObjectStore&url=http
>>>>> ://localhost:1234/test&name=test&provider=S3&details[0].key=accesskey&
>>>>> details[0].value=dummy&details[1].key=secretkey&details[1].value=dummy
>>>> 
>>>> Any chance you can try with a signed api request ?
>>>> 
>>>> It looks like it's not finding a zoneId ...hence dcId is null....
>>>> 
>>>>> 
>>>>> 
>>>>> -----Original Message-----
>>>>> From: sebgoa [mailto:run...@gmail.com]
>>>>> Sent: Monday, 23 June 2014 4:40 PM
>>>>> To: dev@cloudstack.apache.org
>>>>> Subject: Re: S3 use with simulator
>>>>> 
>>>>> 
>>>>> On Jun 23, 2014, at 12:51 PM, Koushik Das <koushik....@citrix.com> wrote:
>>>>> 
>>>>>> inline
>>>>>> 
>>>>>> On 23-Jun-2014, at 4:05 PM, Sebastien Goasguen <run...@gmail.com> wrote:
>>>>>> 
>>>>>>> Hi Koushik, thanks for the hint, I checked out 4.4-forward and made 
>>>>>>> that small change.
>>>>>>> 
>>>>>>> I still add the same error:
>>>>>>> 
>>>>>>>> update cloudtouseobjectstore url=http://localhost:9081/riak-cs 
>>>>>>>> name=riakcs provider=s3 details[0].key=accesskey 
>>>>>>>> details[0].value=ZMJD6-90S2MST4NZMK1Z details[1].key=secretkey 
>>>>>>>> details[1].value=ecJlaZebrYKj_qYaIfzlRR_1izojGVWjBRFx0Q==
>>>>>>> 530: Failed to add data store: DataCenter id is null, and simulator 
>>>>>>> image store has to be associated with a data center
>>>>>>> 
>>>>>>> However this actually *removed* the NFS store (from the simulated basic 
>>>>>>> zone).
>>>>>>> 
>>>>>> 
>>>>>> I verified using advanced zone, not sure if there are any issues with 
>>>>>> basic zone. The API response I get is the following:
>>>>>> <updatecloudtouseobjectstoreresponse
>>>>>> cloud-stack-version="4.4.0-SNAPSHOT"><imagestore><id>55b7e6f7-ec27-4d
>>>>>> a 
>>>>>> 8-b4a0-b209a3e3d825</id><name>test</name><url>http://localhost:1234/t
>>>>>> e 
>>>>>> st</url><protocol>http</protocol><providername>S3</providername><scop
>>>>>> e
>>>>>>> REGION</scope><details><name>secretkey</name><value>dummy</value></d
>>>>>>> e
>>>>>> tails><details><name>accesskey</name><value>dummy</value></details></
>>>>>> tails>i
>>>>>> magestore></updatecloudtouseobjectstoreresponse>
>>>>>> 
>>>>> 
>>>>> Hum, strange. I just checked with an advanced zone from 
>>>>> setup/dev/advanced.cfg and I get the same error 'datacenter id is null'.
>>>>> 
>>>>> Can you send the exact request that you sent ?
>>>>> 
>>>>>> Also in the image_store table the entries look like below, note that the 
>>>>>> 'role' of NFS store changed to 'ImageCache'.
>>>>>> 
>>>>>> '1', 'nfs://10.147.28.6:/export/home/sandbox/secondary', 'NFS', 
>>>>>> 'nfs', 'nfs://10.147.28.6:/export/home/sandbox/secondary', '1', 
>>>>>> 'ZONE', 'ImageCache', '8eb3e701-7e2b-4925-87f8-f8ea5f97b863',
>>>>>> '/mnt/05b33ef7-da6a-33eb-9981-b4efb90ed99b/', '2014-06-23 06:27:58', 
>>>>>> NULL, NULL, NULL '2', 'test', 'S3', 'http', 
>>>>>> 'http://localhost:1234/test', NULL, 'REGION', 'Image', 
>>>>>> '55b7e6f7-ec27-4da8-b4a0-b209a3e3d825', NULL, '2014-06-23 07:37:55', 
>>>>>> NULL, NULL, NULL
>>>>>> 
>>>>> 
>>>>> Yes I can confirm this. It gets listed in the UI under 'secondary staging 
>>>>> store', and it's in the db.
>>>>> 
>>>>>> 
>>>>>>> I was then able to add:
>>>>>>> 
>>>>>>>> add imagestore name=riakcs provider=S3 
>>>>>>>> url=http://localhost:9081/riak-cs details[0].key=accesskey 
>>>>>>>> details[0].value=ZMJD6-90S2MST4NZMK1Z details[1].key=secretkey 
>>>>>>>> details[1].value=ecJlaZebrYKj_qYaIfzlRR_1izojGVWjBRFx0Q==
>>>>>>> imagestore:
>>>>>>> name = riakcs
>>>>>>> id = 1a60d62a-c1e9-4d1c-8b35-d5cd687f6de4
>>>>>>> details:
>>>>>>> +-----------+------------------------------------------+
>>>>>>> |    name   |                  value                   |
>>>>>>> +-----------+------------------------------------------+
>>>>>>> | secretkey | ecJlaZebrYKj_qYaIfzlRR_1izojGVWjBRFx0Q== |
>>>>>>> | accesskey |           ZMJD6-90S2MST4NZMK1Z           |
>>>>>>> +-----------+------------------------------------------+
>>>>>>> protocol = http
>>>>>>> providername = S3
>>>>>>> scope = REGION
>>>>>>> url = http://localhost:9081/riak-cs
>>>>>>> 
>>>>>>> Apparently successfully, even though the removal of the NFS store 
>>>>>>> entirely is a bit worrisome.
>>>>>>> 
>>>>>>> On Jun 23, 2014, at 4:32 AM, Koushik Das <koushik....@citrix.com> wrote:
>>>>>>> 
>>>>>>>> The error message is from the simulator storage plugin, not sure why 
>>>>>>>> you are getting it even after setting provider types as S3.
>>>>>>>> I tried the same on a 4.4-forward setup and got a different error (as 
>>>>>>>> below).
>>>>>>>> "You can only add new image stores from the same provider NFS already 
>>>>>>>> added"
>>>>>>>> 
>>>>>>>> This error is there as the simulator storage provider doesn't support 
>>>>>>>> migration to object store. Once I fixed it, the image store got added 
>>>>>>>> successfully and the NFS store was converted to a cache store.
>>>>>>>> This is the change I made
>>>>>>>> 
>>>>>>>> diff --git
>>>>>>>> a/plugins/hypervisors/simulator/src/org/apache/cloudstack/storage/d
>>>>>>>> a tastore/lifecycle/SimulatorImageStoreLifeCycleImpl.java
>>>>>>>> b/plugins/hypervisors/simulator/src/org/apache/cloudstack/storage/d
>>>>>>>> a tastore/lifecycle/SimulatorImageStoreLifeCycleImpl.java
>>>>>>>> index edf1e28..537c7bd 100644
>>>>>>>> ---
>>>>>>>> a/plugins/hypervisors/simulator/src/org/apache/cloudstack/storage/d
>>>>>>>> a tastore/lifecycle/SimulatorImageStoreLifeCycleImpl.java
>>>>>>>> +++ b/plugins/hypervisors/simulator/src/org/apache/cloudstack/stora
>>>>>>>> +++ g e/datastore/lifecycle/SimulatorImageStoreLifeCycleImpl.java
>>>>>>>> @@ -133,7 +133,7 @@ public class SimulatorImageStoreLifeCycleImpl 
>>>>>>>> implements ImageStoreLifeCycle {
>>>>>>>> */
>>>>>>>> @Override
>>>>>>>> public boolean migrateToObjectStore(DataStore store) {
>>>>>>>> -        return false;
>>>>>>>> +        return imageStoreHelper.convertToStagingStore(store);
>>>>>>>> }
>>>>>>>> 
>>>>>>>> }
>>>>>>>> 
>>>>>>>> -----Original Message-----
>>>>>>>> From: Min Chen [mailto:min.c...@citrix.com]
>>>>>>>> Sent: Saturday, 21 June 2014 3:44 AM
>>>>>>>> To: dev@cloudstack.apache.org
>>>>>>>> Subject: Re: S3 use with simulator
>>>>>>>> 
>>>>>>>> Got it. The error seems from simulator, maybe Koushik has better idea 
>>>>>>>> on that. I didn't use that on simulator env though.
>>>>>>>> 
>>>>>>>> Thanks
>>>>>>>> -min
>>>>>>>> 
>>>>>>>> On 6/20/14 11:05 AM, "Sebastien Goasguen" <run...@gmail.com> wrote:
>>>>>>>> 
>>>>>>>>> I already have an Nsf secondary storage. I understood that i could 
>>>>>>>>> not add a second secondary storage that is s3 based, and that the 
>>>>>>>>> only way was to use the updatecloud.... Api
>>>>>>>>> 
>>>>>>>>> -Sebastien
>>>>>>>>> 
>>>>>>>>>> On 20 Jun 2014, at 18:49, Min Chen <min.c...@citrix.com> wrote:
>>>>>>>>>> 
>>>>>>>>>> Hi Sebastien,
>>>>>>>>>> 
>>>>>>>>>> I am curious why you are using updateCloudToUseObjectStore api to 
>>>>>>>>>> add S3  as a secondary store in your data center? To set up a 
>>>>>>>>>> data center using  S3, you need to use addImageStore api.
>>>>>>>>>> 
>>>>>>>>>> Thanks
>>>>>>>>>> -min
>>>>>>>>>> 
>>>>>>>>>>> On 6/20/14 7:47 AM, "Sebastien Goasguen" <run...@gmail.com> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> I switch to provider=S3 but I get:
>>>>>>>>>>> 
>>>>>>>>>>>> 530: Failed to add data store: DataCenter id is null, and 
>>>>>>>>>>>> simulator image store has to be associated with a data center
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>> On Jun 20, 2014, at 7:07 AM, Koushik Das 
>>>>>>>>>>>> <koushik....@citrix.com>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> As per the code the following are the supported image store 
>>>>>>>>>>>> provider types
>>>>>>>>>>>> 
>>>>>>>>>>>> // constants for provider names static final String NFS_IMAGE = 
>>>>>>>>>>>> "NFS"; static final String S3_IMAGE = "S3"; static final String 
>>>>>>>>>>>> SWIFT_IMAGE = "Swift"; static final String SAMPLE_IMAGE = 
>>>>>>>>>>>> "Sample"; static final String SMB = "NFS"; static final String 
>>>>>>>>>>>> DEFAULT_PRIMARY = "DefaultPrimary";
>>>>>>>>>>>> 
>>>>>>>>>>>> Try passing S3 in the provider.
>>>>>>>>>>>> BTW when you setup simulator the image provider is NFS.
>>>>>>>>>>>> 
>>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>>> From: Sebastien Goasguen [mailto:run...@gmail.com]
>>>>>>>>>>>> Sent: Thursday, 19 June 2014 5:08 PM
>>>>>>>>>>>> To: dev@cloudstack.apache.org
>>>>>>>>>>>> Subject: S3 use with simulator
>>>>>>>>>>>> 
>>>>>>>>>>>> Hi,
>>>>>>>>>>>> 
>>>>>>>>>>>> I am using the simulator and started a basic zone.
>>>>>>>>>>>> I have an S3 object store locally (riakCS), and I am trying to 
>>>>>>>>>>>> add it to the infra using the 'cloudtouseobjectstore' api with 
>>>>>>>>>>>> cloudmonkey.
>>>>>>>>>>>> 
>>>>>>>>>>>> I tried with:
>>>>>>>>>>>> 
>>>>>>>>>>>>> update cloudtouseobjectstore url=http://localhost:9081/riak-cs 
>>>>>>>>>>>>> name=riak provider=riakcs
>>>>>>>>>>>>> 
>>>>>>>>>>>>> details[0].key=accesskey&details[0].value=STU6Z-ZMK1TPMDAXL9I1
>>>>>>>>>>>>> &
>>>>>>>>>>>>> deta
>>>>>>>>>>>>> ils
>>>>>>>>>>>>> [1
>>>>>>>>>>>>> 
>>>>>>>>>>>>> ].key=secretkey&details[1].value=8OuY3mHDXihu0Tdb2aVJ4vuYZLBAl
>>>>>>>>>>>>> 5
>>>>>>>>>>>>> Z7Ni
>>>>>>>>>>>>> WKs
>>>>>>>>>>>>> g=
>>>>>>>>>>>>> =
>>>>>>>>>>>> 530: Failed to add data store: DataCenter id is null, and 
>>>>>>>>>>>> simulator image store has to be associated with a data center
>>>>>>>>>>>> 
>>>>>>>>>>>> I am not sure if the arguments are right, has anyone done this 
>>>>>>>>>>>> before ?
>>>>>>>>>>>> 
>>>>>>>>>>>> thanks,
>>>>>>>>>>>> 
>>>>>>>>>>>> -sebastien
>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>> 
>> -- 
>> Prasanna.,
>> 
>> ------------------------
>> Powered by BigRock.com
>> 
> 

Reply via email to