public GlacierUploaderOptionParser(final Configuration config) { super(); this.vault = this.parseVault(config); this.endpoint = this.parseEndpoint(config); this.region = this.parseRegion(config); this.upload = this.parseUploadFile(config); this.inventoryListing = this.parseInventory(config); this.download = this.parseDownload(config); this.credentials = this.parseCredentials(config); this.createVault = this.parseCreateVault(config); this.listVaults = this.parseListVault(config); this.listJobs = this.parseListJobs(config); this.deleteVault = this.parseDeleteVault(config); this.targetFile = this.parseTargetFile(config); this.calculateHash = this.parseHashFile(config); this.deleteArchive = this.parseDeleteArchive(config); this.multipartUpload = this.parseMultipartUploadFile(config); this.partSize = this.parsePartSize(config); this.help = this.parseHelp(config); this.abortUpload = this.parseAbortUpload(config); }
private OptionSpec<Void> parseCreateVault(final Configuration config) { return acceptsAll(Arrays.asList("create", "c"), "creates a new vault"); }
@Override public void exec(OptionSet options, GlacierUploaderOptionParser optionParser) { if (!options.has(optionParser.help)) { log.info("Ooops, can't determine what you want to do. Check your options." + System.getProperty("line.separator")); } try { optionParser.printHelpOn(out); } catch (final IOException e) { log.error("Can not print help", e); } }
@Override public void exec(OptionSet options, GlacierUploaderOptionParser optionParser) { final String vaultName = options.valueOf(optionParser.vault); final List<File> optionsFiles = options.valuesOf(optionParser.upload); final List<String> nonOptions = options.nonOptionArguments(); final List<File> files = optionParser.mergeNonOptionsFiles(optionsFiles, nonOptions); for (File uploadFile : files) { this.upload(vaultName, uploadFile); } // stop progress tracker SCHEDULED_POOL.shutdown(); }
private OptionSpec<Void> parseListJobs(final Configuration config) { return acceptsAll(Arrays.asList("list-jobs", "j"), "lists recent jobs"); }
@Override public void exec(OptionSet options, GlacierUploaderOptionParser optionParser) { final String vaultName = options.valueOf(optionParser.vault); final List<File> optionsFiles = options.valuesOf(optionParser.multipartUpload); final Long partSize = options.valueOf(optionParser.partSize); final List<String> nonOptions = options.nonOptionArguments(); final List<File> files = optionParser.mergeNonOptionsFiles(optionsFiles, nonOptions); for (File uploadFile : files) { this.upload(vaultName, uploadFile, partSize); } }
private OptionSpec<Void> parseDeleteVault(final Configuration config) { return acceptsAll(Arrays.asList("delete-vault", "r"), "deletes an existing vault"); }
private OptionSpec<Void> parseListVault(final Configuration config) { return acceptsAll(Arrays.asList("list-vaults", "s"), "lists all available vaults"); }
private OptionSpecBuilder parseHelp(final Configuration config) { return acceptsAll(Arrays.asList("help", "h", "?"), "display the help menu"); }
private ArgumentAcceptingOptionSpec<String> parseDeleteArchive(final Configuration config) { return acceptsAll(Arrays.asList("delete", "d"), "deletes an existing archive") .withRequiredArg() .ofType(String.class); }
private ArgumentAcceptingOptionSpec<File> parseUploadFile(final Configuration config) { return acceptsAll(Arrays.asList("upload", "u"), "start uploading a new archive") .withRequiredArg() .ofType(File.class); }
private ArgumentAcceptingOptionSpec<File> parseTargetFile(final Configuration config) { return acceptsAll(Arrays.asList("target", "t"), "filename to store downloaded archive") .withRequiredArg() .ofType(File.class); }
private ArgumentAcceptingOptionSpec<String> parseAbortUpload(final Configuration config) { return acceptsAll(Arrays.asList("abort-upload", "x"), "aborts an existing upload request - requires upload id") .withRequiredArg() .ofType(String.class); } }
private ArgumentAcceptingOptionSpec<String> parseInventory(final Configuration config) { return acceptsAll(Arrays.asList("list-inventory", "l"), "retrieve the inventory listing of a vault or request a listing if no job id is set") .withOptionalArg() .ofType(String.class); }
private ArgumentAcceptingOptionSpec<String> parseDownload(final Configuration config) { return acceptsAll(Arrays.asList("download", "o"), "download an existing archive") .withRequiredArg() .ofType(String.class); }
private ArgumentAcceptingOptionSpec<File> parseHashFile(final Configuration config) { return acceptsAll(Arrays.asList("calculate", "a"), "calculate hashsum for a file") .withRequiredArg() .ofType(File.class); }
private ArgumentAcceptingOptionSpec<File> parseMultipartUploadFile(final Configuration config) { return acceptsAll(Arrays.asList("multipartupload", "m"), "start uploading a new archive in chuncks") .withRequiredArg() .ofType(File.class); }
private ArgumentAcceptingOptionSpec<Long> parsePartSize(final Configuration config) { return acceptsAll(Arrays.asList("partsize", "p"), "sets the size of each part for multipart uploads (must be a power of 2)") .withRequiredArg() .ofType(Long.class) .defaultsTo((long) Math.pow(4096, 2)); // 16 MB. }
private ArgumentAcceptingOptionSpec<String> parseRegion(final Configuration config) { ArgumentAcceptingOptionSpec<String> endpointBuilder = acceptsAll(Arrays.asList("region", "g"), "Region handle of the amazon AWS endpoint where your vault is") .withRequiredArg() .ofType(String.class); if (config.containsKey("region")) { endpointBuilder.defaultsTo(config.getString("region")); } return endpointBuilder; }
private ArgumentAcceptingOptionSpec<String> parseVault(final Configuration config) { final String vault = "vault"; ArgumentAcceptingOptionSpec<String> vaultBuilder = acceptsAll(Arrays.asList(vault, "v"), "name of your vault") .withRequiredArg() .ofType(String.class); if (config.containsKey(vault)) { vaultBuilder.defaultsTo(config.getString(vault)); } LOG.debug("vault option: {} default values: {}", vaultBuilder, vaultBuilder.defaultValues()); return vaultBuilder; }