- 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