Merge branch '1.6' into 1.7 Conflicts: shell/src/main/java/org/apache/accumulo/shell/commands/ActiveScanIterator.java
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/da484a88 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/da484a88 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/da484a88 Branch: refs/heads/1.7 Commit: da484a8824ea5c130e0749b5494d452de8e7ab20 Parents: 071c32f dcd27de Author: Josh Elser <els...@apache.org> Authored: Fri Aug 21 23:51:15 2015 -0400 Committer: Josh Elser <els...@apache.org> Committed: Fri Aug 21 23:51:15 2015 -0400 ---------------------------------------------------------------------- .../accumulo/shell/commands/ActiveScanIterator.java | 10 +++++----- .../test/java/org/apache/accumulo/test/ShellServerIT.java | 4 +++- 2 files changed, 8 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/da484a88/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveScanIterator.java ---------------------------------------------------------------------- diff --cc shell/src/main/java/org/apache/accumulo/shell/commands/ActiveScanIterator.java index d446534,0000000..9f2e23b mode 100644,000000..100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveScanIterator.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveScanIterator.java @@@ -1,93 -1,0 +1,93 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.accumulo.shell.commands; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; + +import org.apache.accumulo.core.client.admin.ActiveScan; +import org.apache.accumulo.core.client.admin.InstanceOperations; +import org.apache.accumulo.core.client.admin.ScanType; +import org.apache.accumulo.core.util.Duration; + +class ActiveScanIterator implements Iterator<String> { + + private InstanceOperations instanceOps; + private Iterator<String> tsIter; + private Iterator<String> scansIter; + + private void readNext() { + final List<String> scans = new ArrayList<String>(); + + while (tsIter.hasNext()) { + + final String tserver = tsIter.next(); + try { + final List<ActiveScan> asl = instanceOps.getActiveScans(tserver); + + for (ActiveScan as : asl) { + scans - .add(String.format("%21s |%21s |%9s |%9s |%7s |%6s |%8s |%8s |%10s |%20s |%10s |%10s | %s", tserver, as.getClient(), ++ .add(String.format("%21s |%21s |%9s |%9s |%7s |%6s |%8s |%8s |%10s |%20s |%10s |%20s |%10s | %s", tserver, as.getClient(), + Duration.format(as.getAge(), "", "-"), Duration.format(as.getLastContactTime(), "", "-"), as.getState(), as.getType(), as.getUser(), - as.getTable(), as.getColumns(), as.getAuthorizations(), (as.getType() == ScanType.SINGLE ? as.getTablet() : "N/A"), as.getSsiList(), - as.getSsio())); ++ as.getTable(), as.getColumns(), as.getAuthorizations(), (as.getType() == ScanType.SINGLE ? as.getTablet() : "N/A"), as.getScanid(), ++ as.getSsiList(), as.getSsio())); + } + } catch (Exception e) { + scans.add(tserver + " ERROR " + e.getMessage()); + } + + if (scans.size() > 0) { + break; + } + } + + scansIter = scans.iterator(); + } + + ActiveScanIterator(List<String> tservers, InstanceOperations instanceOps) { + this.instanceOps = instanceOps; + this.tsIter = tservers.iterator(); + - final String header = String.format(" %-21s| %-21s| %-9s| %-9s| %-7s| %-6s| %-8s| %-8s| %-10s| %-20s| %-10s| %-10s | %s", "TABLET SERVER", "CLIENT", "AGE", - "LAST", "STATE", "TYPE", "USER", "TABLE", "COLUMNS", "AUTHORIZATIONS", "TABLET", "ITERATORS", "ITERATOR OPTIONS"); ++ final String header = String.format(" %-21s| %-21s| %-9s| %-9s| %-7s| %-6s| %-8s| %-8s| %-10s| %-20s| %-10s| %-10s | %-20s | %s", "TABLET SERVER", ++ "CLIENT", "AGE", "LAST", "STATE", "TYPE", "USER", "TABLE", "COLUMNS", "AUTHORIZATIONS", "TABLET", "SCAN ID", "ITERATORS", "ITERATOR OPTIONS"); + + scansIter = Collections.singletonList(header).iterator(); + } + + @Override + public boolean hasNext() { + return scansIter.hasNext(); + } + + @Override + public String next() { + final String next = scansIter.next(); + + if (!scansIter.hasNext()) + readNext(); + + return next; + } + + @Override + public void remove() { + throw new UnsupportedOperationException(); + } + +} http://git-wip-us.apache.org/repos/asf/accumulo/blob/da484a88/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java ----------------------------------------------------------------------