public GroupExample(IO io) { super( io, new CreateReplayFile(io), new CommandGroup( io, "ops", "Commands used by on-call", new ExportCheckpoints(io) ) ); }
public static void main(String... args) { GroupExample runner = new GroupExample(); System.exit(runner.run(args)); } }
public T openService(HostAndPort host) { ThriftClient<T> client = createClient(); try { return openService(host, client, transport); } catch (TTransportException e) { throw new ErrorMessage(e, "Failed to connect to %s", host); } }
HostAndPort host = parser.get("--host", Converters.HOST_PORT); ThriftService<CheckpointManager> managerService = new ThriftService<>(CheckpointManager.class, parser); try (CheckpointManager manager = managerService.openService(host)) { Map<Integer, String> checkpoints = listCheckpoints(manager, application, environment, shards); deleteCheckpoints(manager, application, environment, checkpoints.keySet()); } else { io.out.println("Delete cancelled.");
@Override public void runCommand(CliParser parser) { compareFiles( parser.get("file1", Converters.FILE), parser.get("file2", Converters.FILE), parser.get("--width", Converters.INT) ); }
public void deleteCheckpoints( CheckpointManager manager, String application, String environment, Iterable<Integer> shards ) { for (int shard : shards) { io.out.statusf("Deleting checkpoint %s", shard); manager.deleteCheckpoint(application, environment, shard); } io.out.clearStatus(); }
@Override public void runCommand(CliParser parser) { createReplayFile( parser.get("--ptail"), parser.get("input_category"), parser.get("--lines", Converters.INT), new File(parser.get("output_dir")) ); }
public static void main(String... args) { IO io = new IO(); CommandRunner runner = new CommandRunner(io, new ExportCheckpoints(io)); System.exit(runner.run(args)); } }
public static void main(String... args) { IO io = new IO(); CommandRunner runner = new CommandRunner(io, new CreateReplayFile(io)); System.exit(runner.run(args)); } }
public static void main(String... args) { IO io = new IO(); CommandRunner runner = new CommandRunner(io, new CompareFiles(io)); System.exit(runner.run(args)); } }
public Map<Integer, String> listCheckpoints( CheckpointManager manager, String application, String environment, Iterable<Integer> shards ) { ImmutableMap.Builder<Integer, String> result = ImmutableMap.builder(); for (int shard : shards) { String checkpoint = manager.getCheckpoint(application, environment, shard); if (checkpoint == null) { io.out.statusf("Skipping null checkpoint %s", shard); } else { result.put(shard, checkpoint); io.out.printfln("%s: %s", shard, checkpoint); } } io.out.clearStatus(); return result.build(); }
public ThriftService(Class<T> service, CliParser parser) { this( service, Transport.valueOf( parser.get("--thrift-transport", OneOfConverter.oneOf("framed", "buffered")).toUpperCase() ), new ThriftClientConfig() .setSocksProxy(parser.get("--socks", Converters.HOST_PORT)) ); }
private T openService(HostAndPort host, ThriftClient<T> client, Transport transport) throws TTransportException { try { NiftyClientConnector<? extends NiftyClientChannel> connector; if (Transport.FRAMED.equals(transport)) { connector = new FramedClientConnector(host); } else if (Transport.BUFFERED.equals(transport)) { connector = new UnframedClientConnector(host); } else { throw new ErrorMessage("Unexpected thrift transport type: %s", transport); } return client.open(connector).get(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new TTransportException(TIMED_OUT, "Interrupted opening connection to " + host, e); } catch (ExecutionException e) { Throwable cause = e.getCause(); Throwables.propagateIfInstanceOf(cause, TTransportException.class); throw new TTransportException(UNKNOWN, "Exception opening connection to " + host, cause); } } }
@Override public CliCommand defineCommand() { CliCommand.Builder builder = new CliCommand.Builder( "export-checkpoints", "Export checkpoints, with optional deletion." ); builder.addOption("-h", "--host") .withMetavar("host:port") .withDescription("Address of checkpoint manager service"); builder.addOption("-a", "--app", "--application") .withMetavar("application") .withDescription("Application name"); builder.addOption("-e", "--env", "--environment") .withMetavar("environment") .withDescription("Environment name") .withExample("prod", "staging") .withDefault("prod"); builder.addOption("--shards") .withMetavar("list") .withDescription("List of shards to export") .withExample("0,1,2,5-12,19") .allowMultiple() .withDefault(null); builder.addFlag("--delete") .withDescription("Whether to delete the checkpoints."); ThriftService.mixin(builder); return builder.build(); }
public GroupExample(IO io) { super( io, new CreateReplayFile(io), new CommandGroup( io, "ops", "Commands used by on-call", new ExportCheckpoints(io) ) ); }
public static void main(String... args) { GroupExample runner = new GroupExample(); System.exit(runner.run(args)); } }
public T openService(HostAndPort host) { ThriftClient<T> client = createClient(); try { return openService(host, client, transport); } catch (TTransportException e) { throw new ErrorMessage(e, "Failed to connect to %s", host); } }
@Override public void runCommand(CliParser parser) { compareFiles( parser.get("file1", Converters.FILE), parser.get("file2", Converters.FILE), parser.get("--width", Converters.INT) ); }
public void deleteCheckpoints( CheckpointManager manager, String application, String environment, Iterable<Integer> shards ) { for (int shard : shards) { io.out.statusf("Deleting checkpoint %s", shard); manager.deleteCheckpoint(application, environment, shard); } io.out.clearStatus(); }
@Override public void runCommand(CliParser parser) { createReplayFile( parser.get("--ptail"), parser.get("input_category"), parser.get("--lines", Converters.INT), new File(parser.get("output_dir")) ); }