Skip to content

Commit

Permalink
pool: add option to display user subject with mover ls
Browse files Browse the repository at this point in the history
Motivation:
sometimes it's hard to match a mover with a particular user. However,
this information is available to `mover ls` command.

Modification:
update `mover ls` to accept `-u` option that will include user subject
information with mover info.

Result:
more info for admins

```
[nairi] (pool_write@dCacheDomain) admin > mover ls -u
1 : RUNNING : 00003AB2ADD08BB34F668BEAEB1959A47274 IoMode=[WRITE, READ, CREATE] ...  LM=7 si={test:public}
    <Origin[::1],UidPrincipal[1000],GidPrincipal[1000],GidPrincipal[1000,primary],GidPrincipal[59],GidPrincipal[972],GidPrincipal[975]>

```

Acked-by: Lea Morschel
Acked-by: Albert Rossi
Target: master
Require-book: no
Require-notes: yes
  • Loading branch information
kofemann committed Aug 2, 2023
1 parent c70248c commit 3fb6651
Showing 1 changed file with 15 additions and 4 deletions.
Expand Up @@ -19,13 +19,15 @@
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Function;
import java.util.stream.Collectors;
import javax.annotation.Nonnull;
import org.dcache.pool.FaultEvent;
import org.dcache.pool.FaultListener;
Expand Down Expand Up @@ -206,8 +208,14 @@ private String moverSetMaxActive(MoverRequestScheduler js, int active)
}

private static void toMoverString(MoverRequestScheduler.PrioritizedRequest j,
StringBuilder sb) {
StringBuilder sb, boolean displaySubject) {
sb.append(j.getId()).append(" : ").append(j).append('\n');
if (displaySubject) {
sb.append(
j.getMover().getSubject().getPrincipals().stream().map(Objects::toString).collect(
Collectors.joining(",", " <", ">")))
.append("\n");
}
}

@AffectsSetup
Expand Down Expand Up @@ -405,6 +413,9 @@ public class MoverLsCommand implements Callable<Serializable> {
@Option(name = "r", usage = "Sort output in reverse order.")
boolean reverseSort;

@Option(name = "u", usage = "Include user subject into output.")
boolean displaySubject;

@Override
public Serializable call() throws CommandException {
if (id != null) {
Expand Down Expand Up @@ -457,12 +468,12 @@ public Serializable call() throws CommandException {
sb.append("[").append(q.getName()).append("]\n");
q.getJobs()
.sorted()
.forEach(j -> IoQueueManager.toMoverString(j, sb));
.forEach(j -> toMoverString(j, sb, displaySubject));
});
} else {
queues.stream().flatMap(s -> s.getJobs())
.sorted(comparator)
.forEach(j -> IoQueueManager.toMoverString(j, sb));
.forEach(j -> toMoverString(j, sb, displaySubject));
}
return sb.toString();
}
Expand Down Expand Up @@ -490,7 +501,7 @@ public Serializable call() throws CommandException {
} else {
StringBuilder sb = new StringBuilder();
p2pQueue.getJobs()
.forEach(j -> IoQueueManager.toMoverString(j, sb));
.forEach(j -> toMoverString(j, sb, false));
return sb.toString();
}
}
Expand Down

0 comments on commit 3fb6651

Please sign in to comment.