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()); >> } >> >> >> }