Hi Tom,
        I investigated this issue through the db dump you provided in the bug,
this is an issue with our db view template_view creation script, and it
has been fixed in resolving
another bug (https://issues.apache.org/jira/browse/CLOUDSTACK-3314). I
have verified the fix using your db dump on my local setup. Please check
out latest 4.2 or master code to try again.

        Thanks
        -min

On 7/2/13 2:18 PM, "Min Chen" <min.c...@citrix.com> wrote:

>Tom, this seems like an issue with entry stored in our DB. I will take a
>look at this bug and update you. Just to clarify, this symptom only
>happens when you register these templates to Amazon S3, not for Cloudian
>or RiakCS S3, right?
>
>Thanks
>-min
>
>On 7/1/13 7:27 PM, "Thomas O'Dowd" <tpod...@cloudian.com> wrote:
>
>>Yes thanks Jessica. I re-opened the bug again. I know its not a gui
>>problem per-say in that the template is not ready to show the download
>>link. However, it never becomes ready is the actual problem. What sets
>>the "isready" property to true? As far as I can see, the objects in the
>>S3 stores (AWS or Cloudian) are complete and from my perspective "ready"
>>to download/use. It sounds like a bug when registering the template.
>>
>>Tom.
>>
>>On Mon, 2013-07-01 at 18:54 +0000, Jessica Wang wrote:
>>> Thomas,
>>> 
>>> I checked the data you provided.
>>> 
>>> The reason that the 2 templates("MyTiny", "AnotherTiny") have no
>>>download button is because they are not ready
>>> (i.e. their "isready" property is false).
>>> 
>>> Download button is only available when "isready" property is true.
>>> 
>>> Jessica
>>> 
>>> -----Original Message-----
>>> From: Thomas O'Dowd [mailto:tpod...@cloudian.com]
>>> Sent: Thursday, June 27, 2013 8:04 PM
>>> To: Min Chen
>>> Cc: dev@cloudstack.apache.org; Jessica Wang
>>> Subject: Re: Query String Request Authentication(QSRA) support by S3
>>>providers
>>> 
>>> Hi Min/Jessica,
>>> 
>>> I attached an image to that issue to show what what my browser is
>>> showing.
>>> 
>>>     https://issues.apache.org/jira/browse/CLOUDSTACK-3220
>>> 
>>> Tom.
>>> 
>>> On Fri, 2013-06-28 at 09:45 +0900, Thomas O'Dowd wrote:
>>> > Hi Min,
>>> > 
>>> > Yes. I'll try it again today to check again but when I added Amazon
>>>S3
>>> > as the S3 secondary storage and uploaded a template, I was not shown
>>>the
>>> > "download template" link. However - for Cloudian S3, I am shown it so
>>> > I'm wondering why.
>>> > 
>>> > Tom.
>>> > 
>>> > On Fri, 2013-06-28 at 00:26 +0000, Min Chen wrote:
>>> > > Hi Tom,
>>> > > 
>>> > >         Are you saying that you cannot see a Download Template button 
>>> > > from
>>>UI
>>> > > when Amazon S3 is added as secondary storage? I only tested with
>>>RiakCS
>>> > > and Cloudian, so didn't see this issue. But I am CC Jessica her to
>>>confirm
>>> > > what special handling is done in UI to enable/disable a button from
>>>UI.
>>> > > 
>>> > >         Thanks
>>> > >         -min
>>> > > 
>>> > > On 6/27/13 5:23 PM, "Thomas O'Dowd" <tpod...@cloudian.com> wrote:
>>> > > 
>>> > > >Hi Min,
>>> > > >
>>> > > >Can you check this bug? I'm trying to test this feature for Amazon
>>>but
>>> > > >having no luck getting the Download template link/button to
>>>appear.
>>> > > >
>>> > > >https://issues.apache.org/jira/browse/CLOUDSTACK-3220
>>> > > >
>>> > > >Thanks,
>>> > > >
>>> > > >Tom.
>>> > > >
>>> > > >On Fri, 2013-06-21 at 17:21 +0000, Min Chen wrote:
>>> > > >> John,
>>> > > >> 
>>> > > >>      For S3, the api call createEntityExtractUrl is done on
>>>management
>>> > > >>server
>>> > > >> side; while for NFS secondary storage, if the implementation of
>>> > > >> createEntityExtractUrl will involve some code be executed in
>>>ssvm to
>>> > > >>copy
>>> > > >> template from the install location to a public accessible web
>>>server
>>> > > >> location.
>>> > > >>      I don't quite understand some of your comments below. This API
>>>is not
>>> > > >> used to write any information to S3 bucket/directory. This is
>>>used for
>>> > > >> object already existed on S3, and we just provide a URL for user
>>>to
>>> > > >> download a template from S3, just like how Amazon provided user
>>>a way to
>>> > > >> user to extract a S3 object through generatePresignedUrl. We can
>>>discuss
>>> > > >> more on this on collaboration conference.
>>> > > >> 
>>> > > >>      Thanks  
>>> > > >>      -min
>>> > > >> 
>>> > > >> 
>>> > > >> 
>>> > > >> On 6/21/13 7:25 AM, "John Burwell" <jburw...@basho.com> wrote:
>>> > > >> 
>>> > > >> >Min,
>>> > > >> >
>>> > > >> >(I apologize for my belated reply -- I lost track of this draft
>>>in the
>>> > > >> >chaos of the last couple of days.)
>>> > > >> >
>>> > > >> >Upon further review, I think I feel into the confusion between
>>> > > >>management
>>> > > >> >server and ssvm.  This code is executing on the management
>>>server side,
>>> > > >> >correct?  Based on my "corrected" understanding is correct, I
>>>would
>>> > > >>like
>>> > > >> >to amend my thoughts.  Namely, I would like to see the driver
>>> > > >>operations
>>> > > >> >pushed out to the SSVM where we can use the stream.  As I think
>>>about
>>> > > >>it,
>>> > > >> >the management server should not need to interact with the
>>>driver.
>>> > > >> >Simply yard up the DataStore attributes + details map and other
>>>extract
>>> > > >> >parameters, and send them to the SSVM.  Using this information,
>>>the S3
>>> > > >> >driver could open a stream to write the template out to the
>>> > > >> >bucket/directory.  I recognize it changes the protocol between
>>>the
>>> > > >> >management server and SSVM, but it simply both sides of the
>>>operation
>>> > > >>by
>>> > > >> >allowing the DataStore information to be treated opaquely until
>>>it is
>>> > > >> >consumed by the driver to execute the write operation.  I also
>>> > > >>recognize
>>> > > >> >that we may a little late in the cycle to address it for 4.2,
>>>and it
>>> > > >>may
>>> > > >> >need to be part of the 4.3 enhancements.
>>> > > >> >
>>> > > >> >Thanks,
>>> > > >> >-John
>>> > > >> >
>>> > > >> >On Jun 18, 2013, at 3:55 PM, Min Chen <min.c...@citrix.com>
>>>wrote:
>>> > > >> >
>>> > > >> >> John,
>>> > > >> >>   In that case, how do we keep backward compatibility of
>>> > > >>extractTemplate
>>> > > >> >> api, which requires a URL in the response?
>>> > > >> >> 
>>> > > >> >>   Thanks
>>> > > >> >>   -min
>>> > > >> >> 
>>> > > >> >> On 6/18/13 11:53 AM, "John Burwell" <jburw...@basho.com>
>>>wrote:
>>> > > >> >> 
>>> > > >> >>> Min,
>>> > > >> >>> 
>>> > > >> >>> Looking through the code, I think we can simplify driver
>>>operation
>>> > > >>and
>>> > > >> >>> increase robustness by changing
>>> > > >> >>>ImageStoreDriver#createEntityExtractUrl()
>>> > > >> >>> : String to ImageStoreDriver#readEntity(Š) : InputStream.
>>>My first
>>> > > >> >>> concern with the current implementation is that it
>>>circumvents any
>>> > > >> >>> connection pooling/resource management underlying client
>>>libraries
>>> > > >> >>> provide.  I/O streams provide a higher-level abstraction
>>>that allows
>>> > > >> >>> drivers to provide the orchestration components with actual
>>> > > >>resources
>>> > > >> >>> rather String references.  Second, the current interface
>>>seems to
>>> > > >> >>>appears
>>> > > >> >>> to assume that an http/https URL will be returned.  With I/O
>>> > > >>streams,
>>> > > >> >>>we
>>> > > >> >>> can support any client library capable of using the standard
>>>I/O
>>> > > >> >>> framework -- enabling us to support other protocols for
>>>downloading
>>> > > >> >>> templates in the future (e.g. RBD, local filesystem, NBD,
>>>etc).
>>> > > >> >>> 
>>> > > >> >>> Thanks,
>>> > > >> >>> -John
>>> > > >> >>> 
>>> > > >> >>> On Jun 18, 2013, at 1:11 PM, Min Chen <min.c...@citrix.com>
>>>wrote:
>>> > > >> >>> 
>>> > > >> >>>> A new version of using generatePresignedUrl in
>>> > > >>S3ImageStoreDriverImpl
>>> > > >> >>>>is
>>> > > >> >>>> checked into object_store.
>>> > > >> >>>> 
>>> > > >> >>>> THanks
>>> > > >> >>>> -min
>>> > > >> >>>> 
>>> > > >> >>>> On 6/18/13 8:29 AM, "Min Chen" <min.c...@citrix.com> wrote:
>>> > > >> >>>> 
>>> > > >> >>>>> Yes, current code is in
>>> > > >> >>>>>S3ImageStoreDriverImpl.createEntityExtractUrl,
>>> > > >> >>>>> which has a security issue mentioned in CLOUDSTACK-3030. I
>>>am
>>> > > >>going
>>> > > >> >>>>>to
>>> > > >> >>>>> change it to use generatePresignedUrl api from AWS S3 api.
>>> > > >> >>>>> 
>>> > > >> >>>>> Thanks
>>> > > >> >>>>> -min
>>> > > >> >>>>> 
>>> > > >> >>>>> From: John Burwell
>>><jburw...@basho.com<mailto:jburw...@basho.com>>
>>> > > >> >>>>> Date: Tuesday, June 18, 2013 8:07 AM
>>> > > >> >>>>> To: Min Chen
>>><min.c...@citrix.com<mailto:min.c...@citrix.com>>
>>> > > >> >>>>> Cc: Thomas O'Dowd
>>> > > >> >>>>><tpod...@cloudian.com<mailto:tpod...@cloudian.com>>,
>>> > > >> >>>>> 
>>>"dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>"
>>> > > >> >>>>> 
>>><dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>>
>>> > > >> >>>>> Subject: Re: Query String Request Authentication(QSRA)
>>>support by
>>> > > >>S3
>>> > > >> >>>>> providers
>>> > > >> >>>>> 
>>> > > >> >>>>> Min,
>>> > > >> >>>>> 
>>> > > >> >>>>> Is the code checked into the object_store branch?  If so,
>>>which
>>> > > >>lines
>>> > > >> >>>>> in
>>> > > >> >>>>> S3TemplateDownloader?
>>> > > >> >>>>> 
>>> > > >> >>>>> Thanks,
>>> > > >> >>>>> -John
>>> > > >> >>>>> 
>>> > > >> >>>>> On Jun 18, 2013, at 12:39 AM, Min Chen
>>> > > >> >>>>> <min.c...@citrix.com<mailto:min.c...@citrix.com>> wrote:
>>> > > >> >>>>> 
>>> > > >> >>>>> Hi John,
>>> > > >> >>>>> 
>>> > > >> >>>>> This is regarding extractTemplate api, where for
>>>extractable
>>> > > >> >>>>>template,
>>> > > >> >>>>> users can click "Download Template" button from UI to get
>>>a http
>>> > > >>url
>>> > > >> >>>>>to
>>> > > >> >>>>> download the template already stored at S3 without
>>>providing S3
>>> > > >> >>>>> credentials. In 4.1, we don't have this issue, since the
>>>URL
>>> > > >>returned
>>> > > >> >>>>> is
>>> > > >> >>>>> the public web server location hosted in ssvm, and in 4.2,
>>>we are
>>> > > >> >>>>> returning URL pointing to s3 object. Without setting ACL
>>>to the S3
>>> > > >> >>>>> object, user cannot directly click the URL returned  from
>>> > > >> >>>>> extractTemplate
>>> > > >> >>>>> api to download the template without providing
>>>credentials. By
>>> > > >> >>>>>reading
>>> > > >> >>>>> the AWS SDK doc today, I ran across the following API that
>>>I may
>>> > > >>be
>>> > > >> >>>>> able
>>> > > >> >>>>> to use for this purpose:
>>> > > >> >>>>> 
>>> > > >> >>>>> 
>>> > > >> >>>>> 
>>> > > >> >>>>> 
>>> > > >> 
>>> > > 
>>>>>>>>>>URL<http://java.sun.com/j2se/1.5.0/docs/api/java/net/URL.html?is-
>>>>>>>>>>e
>>>>>>>>>>xt
>>> > > >>>>>>>er
>>> > > >> >>>>>na
>>> > > >> >>>>> l=
>>> > > >> >>>>> true>
>>> > > >> >>>>> 
>>> > > >> >>>>> 
>>> > > >> 
>>> > > 
>>>>>>>>>>generatePresignedUrl<http://docs.aws.amazon.com/AWSJavaSDK/latest
>>>>>>>>>>/
>>>>>>>>>>ja
>>> > > >>>>>>>va
>>> > > >> >>>>>do
>>> > > >> >>>>> c/
>>> > > >> >>>>> 
>>> > > >> >>>>> 
>>> > > >> 
>>> > > 
>>>>>>>>>>com/amazonaws/services/s3/AmazonS3Client.html#generatePresignedUr
>>>>>>>>>>l
>>>>>>>>>>%2
>>> > > >>>>>>>8j
>>> > > >> >>>>>av
>>> > > >> >>>>> a.
>>> > > >> >>>>> 
>>> > > >> >>>>> 
>>> > > >> 
>>> > > 
>>>>>>>>>>lang.String,%20java.lang.String,%20java.util.Date,%20com.amazonaw
>>>>>>>>>>s
>>>>>>>>>>.H
>>> > > >>>>>>>tt
>>> > > >> >>>>>pM
>>> > > >> >>>>> et
>>> > > >> >>>>> 
>>> > > >> >>>>> 
>>> > > >> 
>>> > > 
>>>>>>>>>>hod%29>(String<http://java.sun.com/j2se/1.5.0/docs/api/java/lang/
>>>>>>>>>>S
>>>>>>>>>>tr
>>> > > >>>>>>>in
>>> > > >> >>>>>g.
>>> > > >> >>>>> ht
>>> > > >> >>>>> ml?is-external=true> bucketName,
>>> > > >> >>>>> 
>>> > > >> >>>>> 
>>> > > >> 
>>> > > 
>>>>>>>>>>String<http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.h
>>>>>>>>>>t
>>>>>>>>>>ml
>>> > > >>>>>>>?i
>>> > > >> >>>>>s-
>>> > > >> >>>>> ex
>>> > > >> >>>>> ternal=true> key,
>>> > > >> >>>>> 
>>> > > >> >>>>> 
>>> > > >> 
>>> > > 
>>>>>>>>>>Date<http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html?
>>>>>>>>>>i
>>>>>>>>>>s-
>>> > > >>>>>>>ex
>>> > > >> >>>>>te
>>> > > >> >>>>> rn
>>> > > >> >>>>> al=true> expiration,
>>> > > >> >>>>> 
>>> > > >> >>>>> 
>>> > > >> 
>>> > > 
>>>>>>>>>>HttpMethod<http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/c
>>>>>>>>>>o
>>>>>>>>>>m/
>>> > > >>>>>>>am
>>> > > >> >>>>>az
>>> > > >> >>>>> on
>>> > > >> >>>>> aws/HttpMethod.html> method)
>>> > > >> >>>>>         Returns a pre-signed URL for accessing an Amazon
>>>S3
>>> > > >>resource.
>>> > > >> >>>>> 
>>> > > >> >>>>> This is along the same line as QSRA mentioned by Tom, by
>>>wrapped
>>> > > >>in
>>> > > >> >>>>> AmazonS3Client for easy consumption. By using this method,
>>>I think
>>> > > >> >>>>> that I
>>> > > >> >>>>> don't need to change ACL of S3 object to open a security
>>>hole.
>>> > > >> >>>>> 
>>> > > >> >>>>> Thanks
>>> > > >> >>>>> -min
>>> > > >> >>>>> 
>>> > > >> >>>>> From: John Burwell
>>><jburw...@basho.com<mailto:jburw...@basho.com>>
>>> > > >> >>>>> Date: Monday, June 17, 2013 7:38 PM
>>> > > >> >>>>> To: Min Chen
>>><min.c...@citrix.com<mailto:min.c...@citrix.com>>
>>> > > >> >>>>> Cc: Thomas O'Dowd
>>> > > >> >>>>><tpod...@cloudian.com<mailto:tpod...@cloudian.com>>,
>>> > > >> >>>>> 
>>>"dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>"
>>> > > >> >>>>> 
>>><dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>>
>>> > > >> >>>>> Subject: Re: Query String Request Authentication(QSRA)
>>>support by
>>> > > >>S3
>>> > > >> >>>>> providers
>>> > > >> >>>>> 
>>> > > >> >>>>> Min,
>>> > > >> >>>>> 
>>> > > >> >>>>> Why are we mucking with ACLs at all?  The best security
>>>practice
>>> > > >> >>>>>would
>>> > > >> >>>>> be
>>> > > >> >>>>> to create a bucket for CloudStack's use and assign it a
>>>dedicated
>>> > > >> >>>>> access
>>> > > >> >>>>> key and secret key pair with read/write access only to
>>>that
>>> > > >>bucket.
>>> > > >> >>>>> Requiring an administrative account to an object store
>>>opens an
>>> > > >> >>>>> unnecessarily large attack surface.  Therefore, as
>>>implemented in
>>> > > >> >>>>>4.1,
>>> > > >> >>>>> we
>>> > > >> >>>>> should defer bucket creation, ACL assignment, and
>>>credential
>>> > > >>creation
>>> > > >> >>>>> to
>>> > > >> >>>>> the administrator/operator.
>>> > > >> >>>>> 
>>> > > >> >>>>> Thanks,
>>> > > >> >>>>> -John
>>> > > >> >>>>> 
>>> > > >> >>>>> On Jun 17, 2013, at 1:15 PM, Min Chen
>>> > > >> >>>>> <min.c...@citrix.com<mailto:min.c...@citrix.com>> wrote:
>>> > > >> >>>>> 
>>> > > >> >>>>> Tom filed a very good bug for ACL setting change on S3
>>>object when
>>> > > >> >>>>> users
>>> > > >> >>>>> issue extractTemplate API
>>> > > >> >>>>> (https://issues.apache.org/jira/browse/CLOUDSTACK-3030),
>>>and his
>>> > > >> >>>>> recommendation of using Query String Request
>>>Authentication (QSRA)
>>> > > >> >>>>> alternative sounds like a right approach to fix this bug.
>>>Before
>>> > > >> >>>>> implementing it, I would like to confirm if QSRA should be
>>> > > >>supported
>>> > > >> >>>>>by
>>> > > >> >>>>> all S3 providers if they claim that they are AWS s3
>>>compatible. If
>>> > > >> >>>>>so,
>>> > > >> >>>>> we
>>> > > >> >>>>> will make this assumption in our code. Based on Tom,
>>>Cloudian is
>>> > > >> >>>>> supporting it. How about RiakCS, John?
>>> > > >> >>>>> 
>>> > > >> >>>>> Thanks
>>> > > >> >>>>> -min
>>> > > >> >>>>> 
>>> > > >> >>>>> 
>>> > > >> >>>> 
>>> > > >> >>> 
>>> > > >> >> 
>>> > > >> >
>>> > > >> 
>>> > > >
>>> > > >-- 
>>> > > >Cloudian KK - http://www.cloudian.com/get-started.html
>>> > > >Fancy 100TB of full featured S3 Storage?
>>> > > >Checkout the Cloudian(R) Community Edition!
>>> > > >
>>> > > 
>>> > 
>>> 
>>
>>-- 
>>Cloudian KK - http://www.cloudian.com/get-started.html
>>Fancy 100TB of full featured S3 Storage?
>>Checkout the Cloudian(R) Community Edition!
>>
>

Reply via email to