@SuppressFBWarnings("SIC_INNER_SHOULD_BE_STATIC_ANON") public void addLabels(final String... visibilities) throws IOException, InterruptedException { if (visibilities.length > 0) { PrivilegedExceptionAction<VisibilityLabelsProtos.VisibilityLabelsResponse> action = new PrivilegedExceptionAction<VisibilityLabelsProtos.VisibilityLabelsResponse>() { @Override public VisibilityLabelsProtos.VisibilityLabelsResponse run() throws Exception { try (Connection conn = ConnectionFactory.createConnection(utility.getConfiguration())) { VisibilityClient.addLabels(conn, visibilities); } catch (final Throwable t) { throw new IOException(t); } return null; } }; final User superUser = User.createUserForTesting(getConfiguration(), "admin", new String[]{"supergroup"}); superUser.runAs(action); } }
private static void addLabels(final Configuration conf, final List<String> users, final List<String> labels) throws Exception { PrivilegedExceptionAction<VisibilityLabelsProtos.VisibilityLabelsResponse> action = () -> { try (Connection conn = ConnectionFactory.createConnection(conf)) { VisibilityClient.addLabels(conn, labels.toArray(new String[labels.size()])); for (String user : users) { VisibilityClient.setAuths(conn, labels.toArray(new String[labels.size()]), user); } } catch (Throwable t) { throw new IOException(t); } return null; }; getUserByLogin(USER_ADMIN).runAs(action); }
@Override public Service getService() { return VisibilityLabelsProtos.VisibilityLabelsService.newReflectiveService(this); }
@Override public Iterable<Service> getServices() { return Collections.singleton( VisibilityLabelsProtos.VisibilityLabelsService.newReflectiveService(this)); }