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().endsWith("vhd.zip"))
>>>
>>> &&(!url.toLowerCase().endsWith("vhd.bz2"))&&(!url.toLowerCase().endsWith("vhd.gz"))
>>>
>>> &&(!url.toLowerCase().endsWith("qcow2"))&&(!url.toLowerCase().endsWith("qcow2.zip"))
>>>
>>> &&(!url.toLowerCase().endsWith("qcow2.bz2"))&&(!url.toLowerCase().endsWith("qcow2.gz"))
>>>
>>> &&(!url.toLowerCase().endsWith("ova"))&&(!url.toLowerCase().endsWith("ova.zip"))
>>>
>>> &&(!url.toLowerCase().endsWith("ova.bz2"))&&(!url.toLowerCase().endsWith("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());
>>>         }
>>>
>>>
>>>     }

Reply via email to