Thanks for the patch Marcus! This needs to go on the review board though and 
not on the Jira site. It's good to add a note to Jira with the link to the 
review board.

It's a simple process to sign up, go to https://reviews.apache.org/dashboard/ 
and take a look. It's good to include the Jira reference in there and name your 
diff with the Jira Id too (CLOUDSTACK-6088.diff).

Thanks for the patch!


Regards

Alex Hitchins

D: +44 1892 523 587 | S: +44 20 3603 0540 | M: +44 7788 423 969

alex.hitch...@shapeblue.com

-----Original Message-----
From: Marcus [mailto:shadow...@gmail.com]
Sent: 12 February 2014 18:55
To: dev@cloudstack.apache.org
Subject: Re: devs looking to get involved?

I dropped a patch into
https://issues.apache.org/jira/browse/CLOUDSTACK-6088, and if someone can get 
to it, great, otherwise I'll try to circle back around to it.

On Fri, Feb 7, 2014 at 9:45 PM, Marcus <shadow...@gmail.com> wrote:
> Yeah, I just don't know where to capture them. If I have a patch for
> 4.2, but I know it will never get applied as a feature, it seems odd
> to put it on review board. Perhaps I just dump them on Jira as
> attachments?
>
> Ultimately it behooves me to get this stuff done so I don't have to
> revisit it later...
>
> On Fri, Feb 7, 2014 at 7:37 PM, David Nalley <da...@gnsa.us> wrote:
>> - Users:
>>
>> Regardless of whether someone takes you up on the offer or not, I'd
>> still love to see these patches hit RB or the mailing list, or Jira
>> perhaps.
>>
>> --David
>>
>> On Fri, Feb 7, 2014 at 8:06 PM, Marcus <shadow...@gmail.com> wrote:
>>> I occasionally have some minor improvement that I need to make to
>>> whatever version of cloudstack we're currently running. This is
>>> almost always behind what is currently being developed, and I don't
>>> always feel like I have time to rebase/refactor it for master. I'm
>>> wondering if there are any individuals out there who are looking for
>>> ways to contribute that I can hand off these little projects to and
>>> mentor a bit. You get an easy project to get your feet wet and I get
>>> the improvements into master without using up time. :-) Maybe this
>>> sounds like laziness on my part, but it seemed like a good idea.
>>>
>>> I can post a patch that works for one version, and you can rework it
>>> and test against master. Respond if you're interested, there may be
>>> others who have easy work to farm off as well.
>>>
>>> An example, I've made some improvements to the template downloader,
>>> when the first 1M of the template is pulled we attempt to verify
>>> that the image is actually what we think it is (qcow2 or vmdk or
>>> whatever) by looking at the data. Up until now we just check file
>>> extension. It also contains a new TemplateUtils class that has:
>>>
>>> +    public static boolean isCorrectExtension(String path, String ext) {
>>> +        if (path.toLowerCase().endsWith(ext)
>>> +            || path.toLowerCase().endsWith(ext + ".gz")
>>> +            || path.toLowerCase().endsWith(ext + ".bz2")
>>> +            || path.toLowerCase().endsWith(ext + ".zip")) {
>>> +            return true;
>>> +        }
>>> +        return false;
>>> +    }
>>>
>>> Which can be used to clean up the likes of:
>>>
>>>     private void checkFormat(String format, String url) {
>>>
>>> if((!url.toLowerCase().endsWith("vhd"))&&(!url.toLowerCase().endsWit
>>> h("vhd.zip"))
>>>
>>> &&(!url.toLowerCase().endsWith("vhd.bz2"))&&(!url.toLowerCase().ends
>>> With("vhd.gz"))
>>>
>>> &&(!url.toLowerCase().endsWith("qcow2"))&&(!url.toLowerCase().endsWi
>>> th("qcow2.zip"))
>>>
>>> &&(!url.toLowerCase().endsWith("qcow2.bz2"))&&(!url.toLowerCase().en
>>> dsWith("qcow2.gz"))
>>>
>>> &&(!url.toLowerCase().endsWith("ova"))&&(!url.toLowerCase().endsWith
>>> ("ova.zip"))
>>>
>>> &&(!url.toLowerCase().endsWith("ova.bz2"))&&(!url.toLowerCase().ends
>>> With("ova.gz"))
>>>
>>> &&(!url.toLowerCase().endsWith("tar"))&&(!url.toLowerCase().endsWith
>>> ("tar.zip"))
>>>
>>> &&(!url.toLowerCase().endsWith("tar.bz2"))&&(!url.toLowerCase().endsWith("tar.gz"))
>>>                 &&(!url.toLowerCase().endsWith("vmdk")) &&
>>> (!url.toLowerCase().endsWith("vmdk.gz"))
>>>                 &&(!url.toLowerCase().endsWith("vmdk.zip")) &&
>>> (!url.toLowerCase().endsWith("vmdk.bz2")) &&
>>> (!url.toLowerCase().endsWith("img"))
>>>                 &&(!url.toLowerCase().endsWith("img.gz")) &&
>>> (!url.toLowerCase().endsWith("img.zip")) &&
>>> (!url.toLowerCase().endsWith("img.bz2"))
>>>                 &&(!url.toLowerCase().endsWith("raw")) &&
>>> (!url.toLowerCase().endsWith("raw.gz")) &&
>>> (!url.toLowerCase().endsWith("raw.bz2"))
>>>                 &&(!url.toLowerCase().endsWith("raw.zip"))){
>>>             throw new InvalidParameterValueException("Please specify
>>> a valid " + format.toLowerCase());
>>>         }
>>>         if ((format.equalsIgnoreCase("vhd")
>>>                  && (!url.toLowerCase().endsWith("vhd")
>>>                          && !url.toLowerCase().endsWith("vhd.zip")
>>>                          && !url.toLowerCase().endsWith("vhd.bz2")
>>>                          && !url.toLowerCase().endsWith("vhd.gz")))
>>>             || (format.equalsIgnoreCase("vhdx")
>>>                  && (!url.toLowerCase().endsWith("vhdx")
>>>                          && !url.toLowerCase().endsWith("vhdx.zip")
>>>                          && !url.toLowerCase().endsWith("vhdx.bz2")
>>>                          && !url.toLowerCase().endsWith("vhdx.gz")))
>>>             || (format.equalsIgnoreCase("qcow2")
>>>                  && (!url.toLowerCase().endsWith("qcow2")
>>>                          && !url.toLowerCase().endsWith("qcow2.zip")
>>>                          && !url.toLowerCase().endsWith("qcow2.bz2")
>>>                          && !url.toLowerCase().endsWith("qcow2.gz")))
>>>             || (format.equalsIgnoreCase("ova")
>>>                  && (!url.toLowerCase().endsWith("ova")
>>>                          && !url.toLowerCase().endsWith("ova.zip")
>>>                          && !url.toLowerCase().endsWith("ova.bz2")
>>>                          && !url.toLowerCase().endsWith("ova.gz")))
>>>             || (format.equalsIgnoreCase("tar")
>>>                  && (!url.toLowerCase().endsWith("tar")
>>>                          && !url.toLowerCase().endsWith("tar.zip")
>>>                          && !url.toLowerCase().endsWith("tar.bz2")
>>>                          && !url.toLowerCase().endsWith("tar.gz")))
>>>             || (format.equalsIgnoreCase("raw")
>>>                  && (!url.toLowerCase().endsWith("img")
>>>                          && !url.toLowerCase().endsWith("img.zip")
>>>                          && !url.toLowerCase().endsWith("img.bz2")
>>>                          && !url.toLowerCase().endsWith("img.gz")
>>>                          && !url.toLowerCase().endsWith("raw")
>>>                          && !url.toLowerCase().endsWith("raw.bz2")
>>>                          && !url.toLowerCase().endsWith("raw.zip")
>>>                          && !url.toLowerCase().endsWith("raw.gz")))
>>>             || (format.equalsIgnoreCase("vmdk")
>>>                  && (!url.toLowerCase().endsWith("vmdk")
>>>                          && !url.toLowerCase().endsWith("vmdk.zip")
>>>                          && !url.toLowerCase().endsWith("vmdk.bz2")
>>>                          && !url.toLowerCase().endsWith("vmdk.gz")))
>>>            ) {
>>>               throw new InvalidParameterValueException("Please
>>> specify a valid URL. URL:" + url
>>>                     + " is an invalid for the format " + 
>>> format.toLowerCase());
>>>         }
>>>
>>>
>>>     }
Need Enterprise Grade Support for Apache CloudStack?
Our CloudStack Infrastructure 
Support<http://shapeblue.com/cloudstack-infrastructure-support/> offers the 
best 24/7 SLA for CloudStack Environments.

Apache CloudStack Bootcamp training courses

**NEW!** CloudStack 4.2.1 training<http://shapeblue.com/cloudstack-training/>
18th-19th February 2014, Brazil. 
Classroom<http://shapeblue.com/cloudstack-training/>
17th-23rd March 2014, Region A. Instructor led, 
On-line<http://shapeblue.com/cloudstack-training/>
24th-28th March 2014, Region B. Instructor led, 
On-line<http://shapeblue.com/cloudstack-training/>
16th-20th June 2014, Region A. Instructor led, 
On-line<http://shapeblue.com/cloudstack-training/>
23rd-27th June 2014, Region B. Instructor led, 
On-line<http://shapeblue.com/cloudstack-training/>

This email and any attachments to it may be confidential and are intended 
solely for the use of the individual to whom it is addressed. Any views or 
opinions expressed are solely those of the author and do not necessarily 
represent those of Shape Blue Ltd or related companies. If you are not the 
intended recipient of this email, you must neither take any action based upon 
its contents, nor copy or show it to anyone. Please contact the sender if you 
believe you have received this email in error. Shape Blue Ltd is a company 
incorporated in England & Wales. ShapeBlue Services India LLP is a company 
incorporated in India and is operated under license from Shape Blue Ltd. Shape 
Blue Brasil Consultoria Ltda is a company incorporated in Brasil and is 
operated under license from Shape Blue Ltd. ShapeBlue is a registered trademark.

Reply via email to