http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2bb8bd01/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html index d3c7efb..92c2266 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html @@ -2583,206 +2583,179 @@ <span class="sourceLineNo">2575</span> }<a name="line.2575"></a> <span class="sourceLineNo">2576</span><a name="line.2576"></a> <span class="sourceLineNo">2577</span> @Override<a name="line.2577"></a> -<span class="sourceLineNo">2578</span> public void preMerge(ObserverContext<RegionServerCoprocessorEnvironment> ctx, Region regionA,<a name="line.2578"></a> -<span class="sourceLineNo">2579</span> Region regionB) throws IOException {<a name="line.2579"></a> -<span class="sourceLineNo">2580</span> requirePermission(getActiveUser(ctx), "mergeRegions", regionA.getTableDescriptor().getTableName(),<a name="line.2580"></a> -<span class="sourceLineNo">2581</span> null, null, Action.ADMIN);<a name="line.2581"></a> -<span class="sourceLineNo">2582</span> }<a name="line.2582"></a> -<span class="sourceLineNo">2583</span><a name="line.2583"></a> -<span class="sourceLineNo">2584</span> @Override<a name="line.2584"></a> -<span class="sourceLineNo">2585</span> public void postMerge(ObserverContext<RegionServerCoprocessorEnvironment> c, Region regionA,<a name="line.2585"></a> -<span class="sourceLineNo">2586</span> Region regionB, Region mergedRegion) throws IOException { }<a name="line.2586"></a> -<span class="sourceLineNo">2587</span><a name="line.2587"></a> -<span class="sourceLineNo">2588</span> @Override<a name="line.2588"></a> -<span class="sourceLineNo">2589</span> public void preMergeCommit(ObserverContext<RegionServerCoprocessorEnvironment> ctx,<a name="line.2589"></a> -<span class="sourceLineNo">2590</span> Region regionA, Region regionB, List<Mutation> metaEntries) throws IOException { }<a name="line.2590"></a> -<span class="sourceLineNo">2591</span><a name="line.2591"></a> -<span class="sourceLineNo">2592</span> @Override<a name="line.2592"></a> -<span class="sourceLineNo">2593</span> public void postMergeCommit(ObserverContext<RegionServerCoprocessorEnvironment> ctx,<a name="line.2593"></a> -<span class="sourceLineNo">2594</span> Region regionA, Region regionB, Region mergedRegion) throws IOException { }<a name="line.2594"></a> -<span class="sourceLineNo">2595</span><a name="line.2595"></a> -<span class="sourceLineNo">2596</span> @Override<a name="line.2596"></a> -<span class="sourceLineNo">2597</span> public void preRollBackMerge(ObserverContext<RegionServerCoprocessorEnvironment> ctx,<a name="line.2597"></a> -<span class="sourceLineNo">2598</span> Region regionA, Region regionB) throws IOException { }<a name="line.2598"></a> -<span class="sourceLineNo">2599</span><a name="line.2599"></a> -<span class="sourceLineNo">2600</span> @Override<a name="line.2600"></a> -<span class="sourceLineNo">2601</span> public void postRollBackMerge(ObserverContext<RegionServerCoprocessorEnvironment> ctx,<a name="line.2601"></a> -<span class="sourceLineNo">2602</span> Region regionA, Region regionB) throws IOException { }<a name="line.2602"></a> -<span class="sourceLineNo">2603</span><a name="line.2603"></a> -<span class="sourceLineNo">2604</span> @Override<a name="line.2604"></a> -<span class="sourceLineNo">2605</span> public void preRollWALWriterRequest(ObserverContext<RegionServerCoprocessorEnvironment> ctx)<a name="line.2605"></a> -<span class="sourceLineNo">2606</span> throws IOException {<a name="line.2606"></a> -<span class="sourceLineNo">2607</span> requirePermission(getActiveUser(ctx), "preRollLogWriterRequest", Permission.Action.ADMIN);<a name="line.2607"></a> -<span class="sourceLineNo">2608</span> }<a name="line.2608"></a> -<span class="sourceLineNo">2609</span><a name="line.2609"></a> -<span class="sourceLineNo">2610</span> @Override<a name="line.2610"></a> -<span class="sourceLineNo">2611</span> public void postRollWALWriterRequest(ObserverContext<RegionServerCoprocessorEnvironment> ctx)<a name="line.2611"></a> -<span class="sourceLineNo">2612</span> throws IOException { }<a name="line.2612"></a> -<span class="sourceLineNo">2613</span><a name="line.2613"></a> -<span class="sourceLineNo">2614</span> @Override<a name="line.2614"></a> -<span class="sourceLineNo">2615</span> public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2615"></a> -<span class="sourceLineNo">2616</span> final String userName, final Quotas quotas) throws IOException {<a name="line.2616"></a> -<span class="sourceLineNo">2617</span> requirePermission(getActiveUser(ctx), "setUserQuota", Action.ADMIN);<a name="line.2617"></a> -<span class="sourceLineNo">2618</span> }<a name="line.2618"></a> -<span class="sourceLineNo">2619</span><a name="line.2619"></a> -<span class="sourceLineNo">2620</span> @Override<a name="line.2620"></a> -<span class="sourceLineNo">2621</span> public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2621"></a> -<span class="sourceLineNo">2622</span> final String userName, final TableName tableName, final Quotas quotas) throws IOException {<a name="line.2622"></a> -<span class="sourceLineNo">2623</span> requirePermission(getActiveUser(ctx), "setUserTableQuota", tableName, null, null, Action.ADMIN);<a name="line.2623"></a> -<span class="sourceLineNo">2624</span> }<a name="line.2624"></a> -<span class="sourceLineNo">2625</span><a name="line.2625"></a> -<span class="sourceLineNo">2626</span> @Override<a name="line.2626"></a> -<span class="sourceLineNo">2627</span> public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2627"></a> -<span class="sourceLineNo">2628</span> final String userName, final String namespace, final Quotas quotas) throws IOException {<a name="line.2628"></a> -<span class="sourceLineNo">2629</span> requirePermission(getActiveUser(ctx), "setUserNamespaceQuota", Action.ADMIN);<a name="line.2629"></a> -<span class="sourceLineNo">2630</span> }<a name="line.2630"></a> -<span class="sourceLineNo">2631</span><a name="line.2631"></a> -<span class="sourceLineNo">2632</span> @Override<a name="line.2632"></a> -<span class="sourceLineNo">2633</span> public void preSetTableQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2633"></a> -<span class="sourceLineNo">2634</span> final TableName tableName, final Quotas quotas) throws IOException {<a name="line.2634"></a> -<span class="sourceLineNo">2635</span> requirePermission(getActiveUser(ctx), "setTableQuota", tableName, null, null, Action.ADMIN);<a name="line.2635"></a> -<span class="sourceLineNo">2636</span> }<a name="line.2636"></a> -<span class="sourceLineNo">2637</span><a name="line.2637"></a> -<span class="sourceLineNo">2638</span> @Override<a name="line.2638"></a> -<span class="sourceLineNo">2639</span> public void preSetNamespaceQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2639"></a> -<span class="sourceLineNo">2640</span> final String namespace, final Quotas quotas) throws IOException {<a name="line.2640"></a> -<span class="sourceLineNo">2641</span> requirePermission(getActiveUser(ctx), "setNamespaceQuota", Action.ADMIN);<a name="line.2641"></a> -<span class="sourceLineNo">2642</span> }<a name="line.2642"></a> -<span class="sourceLineNo">2643</span><a name="line.2643"></a> -<span class="sourceLineNo">2644</span> @Override<a name="line.2644"></a> -<span class="sourceLineNo">2645</span> public ReplicationEndpoint postCreateReplicationEndPoint(<a name="line.2645"></a> -<span class="sourceLineNo">2646</span> ObserverContext<RegionServerCoprocessorEnvironment> ctx, ReplicationEndpoint endpoint) {<a name="line.2646"></a> -<span class="sourceLineNo">2647</span> return endpoint;<a name="line.2647"></a> -<span class="sourceLineNo">2648</span> }<a name="line.2648"></a> -<span class="sourceLineNo">2649</span><a name="line.2649"></a> -<span class="sourceLineNo">2650</span> @Override<a name="line.2650"></a> -<span class="sourceLineNo">2651</span> public void preReplicateLogEntries(ObserverContext<RegionServerCoprocessorEnvironment> ctx,<a name="line.2651"></a> -<span class="sourceLineNo">2652</span> List<WALEntry> entries, CellScanner cells) throws IOException {<a name="line.2652"></a> -<span class="sourceLineNo">2653</span> requirePermission(getActiveUser(ctx), "replicateLogEntries", Action.WRITE);<a name="line.2653"></a> -<span class="sourceLineNo">2654</span> }<a name="line.2654"></a> -<span class="sourceLineNo">2655</span><a name="line.2655"></a> -<span class="sourceLineNo">2656</span> @Override<a name="line.2656"></a> -<span class="sourceLineNo">2657</span> public void postReplicateLogEntries(ObserverContext<RegionServerCoprocessorEnvironment> ctx,<a name="line.2657"></a> -<span class="sourceLineNo">2658</span> List<WALEntry> entries, CellScanner cells) throws IOException {<a name="line.2658"></a> -<span class="sourceLineNo">2659</span> }<a name="line.2659"></a> -<span class="sourceLineNo">2660</span><a name="line.2660"></a> -<span class="sourceLineNo">2661</span> @Override<a name="line.2661"></a> -<span class="sourceLineNo">2662</span> public void preClearCompactionQueues(ObserverContext<RegionServerCoprocessorEnvironment> ctx)<a name="line.2662"></a> -<span class="sourceLineNo">2663</span> throws IOException {<a name="line.2663"></a> -<span class="sourceLineNo">2664</span> requirePermission(getActiveUser(ctx), "preClearCompactionQueues", Permission.Action.ADMIN);<a name="line.2664"></a> -<span class="sourceLineNo">2665</span> }<a name="line.2665"></a> -<span class="sourceLineNo">2666</span><a name="line.2666"></a> -<span class="sourceLineNo">2667</span> @Override<a name="line.2667"></a> -<span class="sourceLineNo">2668</span> public void preMoveServersAndTables(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2668"></a> -<span class="sourceLineNo">2669</span> Set<Address> servers, Set<TableName> tables, String targetGroup) throws IOException {<a name="line.2669"></a> -<span class="sourceLineNo">2670</span> requirePermission(getActiveUser(ctx), "moveServersAndTables", Action.ADMIN);<a name="line.2670"></a> -<span class="sourceLineNo">2671</span> }<a name="line.2671"></a> -<span class="sourceLineNo">2672</span><a name="line.2672"></a> -<span class="sourceLineNo">2673</span> @Override<a name="line.2673"></a> -<span class="sourceLineNo">2674</span> public void preMoveServers(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2674"></a> -<span class="sourceLineNo">2675</span> Set<Address> servers, String targetGroup) throws IOException {<a name="line.2675"></a> -<span class="sourceLineNo">2676</span> requirePermission(getActiveUser(ctx), "moveServers", Action.ADMIN);<a name="line.2676"></a> -<span class="sourceLineNo">2677</span> }<a name="line.2677"></a> -<span class="sourceLineNo">2678</span><a name="line.2678"></a> -<span class="sourceLineNo">2679</span> @Override<a name="line.2679"></a> -<span class="sourceLineNo">2680</span> public void preMoveTables(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2680"></a> -<span class="sourceLineNo">2681</span> Set<TableName> tables, String targetGroup) throws IOException {<a name="line.2681"></a> -<span class="sourceLineNo">2682</span> requirePermission(getActiveUser(ctx), "moveTables", Action.ADMIN);<a name="line.2682"></a> -<span class="sourceLineNo">2683</span> }<a name="line.2683"></a> -<span class="sourceLineNo">2684</span><a name="line.2684"></a> -<span class="sourceLineNo">2685</span> @Override<a name="line.2685"></a> -<span class="sourceLineNo">2686</span> public void preAddRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2686"></a> -<span class="sourceLineNo">2687</span> String name) throws IOException {<a name="line.2687"></a> -<span class="sourceLineNo">2688</span> requirePermission(getActiveUser(ctx), "addRSGroup", Action.ADMIN);<a name="line.2688"></a> -<span class="sourceLineNo">2689</span> }<a name="line.2689"></a> -<span class="sourceLineNo">2690</span><a name="line.2690"></a> -<span class="sourceLineNo">2691</span> @Override<a name="line.2691"></a> -<span class="sourceLineNo">2692</span> public void preRemoveRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2692"></a> -<span class="sourceLineNo">2693</span> String name) throws IOException {<a name="line.2693"></a> -<span class="sourceLineNo">2694</span> requirePermission(getActiveUser(ctx), "removeRSGroup", Action.ADMIN);<a name="line.2694"></a> -<span class="sourceLineNo">2695</span> }<a name="line.2695"></a> -<span class="sourceLineNo">2696</span><a name="line.2696"></a> -<span class="sourceLineNo">2697</span> @Override<a name="line.2697"></a> -<span class="sourceLineNo">2698</span> public void preBalanceRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2698"></a> -<span class="sourceLineNo">2699</span> String groupName) throws IOException {<a name="line.2699"></a> -<span class="sourceLineNo">2700</span> requirePermission(getActiveUser(ctx), "balanceRSGroup", Action.ADMIN);<a name="line.2700"></a> -<span class="sourceLineNo">2701</span> }<a name="line.2701"></a> -<span class="sourceLineNo">2702</span><a name="line.2702"></a> -<span class="sourceLineNo">2703</span> @Override<a name="line.2703"></a> -<span class="sourceLineNo">2704</span> public void preAddReplicationPeer(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2704"></a> -<span class="sourceLineNo">2705</span> String peerId, ReplicationPeerConfig peerConfig) throws IOException {<a name="line.2705"></a> -<span class="sourceLineNo">2706</span> requirePermission(getActiveUser(ctx), "addReplicationPeer", Action.ADMIN);<a name="line.2706"></a> -<span class="sourceLineNo">2707</span> }<a name="line.2707"></a> -<span class="sourceLineNo">2708</span><a name="line.2708"></a> -<span class="sourceLineNo">2709</span> @Override<a name="line.2709"></a> -<span class="sourceLineNo">2710</span> public void preRemoveReplicationPeer(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2710"></a> -<span class="sourceLineNo">2711</span> String peerId) throws IOException {<a name="line.2711"></a> -<span class="sourceLineNo">2712</span> requirePermission(getActiveUser(ctx), "removeReplicationPeer", Action.ADMIN);<a name="line.2712"></a> -<span class="sourceLineNo">2713</span> }<a name="line.2713"></a> -<span class="sourceLineNo">2714</span><a name="line.2714"></a> -<span class="sourceLineNo">2715</span> @Override<a name="line.2715"></a> -<span class="sourceLineNo">2716</span> public void preEnableReplicationPeer(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2716"></a> -<span class="sourceLineNo">2717</span> String peerId) throws IOException {<a name="line.2717"></a> -<span class="sourceLineNo">2718</span> requirePermission(getActiveUser(ctx), "enableReplicationPeer", Action.ADMIN);<a name="line.2718"></a> -<span class="sourceLineNo">2719</span> }<a name="line.2719"></a> -<span class="sourceLineNo">2720</span><a name="line.2720"></a> -<span class="sourceLineNo">2721</span> @Override<a name="line.2721"></a> -<span class="sourceLineNo">2722</span> public void preDisableReplicationPeer(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2722"></a> -<span class="sourceLineNo">2723</span> String peerId) throws IOException {<a name="line.2723"></a> -<span class="sourceLineNo">2724</span> requirePermission(getActiveUser(ctx), "disableReplicationPeer", Action.ADMIN);<a name="line.2724"></a> -<span class="sourceLineNo">2725</span> }<a name="line.2725"></a> -<span class="sourceLineNo">2726</span><a name="line.2726"></a> -<span class="sourceLineNo">2727</span> @Override<a name="line.2727"></a> -<span class="sourceLineNo">2728</span> public void preGetReplicationPeerConfig(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2728"></a> -<span class="sourceLineNo">2729</span> String peerId) throws IOException {<a name="line.2729"></a> -<span class="sourceLineNo">2730</span> requirePermission(getActiveUser(ctx), "getReplicationPeerConfig", Action.ADMIN);<a name="line.2730"></a> -<span class="sourceLineNo">2731</span> }<a name="line.2731"></a> -<span class="sourceLineNo">2732</span><a name="line.2732"></a> -<span class="sourceLineNo">2733</span> @Override<a name="line.2733"></a> -<span class="sourceLineNo">2734</span> public void preUpdateReplicationPeerConfig(<a name="line.2734"></a> -<span class="sourceLineNo">2735</span> final ObserverContext<MasterCoprocessorEnvironment> ctx, String peerId,<a name="line.2735"></a> -<span class="sourceLineNo">2736</span> ReplicationPeerConfig peerConfig) throws IOException {<a name="line.2736"></a> -<span class="sourceLineNo">2737</span> requirePermission(getActiveUser(ctx), "updateReplicationPeerConfig", Action.ADMIN);<a name="line.2737"></a> -<span class="sourceLineNo">2738</span> }<a name="line.2738"></a> -<span class="sourceLineNo">2739</span><a name="line.2739"></a> -<span class="sourceLineNo">2740</span> @Override<a name="line.2740"></a> -<span class="sourceLineNo">2741</span> public void preListReplicationPeers(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2741"></a> -<span class="sourceLineNo">2742</span> String regex) throws IOException {<a name="line.2742"></a> -<span class="sourceLineNo">2743</span> requirePermission(getActiveUser(ctx), "listReplicationPeers", Action.ADMIN);<a name="line.2743"></a> -<span class="sourceLineNo">2744</span> }<a name="line.2744"></a> -<span class="sourceLineNo">2745</span><a name="line.2745"></a> -<span class="sourceLineNo">2746</span> @Override<a name="line.2746"></a> -<span class="sourceLineNo">2747</span> public void preRequestLock(ObserverContext<MasterCoprocessorEnvironment> ctx, String namespace,<a name="line.2747"></a> -<span class="sourceLineNo">2748</span> TableName tableName, HRegionInfo[] regionInfos, LockType type, String description)<a name="line.2748"></a> -<span class="sourceLineNo">2749</span> throws IOException {<a name="line.2749"></a> -<span class="sourceLineNo">2750</span> // There are operations in the CREATE and ADMIN domain which may require lock, READ<a name="line.2750"></a> -<span class="sourceLineNo">2751</span> // or WRITE. So for any lock request, we check for these two perms irrespective of lock type.<a name="line.2751"></a> -<span class="sourceLineNo">2752</span> String reason = String.format("Lock %s, description=%s", type, description);<a name="line.2752"></a> -<span class="sourceLineNo">2753</span> checkLockPermissions(getActiveUser(ctx), namespace, tableName, regionInfos, reason);<a name="line.2753"></a> -<span class="sourceLineNo">2754</span> }<a name="line.2754"></a> -<span class="sourceLineNo">2755</span><a name="line.2755"></a> -<span class="sourceLineNo">2756</span> @Override<a name="line.2756"></a> -<span class="sourceLineNo">2757</span> public void preLockHeartbeat(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2757"></a> -<span class="sourceLineNo">2758</span> LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.2758"></a> -<span class="sourceLineNo">2759</span> String reason = "Heartbeat for lock " + proc.getProcId();<a name="line.2759"></a> -<span class="sourceLineNo">2760</span> checkLockPermissions(getActiveUser(ctx), null, proc.getTableName(), null, reason);<a name="line.2760"></a> -<span class="sourceLineNo">2761</span> }<a name="line.2761"></a> -<span class="sourceLineNo">2762</span><a name="line.2762"></a> -<span class="sourceLineNo">2763</span> private void checkLockPermissions(User user, String namespace,<a name="line.2763"></a> -<span class="sourceLineNo">2764</span> TableName tableName, HRegionInfo[] regionInfos, String reason)<a name="line.2764"></a> -<span class="sourceLineNo">2765</span> throws IOException {<a name="line.2765"></a> -<span class="sourceLineNo">2766</span> if (namespace != null && !namespace.isEmpty()) {<a name="line.2766"></a> -<span class="sourceLineNo">2767</span> requireNamespacePermission(user, reason, namespace, Action.ADMIN, Action.CREATE);<a name="line.2767"></a> -<span class="sourceLineNo">2768</span> } else if (tableName != null || (regionInfos != null && regionInfos.length > 0)) {<a name="line.2768"></a> -<span class="sourceLineNo">2769</span> // So, either a table or regions op. If latter, check perms ons table.<a name="line.2769"></a> -<span class="sourceLineNo">2770</span> TableName tn = tableName != null? tableName: regionInfos[0].getTable();<a name="line.2770"></a> -<span class="sourceLineNo">2771</span> requireTablePermission(user, reason, tn, null, null,<a name="line.2771"></a> -<span class="sourceLineNo">2772</span> Action.ADMIN, Action.CREATE);<a name="line.2772"></a> -<span class="sourceLineNo">2773</span> } else {<a name="line.2773"></a> -<span class="sourceLineNo">2774</span> throw new DoNotRetryIOException("Invalid lock level when requesting permissions.");<a name="line.2774"></a> -<span class="sourceLineNo">2775</span> }<a name="line.2775"></a> -<span class="sourceLineNo">2776</span> }<a name="line.2776"></a> -<span class="sourceLineNo">2777</span>}<a name="line.2777"></a> +<span class="sourceLineNo">2578</span> public void preRollWALWriterRequest(ObserverContext<RegionServerCoprocessorEnvironment> ctx)<a name="line.2578"></a> +<span class="sourceLineNo">2579</span> throws IOException {<a name="line.2579"></a> +<span class="sourceLineNo">2580</span> requirePermission(getActiveUser(ctx), "preRollLogWriterRequest", Permission.Action.ADMIN);<a name="line.2580"></a> +<span class="sourceLineNo">2581</span> }<a name="line.2581"></a> +<span class="sourceLineNo">2582</span><a name="line.2582"></a> +<span class="sourceLineNo">2583</span> @Override<a name="line.2583"></a> +<span class="sourceLineNo">2584</span> public void postRollWALWriterRequest(ObserverContext<RegionServerCoprocessorEnvironment> ctx)<a name="line.2584"></a> +<span class="sourceLineNo">2585</span> throws IOException { }<a name="line.2585"></a> +<span class="sourceLineNo">2586</span><a name="line.2586"></a> +<span class="sourceLineNo">2587</span> @Override<a name="line.2587"></a> +<span class="sourceLineNo">2588</span> public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2588"></a> +<span class="sourceLineNo">2589</span> final String userName, final Quotas quotas) throws IOException {<a name="line.2589"></a> +<span class="sourceLineNo">2590</span> requirePermission(getActiveUser(ctx), "setUserQuota", Action.ADMIN);<a name="line.2590"></a> +<span class="sourceLineNo">2591</span> }<a name="line.2591"></a> +<span class="sourceLineNo">2592</span><a name="line.2592"></a> +<span class="sourceLineNo">2593</span> @Override<a name="line.2593"></a> +<span class="sourceLineNo">2594</span> public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2594"></a> +<span class="sourceLineNo">2595</span> final String userName, final TableName tableName, final Quotas quotas) throws IOException {<a name="line.2595"></a> +<span class="sourceLineNo">2596</span> requirePermission(getActiveUser(ctx), "setUserTableQuota", tableName, null, null, Action.ADMIN);<a name="line.2596"></a> +<span class="sourceLineNo">2597</span> }<a name="line.2597"></a> +<span class="sourceLineNo">2598</span><a name="line.2598"></a> +<span class="sourceLineNo">2599</span> @Override<a name="line.2599"></a> +<span class="sourceLineNo">2600</span> public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2600"></a> +<span class="sourceLineNo">2601</span> final String userName, final String namespace, final Quotas quotas) throws IOException {<a name="line.2601"></a> +<span class="sourceLineNo">2602</span> requirePermission(getActiveUser(ctx), "setUserNamespaceQuota", Action.ADMIN);<a name="line.2602"></a> +<span class="sourceLineNo">2603</span> }<a name="line.2603"></a> +<span class="sourceLineNo">2604</span><a name="line.2604"></a> +<span class="sourceLineNo">2605</span> @Override<a name="line.2605"></a> +<span class="sourceLineNo">2606</span> public void preSetTableQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2606"></a> +<span class="sourceLineNo">2607</span> final TableName tableName, final Quotas quotas) throws IOException {<a name="line.2607"></a> +<span class="sourceLineNo">2608</span> requirePermission(getActiveUser(ctx), "setTableQuota", tableName, null, null, Action.ADMIN);<a name="line.2608"></a> +<span class="sourceLineNo">2609</span> }<a name="line.2609"></a> +<span class="sourceLineNo">2610</span><a name="line.2610"></a> +<span class="sourceLineNo">2611</span> @Override<a name="line.2611"></a> +<span class="sourceLineNo">2612</span> public void preSetNamespaceQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2612"></a> +<span class="sourceLineNo">2613</span> final String namespace, final Quotas quotas) throws IOException {<a name="line.2613"></a> +<span class="sourceLineNo">2614</span> requirePermission(getActiveUser(ctx), "setNamespaceQuota", Action.ADMIN);<a name="line.2614"></a> +<span class="sourceLineNo">2615</span> }<a name="line.2615"></a> +<span class="sourceLineNo">2616</span><a name="line.2616"></a> +<span class="sourceLineNo">2617</span> @Override<a name="line.2617"></a> +<span class="sourceLineNo">2618</span> public ReplicationEndpoint postCreateReplicationEndPoint(<a name="line.2618"></a> +<span class="sourceLineNo">2619</span> ObserverContext<RegionServerCoprocessorEnvironment> ctx, ReplicationEndpoint endpoint) {<a name="line.2619"></a> +<span class="sourceLineNo">2620</span> return endpoint;<a name="line.2620"></a> +<span class="sourceLineNo">2621</span> }<a name="line.2621"></a> +<span class="sourceLineNo">2622</span><a name="line.2622"></a> +<span class="sourceLineNo">2623</span> @Override<a name="line.2623"></a> +<span class="sourceLineNo">2624</span> public void preReplicateLogEntries(ObserverContext<RegionServerCoprocessorEnvironment> ctx,<a name="line.2624"></a> +<span class="sourceLineNo">2625</span> List<WALEntry> entries, CellScanner cells) throws IOException {<a name="line.2625"></a> +<span class="sourceLineNo">2626</span> requirePermission(getActiveUser(ctx), "replicateLogEntries", Action.WRITE);<a name="line.2626"></a> +<span class="sourceLineNo">2627</span> }<a name="line.2627"></a> +<span class="sourceLineNo">2628</span><a name="line.2628"></a> +<span class="sourceLineNo">2629</span> @Override<a name="line.2629"></a> +<span class="sourceLineNo">2630</span> public void postReplicateLogEntries(ObserverContext<RegionServerCoprocessorEnvironment> ctx,<a name="line.2630"></a> +<span class="sourceLineNo">2631</span> List<WALEntry> entries, CellScanner cells) throws IOException {<a name="line.2631"></a> +<span class="sourceLineNo">2632</span> }<a name="line.2632"></a> +<span class="sourceLineNo">2633</span><a name="line.2633"></a> +<span class="sourceLineNo">2634</span> @Override<a name="line.2634"></a> +<span class="sourceLineNo">2635</span> public void preClearCompactionQueues(ObserverContext<RegionServerCoprocessorEnvironment> ctx)<a name="line.2635"></a> +<span class="sourceLineNo">2636</span> throws IOException {<a name="line.2636"></a> +<span class="sourceLineNo">2637</span> requirePermission(getActiveUser(ctx), "preClearCompactionQueues", Permission.Action.ADMIN);<a name="line.2637"></a> +<span class="sourceLineNo">2638</span> }<a name="line.2638"></a> +<span class="sourceLineNo">2639</span><a name="line.2639"></a> +<span class="sourceLineNo">2640</span> @Override<a name="line.2640"></a> +<span class="sourceLineNo">2641</span> public void preMoveServersAndTables(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2641"></a> +<span class="sourceLineNo">2642</span> Set<Address> servers, Set<TableName> tables, String targetGroup) throws IOException {<a name="line.2642"></a> +<span class="sourceLineNo">2643</span> requirePermission(getActiveUser(ctx), "moveServersAndTables", Action.ADMIN);<a name="line.2643"></a> +<span class="sourceLineNo">2644</span> }<a name="line.2644"></a> +<span class="sourceLineNo">2645</span><a name="line.2645"></a> +<span class="sourceLineNo">2646</span> @Override<a name="line.2646"></a> +<span class="sourceLineNo">2647</span> public void preMoveServers(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2647"></a> +<span class="sourceLineNo">2648</span> Set<Address> servers, String targetGroup) throws IOException {<a name="line.2648"></a> +<span class="sourceLineNo">2649</span> requirePermission(getActiveUser(ctx), "moveServers", Action.ADMIN);<a name="line.2649"></a> +<span class="sourceLineNo">2650</span> }<a name="line.2650"></a> +<span class="sourceLineNo">2651</span><a name="line.2651"></a> +<span class="sourceLineNo">2652</span> @Override<a name="line.2652"></a> +<span class="sourceLineNo">2653</span> public void preMoveTables(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2653"></a> +<span class="sourceLineNo">2654</span> Set<TableName> tables, String targetGroup) throws IOException {<a name="line.2654"></a> +<span class="sourceLineNo">2655</span> requirePermission(getActiveUser(ctx), "moveTables", Action.ADMIN);<a name="line.2655"></a> +<span class="sourceLineNo">2656</span> }<a name="line.2656"></a> +<span class="sourceLineNo">2657</span><a name="line.2657"></a> +<span class="sourceLineNo">2658</span> @Override<a name="line.2658"></a> +<span class="sourceLineNo">2659</span> public void preAddRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2659"></a> +<span class="sourceLineNo">2660</span> String name) throws IOException {<a name="line.2660"></a> +<span class="sourceLineNo">2661</span> requirePermission(getActiveUser(ctx), "addRSGroup", Action.ADMIN);<a name="line.2661"></a> +<span class="sourceLineNo">2662</span> }<a name="line.2662"></a> +<span class="sourceLineNo">2663</span><a name="line.2663"></a> +<span class="sourceLineNo">2664</span> @Override<a name="line.2664"></a> +<span class="sourceLineNo">2665</span> public void preRemoveRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2665"></a> +<span class="sourceLineNo">2666</span> String name) throws IOException {<a name="line.2666"></a> +<span class="sourceLineNo">2667</span> requirePermission(getActiveUser(ctx), "removeRSGroup", Action.ADMIN);<a name="line.2667"></a> +<span class="sourceLineNo">2668</span> }<a name="line.2668"></a> +<span class="sourceLineNo">2669</span><a name="line.2669"></a> +<span class="sourceLineNo">2670</span> @Override<a name="line.2670"></a> +<span class="sourceLineNo">2671</span> public void preBalanceRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2671"></a> +<span class="sourceLineNo">2672</span> String groupName) throws IOException {<a name="line.2672"></a> +<span class="sourceLineNo">2673</span> requirePermission(getActiveUser(ctx), "balanceRSGroup", Action.ADMIN);<a name="line.2673"></a> +<span class="sourceLineNo">2674</span> }<a name="line.2674"></a> +<span class="sourceLineNo">2675</span><a name="line.2675"></a> +<span class="sourceLineNo">2676</span> @Override<a name="line.2676"></a> +<span class="sourceLineNo">2677</span> public void preAddReplicationPeer(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2677"></a> +<span class="sourceLineNo">2678</span> String peerId, ReplicationPeerConfig peerConfig) throws IOException {<a name="line.2678"></a> +<span class="sourceLineNo">2679</span> requirePermission(getActiveUser(ctx), "addReplicationPeer", Action.ADMIN);<a name="line.2679"></a> +<span class="sourceLineNo">2680</span> }<a name="line.2680"></a> +<span class="sourceLineNo">2681</span><a name="line.2681"></a> +<span class="sourceLineNo">2682</span> @Override<a name="line.2682"></a> +<span class="sourceLineNo">2683</span> public void preRemoveReplicationPeer(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2683"></a> +<span class="sourceLineNo">2684</span> String peerId) throws IOException {<a name="line.2684"></a> +<span class="sourceLineNo">2685</span> requirePermission(getActiveUser(ctx), "removeReplicationPeer", Action.ADMIN);<a name="line.2685"></a> +<span class="sourceLineNo">2686</span> }<a name="line.2686"></a> +<span class="sourceLineNo">2687</span><a name="line.2687"></a> +<span class="sourceLineNo">2688</span> @Override<a name="line.2688"></a> +<span class="sourceLineNo">2689</span> public void preEnableReplicationPeer(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2689"></a> +<span class="sourceLineNo">2690</span> String peerId) throws IOException {<a name="line.2690"></a> +<span class="sourceLineNo">2691</span> requirePermission(getActiveUser(ctx), "enableReplicationPeer", Action.ADMIN);<a name="line.2691"></a> +<span class="sourceLineNo">2692</span> }<a name="line.2692"></a> +<span class="sourceLineNo">2693</span><a name="line.2693"></a> +<span class="sourceLineNo">2694</span> @Override<a name="line.2694"></a> +<span class="sourceLineNo">2695</span> public void preDisableReplicationPeer(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2695"></a> +<span class="sourceLineNo">2696</span> String peerId) throws IOException {<a name="line.2696"></a> +<span class="sourceLineNo">2697</span> requirePermission(getActiveUser(ctx), "disableReplicationPeer", Action.ADMIN);<a name="line.2697"></a> +<span class="sourceLineNo">2698</span> }<a name="line.2698"></a> +<span class="sourceLineNo">2699</span><a name="line.2699"></a> +<span class="sourceLineNo">2700</span> @Override<a name="line.2700"></a> +<span class="sourceLineNo">2701</span> public void preGetReplicationPeerConfig(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2701"></a> +<span class="sourceLineNo">2702</span> String peerId) throws IOException {<a name="line.2702"></a> +<span class="sourceLineNo">2703</span> requirePermission(getActiveUser(ctx), "getReplicationPeerConfig", Action.ADMIN);<a name="line.2703"></a> +<span class="sourceLineNo">2704</span> }<a name="line.2704"></a> +<span class="sourceLineNo">2705</span><a name="line.2705"></a> +<span class="sourceLineNo">2706</span> @Override<a name="line.2706"></a> +<span class="sourceLineNo">2707</span> public void preUpdateReplicationPeerConfig(<a name="line.2707"></a> +<span class="sourceLineNo">2708</span> final ObserverContext<MasterCoprocessorEnvironment> ctx, String peerId,<a name="line.2708"></a> +<span class="sourceLineNo">2709</span> ReplicationPeerConfig peerConfig) throws IOException {<a name="line.2709"></a> +<span class="sourceLineNo">2710</span> requirePermission(getActiveUser(ctx), "updateReplicationPeerConfig", Action.ADMIN);<a name="line.2710"></a> +<span class="sourceLineNo">2711</span> }<a name="line.2711"></a> +<span class="sourceLineNo">2712</span><a name="line.2712"></a> +<span class="sourceLineNo">2713</span> @Override<a name="line.2713"></a> +<span class="sourceLineNo">2714</span> public void preListReplicationPeers(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2714"></a> +<span class="sourceLineNo">2715</span> String regex) throws IOException {<a name="line.2715"></a> +<span class="sourceLineNo">2716</span> requirePermission(getActiveUser(ctx), "listReplicationPeers", Action.ADMIN);<a name="line.2716"></a> +<span class="sourceLineNo">2717</span> }<a name="line.2717"></a> +<span class="sourceLineNo">2718</span><a name="line.2718"></a> +<span class="sourceLineNo">2719</span> @Override<a name="line.2719"></a> +<span class="sourceLineNo">2720</span> public void preRequestLock(ObserverContext<MasterCoprocessorEnvironment> ctx, String namespace,<a name="line.2720"></a> +<span class="sourceLineNo">2721</span> TableName tableName, HRegionInfo[] regionInfos, LockType type, String description)<a name="line.2721"></a> +<span class="sourceLineNo">2722</span> throws IOException {<a name="line.2722"></a> +<span class="sourceLineNo">2723</span> // There are operations in the CREATE and ADMIN domain which may require lock, READ<a name="line.2723"></a> +<span class="sourceLineNo">2724</span> // or WRITE. So for any lock request, we check for these two perms irrespective of lock type.<a name="line.2724"></a> +<span class="sourceLineNo">2725</span> String reason = String.format("Lock %s, description=%s", type, description);<a name="line.2725"></a> +<span class="sourceLineNo">2726</span> checkLockPermissions(getActiveUser(ctx), namespace, tableName, regionInfos, reason);<a name="line.2726"></a> +<span class="sourceLineNo">2727</span> }<a name="line.2727"></a> +<span class="sourceLineNo">2728</span><a name="line.2728"></a> +<span class="sourceLineNo">2729</span> @Override<a name="line.2729"></a> +<span class="sourceLineNo">2730</span> public void preLockHeartbeat(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2730"></a> +<span class="sourceLineNo">2731</span> LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.2731"></a> +<span class="sourceLineNo">2732</span> String reason = "Heartbeat for lock " + proc.getProcId();<a name="line.2732"></a> +<span class="sourceLineNo">2733</span> checkLockPermissions(getActiveUser(ctx), null, proc.getTableName(), null, reason);<a name="line.2733"></a> +<span class="sourceLineNo">2734</span> }<a name="line.2734"></a> +<span class="sourceLineNo">2735</span><a name="line.2735"></a> +<span class="sourceLineNo">2736</span> private void checkLockPermissions(User user, String namespace,<a name="line.2736"></a> +<span class="sourceLineNo">2737</span> TableName tableName, HRegionInfo[] regionInfos, String reason)<a name="line.2737"></a> +<span class="sourceLineNo">2738</span> throws IOException {<a name="line.2738"></a> +<span class="sourceLineNo">2739</span> if (namespace != null && !namespace.isEmpty()) {<a name="line.2739"></a> +<span class="sourceLineNo">2740</span> requireNamespacePermission(user, reason, namespace, Action.ADMIN, Action.CREATE);<a name="line.2740"></a> +<span class="sourceLineNo">2741</span> } else if (tableName != null || (regionInfos != null && regionInfos.length > 0)) {<a name="line.2741"></a> +<span class="sourceLineNo">2742</span> // So, either a table or regions op. If latter, check perms ons table.<a name="line.2742"></a> +<span class="sourceLineNo">2743</span> TableName tn = tableName != null? tableName: regionInfos[0].getTable();<a name="line.2743"></a> +<span class="sourceLineNo">2744</span> requireTablePermission(user, reason, tn, null, null,<a name="line.2744"></a> +<span class="sourceLineNo">2745</span> Action.ADMIN, Action.CREATE);<a name="line.2745"></a> +<span class="sourceLineNo">2746</span> } else {<a name="line.2746"></a> +<span class="sourceLineNo">2747</span> throw new DoNotRetryIOException("Invalid lock level when requesting permissions.");<a name="line.2747"></a> +<span class="sourceLineNo">2748</span> }<a name="line.2748"></a> +<span class="sourceLineNo">2749</span> }<a name="line.2749"></a> +<span class="sourceLineNo">2750</span>}<a name="line.2750"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2bb8bd01/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html index d3c7efb..92c2266 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html @@ -2583,206 +2583,179 @@ <span class="sourceLineNo">2575</span> }<a name="line.2575"></a> <span class="sourceLineNo">2576</span><a name="line.2576"></a> <span class="sourceLineNo">2577</span> @Override<a name="line.2577"></a> -<span class="sourceLineNo">2578</span> public void preMerge(ObserverContext<RegionServerCoprocessorEnvironment> ctx, Region regionA,<a name="line.2578"></a> -<span class="sourceLineNo">2579</span> Region regionB) throws IOException {<a name="line.2579"></a> -<span class="sourceLineNo">2580</span> requirePermission(getActiveUser(ctx), "mergeRegions", regionA.getTableDescriptor().getTableName(),<a name="line.2580"></a> -<span class="sourceLineNo">2581</span> null, null, Action.ADMIN);<a name="line.2581"></a> -<span class="sourceLineNo">2582</span> }<a name="line.2582"></a> -<span class="sourceLineNo">2583</span><a name="line.2583"></a> -<span class="sourceLineNo">2584</span> @Override<a name="line.2584"></a> -<span class="sourceLineNo">2585</span> public void postMerge(ObserverContext<RegionServerCoprocessorEnvironment> c, Region regionA,<a name="line.2585"></a> -<span class="sourceLineNo">2586</span> Region regionB, Region mergedRegion) throws IOException { }<a name="line.2586"></a> -<span class="sourceLineNo">2587</span><a name="line.2587"></a> -<span class="sourceLineNo">2588</span> @Override<a name="line.2588"></a> -<span class="sourceLineNo">2589</span> public void preMergeCommit(ObserverContext<RegionServerCoprocessorEnvironment> ctx,<a name="line.2589"></a> -<span class="sourceLineNo">2590</span> Region regionA, Region regionB, List<Mutation> metaEntries) throws IOException { }<a name="line.2590"></a> -<span class="sourceLineNo">2591</span><a name="line.2591"></a> -<span class="sourceLineNo">2592</span> @Override<a name="line.2592"></a> -<span class="sourceLineNo">2593</span> public void postMergeCommit(ObserverContext<RegionServerCoprocessorEnvironment> ctx,<a name="line.2593"></a> -<span class="sourceLineNo">2594</span> Region regionA, Region regionB, Region mergedRegion) throws IOException { }<a name="line.2594"></a> -<span class="sourceLineNo">2595</span><a name="line.2595"></a> -<span class="sourceLineNo">2596</span> @Override<a name="line.2596"></a> -<span class="sourceLineNo">2597</span> public void preRollBackMerge(ObserverContext<RegionServerCoprocessorEnvironment> ctx,<a name="line.2597"></a> -<span class="sourceLineNo">2598</span> Region regionA, Region regionB) throws IOException { }<a name="line.2598"></a> -<span class="sourceLineNo">2599</span><a name="line.2599"></a> -<span class="sourceLineNo">2600</span> @Override<a name="line.2600"></a> -<span class="sourceLineNo">2601</span> public void postRollBackMerge(ObserverContext<RegionServerCoprocessorEnvironment> ctx,<a name="line.2601"></a> -<span class="sourceLineNo">2602</span> Region regionA, Region regionB) throws IOException { }<a name="line.2602"></a> -<span class="sourceLineNo">2603</span><a name="line.2603"></a> -<span class="sourceLineNo">2604</span> @Override<a name="line.2604"></a> -<span class="sourceLineNo">2605</span> public void preRollWALWriterRequest(ObserverContext<RegionServerCoprocessorEnvironment> ctx)<a name="line.2605"></a> -<span class="sourceLineNo">2606</span> throws IOException {<a name="line.2606"></a> -<span class="sourceLineNo">2607</span> requirePermission(getActiveUser(ctx), "preRollLogWriterRequest", Permission.Action.ADMIN);<a name="line.2607"></a> -<span class="sourceLineNo">2608</span> }<a name="line.2608"></a> -<span class="sourceLineNo">2609</span><a name="line.2609"></a> -<span class="sourceLineNo">2610</span> @Override<a name="line.2610"></a> -<span class="sourceLineNo">2611</span> public void postRollWALWriterRequest(ObserverContext<RegionServerCoprocessorEnvironment> ctx)<a name="line.2611"></a> -<span class="sourceLineNo">2612</span> throws IOException { }<a name="line.2612"></a> -<span class="sourceLineNo">2613</span><a name="line.2613"></a> -<span class="sourceLineNo">2614</span> @Override<a name="line.2614"></a> -<span class="sourceLineNo">2615</span> public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2615"></a> -<span class="sourceLineNo">2616</span> final String userName, final Quotas quotas) throws IOException {<a name="line.2616"></a> -<span class="sourceLineNo">2617</span> requirePermission(getActiveUser(ctx), "setUserQuota", Action.ADMIN);<a name="line.2617"></a> -<span class="sourceLineNo">2618</span> }<a name="line.2618"></a> -<span class="sourceLineNo">2619</span><a name="line.2619"></a> -<span class="sourceLineNo">2620</span> @Override<a name="line.2620"></a> -<span class="sourceLineNo">2621</span> public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2621"></a> -<span class="sourceLineNo">2622</span> final String userName, final TableName tableName, final Quotas quotas) throws IOException {<a name="line.2622"></a> -<span class="sourceLineNo">2623</span> requirePermission(getActiveUser(ctx), "setUserTableQuota", tableName, null, null, Action.ADMIN);<a name="line.2623"></a> -<span class="sourceLineNo">2624</span> }<a name="line.2624"></a> -<span class="sourceLineNo">2625</span><a name="line.2625"></a> -<span class="sourceLineNo">2626</span> @Override<a name="line.2626"></a> -<span class="sourceLineNo">2627</span> public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2627"></a> -<span class="sourceLineNo">2628</span> final String userName, final String namespace, final Quotas quotas) throws IOException {<a name="line.2628"></a> -<span class="sourceLineNo">2629</span> requirePermission(getActiveUser(ctx), "setUserNamespaceQuota", Action.ADMIN);<a name="line.2629"></a> -<span class="sourceLineNo">2630</span> }<a name="line.2630"></a> -<span class="sourceLineNo">2631</span><a name="line.2631"></a> -<span class="sourceLineNo">2632</span> @Override<a name="line.2632"></a> -<span class="sourceLineNo">2633</span> public void preSetTableQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2633"></a> -<span class="sourceLineNo">2634</span> final TableName tableName, final Quotas quotas) throws IOException {<a name="line.2634"></a> -<span class="sourceLineNo">2635</span> requirePermission(getActiveUser(ctx), "setTableQuota", tableName, null, null, Action.ADMIN);<a name="line.2635"></a> -<span class="sourceLineNo">2636</span> }<a name="line.2636"></a> -<span class="sourceLineNo">2637</span><a name="line.2637"></a> -<span class="sourceLineNo">2638</span> @Override<a name="line.2638"></a> -<span class="sourceLineNo">2639</span> public void preSetNamespaceQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2639"></a> -<span class="sourceLineNo">2640</span> final String namespace, final Quotas quotas) throws IOException {<a name="line.2640"></a> -<span class="sourceLineNo">2641</span> requirePermission(getActiveUser(ctx), "setNamespaceQuota", Action.ADMIN);<a name="line.2641"></a> -<span class="sourceLineNo">2642</span> }<a name="line.2642"></a> -<span class="sourceLineNo">2643</span><a name="line.2643"></a> -<span class="sourceLineNo">2644</span> @Override<a name="line.2644"></a> -<span class="sourceLineNo">2645</span> public ReplicationEndpoint postCreateReplicationEndPoint(<a name="line.2645"></a> -<span class="sourceLineNo">2646</span> ObserverContext<RegionServerCoprocessorEnvironment> ctx, ReplicationEndpoint endpoint) {<a name="line.2646"></a> -<span class="sourceLineNo">2647</span> return endpoint;<a name="line.2647"></a> -<span class="sourceLineNo">2648</span> }<a name="line.2648"></a> -<span class="sourceLineNo">2649</span><a name="line.2649"></a> -<span class="sourceLineNo">2650</span> @Override<a name="line.2650"></a> -<span class="sourceLineNo">2651</span> public void preReplicateLogEntries(ObserverContext<RegionServerCoprocessorEnvironment> ctx,<a name="line.2651"></a> -<span class="sourceLineNo">2652</span> List<WALEntry> entries, CellScanner cells) throws IOException {<a name="line.2652"></a> -<span class="sourceLineNo">2653</span> requirePermission(getActiveUser(ctx), "replicateLogEntries", Action.WRITE);<a name="line.2653"></a> -<span class="sourceLineNo">2654</span> }<a name="line.2654"></a> -<span class="sourceLineNo">2655</span><a name="line.2655"></a> -<span class="sourceLineNo">2656</span> @Override<a name="line.2656"></a> -<span class="sourceLineNo">2657</span> public void postReplicateLogEntries(ObserverContext<RegionServerCoprocessorEnvironment> ctx,<a name="line.2657"></a> -<span class="sourceLineNo">2658</span> List<WALEntry> entries, CellScanner cells) throws IOException {<a name="line.2658"></a> -<span class="sourceLineNo">2659</span> }<a name="line.2659"></a> -<span class="sourceLineNo">2660</span><a name="line.2660"></a> -<span class="sourceLineNo">2661</span> @Override<a name="line.2661"></a> -<span class="sourceLineNo">2662</span> public void preClearCompactionQueues(ObserverContext<RegionServerCoprocessorEnvironment> ctx)<a name="line.2662"></a> -<span class="sourceLineNo">2663</span> throws IOException {<a name="line.2663"></a> -<span class="sourceLineNo">2664</span> requirePermission(getActiveUser(ctx), "preClearCompactionQueues", Permission.Action.ADMIN);<a name="line.2664"></a> -<span class="sourceLineNo">2665</span> }<a name="line.2665"></a> -<span class="sourceLineNo">2666</span><a name="line.2666"></a> -<span class="sourceLineNo">2667</span> @Override<a name="line.2667"></a> -<span class="sourceLineNo">2668</span> public void preMoveServersAndTables(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2668"></a> -<span class="sourceLineNo">2669</span> Set<Address> servers, Set<TableName> tables, String targetGroup) throws IOException {<a name="line.2669"></a> -<span class="sourceLineNo">2670</span> requirePermission(getActiveUser(ctx), "moveServersAndTables", Action.ADMIN);<a name="line.2670"></a> -<span class="sourceLineNo">2671</span> }<a name="line.2671"></a> -<span class="sourceLineNo">2672</span><a name="line.2672"></a> -<span class="sourceLineNo">2673</span> @Override<a name="line.2673"></a> -<span class="sourceLineNo">2674</span> public void preMoveServers(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2674"></a> -<span class="sourceLineNo">2675</span> Set<Address> servers, String targetGroup) throws IOException {<a name="line.2675"></a> -<span class="sourceLineNo">2676</span> requirePermission(getActiveUser(ctx), "moveServers", Action.ADMIN);<a name="line.2676"></a> -<span class="sourceLineNo">2677</span> }<a name="line.2677"></a> -<span class="sourceLineNo">2678</span><a name="line.2678"></a> -<span class="sourceLineNo">2679</span> @Override<a name="line.2679"></a> -<span class="sourceLineNo">2680</span> public void preMoveTables(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2680"></a> -<span class="sourceLineNo">2681</span> Set<TableName> tables, String targetGroup) throws IOException {<a name="line.2681"></a> -<span class="sourceLineNo">2682</span> requirePermission(getActiveUser(ctx), "moveTables", Action.ADMIN);<a name="line.2682"></a> -<span class="sourceLineNo">2683</span> }<a name="line.2683"></a> -<span class="sourceLineNo">2684</span><a name="line.2684"></a> -<span class="sourceLineNo">2685</span> @Override<a name="line.2685"></a> -<span class="sourceLineNo">2686</span> public void preAddRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2686"></a> -<span class="sourceLineNo">2687</span> String name) throws IOException {<a name="line.2687"></a> -<span class="sourceLineNo">2688</span> requirePermission(getActiveUser(ctx), "addRSGroup", Action.ADMIN);<a name="line.2688"></a> -<span class="sourceLineNo">2689</span> }<a name="line.2689"></a> -<span class="sourceLineNo">2690</span><a name="line.2690"></a> -<span class="sourceLineNo">2691</span> @Override<a name="line.2691"></a> -<span class="sourceLineNo">2692</span> public void preRemoveRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2692"></a> -<span class="sourceLineNo">2693</span> String name) throws IOException {<a name="line.2693"></a> -<span class="sourceLineNo">2694</span> requirePermission(getActiveUser(ctx), "removeRSGroup", Action.ADMIN);<a name="line.2694"></a> -<span class="sourceLineNo">2695</span> }<a name="line.2695"></a> -<span class="sourceLineNo">2696</span><a name="line.2696"></a> -<span class="sourceLineNo">2697</span> @Override<a name="line.2697"></a> -<span class="sourceLineNo">2698</span> public void preBalanceRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2698"></a> -<span class="sourceLineNo">2699</span> String groupName) throws IOException {<a name="line.2699"></a> -<span class="sourceLineNo">2700</span> requirePermission(getActiveUser(ctx), "balanceRSGroup", Action.ADMIN);<a name="line.2700"></a> -<span class="sourceLineNo">2701</span> }<a name="line.2701"></a> -<span class="sourceLineNo">2702</span><a name="line.2702"></a> -<span class="sourceLineNo">2703</span> @Override<a name="line.2703"></a> -<span class="sourceLineNo">2704</span> public void preAddReplicationPeer(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2704"></a> -<span class="sourceLineNo">2705</span> String peerId, ReplicationPeerConfig peerConfig) throws IOException {<a name="line.2705"></a> -<span class="sourceLineNo">2706</span> requirePermission(getActiveUser(ctx), "addReplicationPeer", Action.ADMIN);<a name="line.2706"></a> -<span class="sourceLineNo">2707</span> }<a name="line.2707"></a> -<span class="sourceLineNo">2708</span><a name="line.2708"></a> -<span class="sourceLineNo">2709</span> @Override<a name="line.2709"></a> -<span class="sourceLineNo">2710</span> public void preRemoveReplicationPeer(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2710"></a> -<span class="sourceLineNo">2711</span> String peerId) throws IOException {<a name="line.2711"></a> -<span class="sourceLineNo">2712</span> requirePermission(getActiveUser(ctx), "removeReplicationPeer", Action.ADMIN);<a name="line.2712"></a> -<span class="sourceLineNo">2713</span> }<a name="line.2713"></a> -<span class="sourceLineNo">2714</span><a name="line.2714"></a> -<span class="sourceLineNo">2715</span> @Override<a name="line.2715"></a> -<span class="sourceLineNo">2716</span> public void preEnableReplicationPeer(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2716"></a> -<span class="sourceLineNo">2717</span> String peerId) throws IOException {<a name="line.2717"></a> -<span class="sourceLineNo">2718</span> requirePermission(getActiveUser(ctx), "enableReplicationPeer", Action.ADMIN);<a name="line.2718"></a> -<span class="sourceLineNo">2719</span> }<a name="line.2719"></a> -<span class="sourceLineNo">2720</span><a name="line.2720"></a> -<span class="sourceLineNo">2721</span> @Override<a name="line.2721"></a> -<span class="sourceLineNo">2722</span> public void preDisableReplicationPeer(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2722"></a> -<span class="sourceLineNo">2723</span> String peerId) throws IOException {<a name="line.2723"></a> -<span class="sourceLineNo">2724</span> requirePermission(getActiveUser(ctx), "disableReplicationPeer", Action.ADMIN);<a name="line.2724"></a> -<span class="sourceLineNo">2725</span> }<a name="line.2725"></a> -<span class="sourceLineNo">2726</span><a name="line.2726"></a> -<span class="sourceLineNo">2727</span> @Override<a name="line.2727"></a> -<span class="sourceLineNo">2728</span> public void preGetReplicationPeerConfig(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2728"></a> -<span class="sourceLineNo">2729</span> String peerId) throws IOException {<a name="line.2729"></a> -<span class="sourceLineNo">2730</span> requirePermission(getActiveUser(ctx), "getReplicationPeerConfig", Action.ADMIN);<a name="line.2730"></a> -<span class="sourceLineNo">2731</span> }<a name="line.2731"></a> -<span class="sourceLineNo">2732</span><a name="line.2732"></a> -<span class="sourceLineNo">2733</span> @Override<a name="line.2733"></a> -<span class="sourceLineNo">2734</span> public void preUpdateReplicationPeerConfig(<a name="line.2734"></a> -<span class="sourceLineNo">2735</span> final ObserverContext<MasterCoprocessorEnvironment> ctx, String peerId,<a name="line.2735"></a> -<span class="sourceLineNo">2736</span> ReplicationPeerConfig peerConfig) throws IOException {<a name="line.2736"></a> -<span class="sourceLineNo">2737</span> requirePermission(getActiveUser(ctx), "updateReplicationPeerConfig", Action.ADMIN);<a name="line.2737"></a> -<span class="sourceLineNo">2738</span> }<a name="line.2738"></a> -<span class="sourceLineNo">2739</span><a name="line.2739"></a> -<span class="sourceLineNo">2740</span> @Override<a name="line.2740"></a> -<span class="sourceLineNo">2741</span> public void preListReplicationPeers(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2741"></a> -<span class="sourceLineNo">2742</span> String regex) throws IOException {<a name="line.2742"></a> -<span class="sourceLineNo">2743</span> requirePermission(getActiveUser(ctx), "listReplicationPeers", Action.ADMIN);<a name="line.2743"></a> -<span class="sourceLineNo">2744</span> }<a name="line.2744"></a> -<span class="sourceLineNo">2745</span><a name="line.2745"></a> -<span class="sourceLineNo">2746</span> @Override<a name="line.2746"></a> -<span class="sourceLineNo">2747</span> public void preRequestLock(ObserverContext<MasterCoprocessorEnvironment> ctx, String namespace,<a name="line.2747"></a> -<span class="sourceLineNo">2748</span> TableName tableName, HRegionInfo[] regionInfos, LockType type, String description)<a name="line.2748"></a> -<span class="sourceLineNo">2749</span> throws IOException {<a name="line.2749"></a> -<span class="sourceLineNo">2750</span> // There are operations in the CREATE and ADMIN domain which may require lock, READ<a name="line.2750"></a> -<span class="sourceLineNo">2751</span> // or WRITE. So for any lock request, we check for these two perms irrespective of lock type.<a name="line.2751"></a> -<span class="sourceLineNo">2752</span> String reason = String.format("Lock %s, description=%s", type, description);<a name="line.2752"></a> -<span class="sourceLineNo">2753</span> checkLockPermissions(getActiveUser(ctx), namespace, tableName, regionInfos, reason);<a name="line.2753"></a> -<span class="sourceLineNo">2754</span> }<a name="line.2754"></a> -<span class="sourceLineNo">2755</span><a name="line.2755"></a> -<span class="sourceLineNo">2756</span> @Override<a name="line.2756"></a> -<span class="sourceLineNo">2757</span> public void preLockHeartbeat(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2757"></a> -<span class="sourceLineNo">2758</span> LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.2758"></a> -<span class="sourceLineNo">2759</span> String reason = "Heartbeat for lock " + proc.getProcId();<a name="line.2759"></a> -<span class="sourceLineNo">2760</span> checkLockPermissions(getActiveUser(ctx), null, proc.getTableName(), null, reason);<a name="line.2760"></a> -<span class="sourceLineNo">2761</span> }<a name="line.2761"></a> -<span class="sourceLineNo">2762</span><a name="line.2762"></a> -<span class="sourceLineNo">2763</span> private void checkLockPermissions(User user, String namespace,<a name="line.2763"></a> -<span class="sourceLineNo">2764</span> TableName tableName, HRegionInfo[] regionInfos, String reason)<a name="line.2764"></a> -<span class="sourceLineNo">2765</span> throws IOException {<a name="line.2765"></a> -<span class="sourceLineNo">2766</span> if (namespace != null && !namespace.isEmpty()) {<a name="line.2766"></a> -<span class="sourceLineNo">2767</span> requireNamespacePermission(user, reason, namespace, Action.ADMIN, Action.CREATE);<a name="line.2767"></a> -<span class="sourceLineNo">2768</span> } else if (tableName != null || (regionInfos != null && regionInfos.length > 0)) {<a name="line.2768"></a> -<span class="sourceLineNo">2769</span> // So, either a table or regions op. If latter, check perms ons table.<a name="line.2769"></a> -<span class="sourceLineNo">2770</span> TableName tn = tableName != null? tableName: regionInfos[0].getTable();<a name="line.2770"></a> -<span class="sourceLineNo">2771</span> requireTablePermission(user, reason, tn, null, null,<a name="line.2771"></a> -<span class="sourceLineNo">2772</span> Action.ADMIN, Action.CREATE);<a name="line.2772"></a> -<span class="sourceLineNo">2773</span> } else {<a name="line.2773"></a> -<span class="sourceLineNo">2774</span> throw new DoNotRetryIOException("Invalid lock level when requesting permissions.");<a name="line.2774"></a> -<span class="sourceLineNo">2775</span> }<a name="line.2775"></a> -<span class="sourceLineNo">2776</span> }<a name="line.2776"></a> -<span class="sourceLineNo">2777</span>}<a name="line.2777"></a> +<span class="sourceLineNo">2578</span> public void preRollWALWriterRequest(ObserverContext<RegionServerCoprocessorEnvironment> ctx)<a name="line.2578"></a> +<span class="sourceLineNo">2579</span> throws IOException {<a name="line.2579"></a> +<span class="sourceLineNo">2580</span> requirePermission(getActiveUser(ctx), "preRollLogWriterRequest", Permission.Action.ADMIN);<a name="line.2580"></a> +<span class="sourceLineNo">2581</span> }<a name="line.2581"></a> +<span class="sourceLineNo">2582</span><a name="line.2582"></a> +<span class="sourceLineNo">2583</span> @Override<a name="line.2583"></a> +<span class="sourceLineNo">2584</span> public void postRollWALWriterRequest(ObserverContext<RegionServerCoprocessorEnvironment> ctx)<a name="line.2584"></a> +<span class="sourceLineNo">2585</span> throws IOException { }<a name="line.2585"></a> +<span class="sourceLineNo">2586</span><a name="line.2586"></a> +<span class="sourceLineNo">2587</span> @Override<a name="line.2587"></a> +<span class="sourceLineNo">2588</span> public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2588"></a> +<span class="sourceLineNo">2589</span> final String userName, final Quotas quotas) throws IOException {<a name="line.2589"></a> +<span class="sourceLineNo">2590</span> requirePermission(getActiveUser(ctx), "setUserQuota", Action.ADMIN);<a name="line.2590"></a> +<span class="sourceLineNo">2591</span> }<a name="line.2591"></a> +<span class="sourceLineNo">2592</span><a name="line.2592"></a> +<span class="sourceLineNo">2593</span> @Override<a name="line.2593"></a> +<span class="sourceLineNo">2594</span> public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2594"></a> +<span class="sourceLineNo">2595</span> final String userName, final TableName tableName, final Quotas quotas) throws IOException {<a name="line.2595"></a> +<span class="sourceLineNo">2596</span> requirePermission(getActiveUser(ctx), "setUserTableQuota", tableName, null, null, Action.ADMIN);<a name="line.2596"></a> +<span class="sourceLineNo">2597</span> }<a name="line.2597"></a> +<span class="sourceLineNo">2598</span><a name="line.2598"></a> +<span class="sourceLineNo">2599</span> @Override<a name="line.2599"></a> +<span class="sourceLineNo">2600</span> public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2600"></a> +<span class="sourceLineNo">2601</span> final String userName, final String namespace, final Quotas quotas) throws IOException {<a name="line.2601"></a> +<span class="sourceLineNo">2602</span> requirePermission(getActiveUser(ctx), "setUserNamespaceQuota", Action.ADMIN);<a name="line.2602"></a> +<span class="sourceLineNo">2603</span> }<a name="line.2603"></a> +<span class="sourceLineNo">2604</span><a name="line.2604"></a> +<span class="sourceLineNo">2605</span> @Override<a name="line.2605"></a> +<span class="sourceLineNo">2606</span> public void preSetTableQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2606"></a> +<span class="sourceLineNo">2607</span> final TableName tableName, final Quotas quotas) throws IOException {<a name="line.2607"></a> +<span class="sourceLineNo">2608</span> requirePermission(getActiveUser(ctx), "setTableQuota", tableName, null, null, Action.ADMIN);<a name="line.2608"></a> +<span class="sourceLineNo">2609</span> }<a name="line.2609"></a> +<span class="sourceLineNo">2610</span><a name="line.2610"></a> +<span class="sourceLineNo">2611</span> @Override<a name="line.2611"></a> +<span class="sourceLineNo">2612</span> public void preSetNamespaceQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2612"></a> +<span class="sourceLineNo">2613</span> final String namespace, final Quotas quotas) throws IOException {<a name="line.2613"></a> +<span class="sourceLineNo">2614</span> requirePermission(getActiveUser(ctx), "setNamespaceQuota", Action.ADMIN);<a name="line.2614"></a> +<span class="sourceLineNo">2615</span> }<a name="line.2615"></a> +<span class="sourceLineNo">2616</span><a name="line.2616"></a> +<span class="sourceLineNo">2617</span> @Override<a name="line.2617"></a> +<span class="sourceLineNo">2618</span> public ReplicationEndpoint postCreateReplicationEndPoint(<a name="line.2618"></a> +<span class="sourceLineNo">2619</span> ObserverContext<RegionServerCoprocessorEnvironment> ctx, ReplicationEndpoint endpoint) {<a name="line.2619"></a> +<span class="sourceLineNo">2620</span> return endpoint;<a name="line.2620"></a> +<span class="sourceLineNo">2621</span> }<a name="line.2621"></a> +<span class="sourceLineNo">2622</span><a name="line.2622"></a> +<span class="sourceLineNo">2623</span> @Override<a name="line.2623"></a> +<span class="sourceLineNo">2624</span> public void preReplicateLogEntries(ObserverContext<RegionServerCoprocessorEnvironment> ctx,<a name="line.2624"></a> +<span class="sourceLineNo">2625</span> List<WALEntry> entries, CellScanner cells) throws IOException {<a name="line.2625"></a> +<span class="sourceLineNo">2626</span> requirePermission(getActiveUser(ctx), "replicateLogEntries", Action.WRITE);<a name="line.2626"></a> +<span class="sourceLineNo">2627</span> }<a name="line.2627"></a> +<span class="sourceLineNo">2628</span><a name="line.2628"></a> +<span class="sourceLineNo">2629</span> @Override<a name="line.2629"></a> +<span class="sourceLineNo">2630</span> public void postReplicateLogEntries(ObserverContext<RegionServerCoprocessorEnvironment> ctx,<a name="line.2630"></a> +<span class="sourceLineNo">2631</span> List<WALEntry> entries, CellScanner cells) throws IOException {<a name="line.2631"></a> +<span class="sourceLineNo">2632</span> }<a name="line.2632"></a> +<span class="sourceLineNo">2633</span><a name="line.2633"></a> +<span class="sourceLineNo">2634</span> @Override<a name="line.2634"></a> +<span class="sourceLineNo">2635</span> public void preClearCompactionQueues(ObserverContext<RegionServerCoprocessorEnvironment> ctx)<a name="line.2635"></a> +<span class="sourceLineNo">2636</span> throws IOException {<a name="line.2636"></a> +<span class="sourceLineNo">2637</span> requirePermission(getActiveUser(ctx), "preClearCompactionQueues", Permission.Action.ADMIN);<a name="line.2637"></a> +<span class="sourceLineNo">2638</span> }<a name="line.2638"></a> +<span class="sourceLineNo">2639</span><a name="line.2639"></a> +<span class="sourceLineNo">2640</span> @Override<a name="line.2640"></a> +<span class="sourceLineNo">2641</span> public void preMoveServersAndTables(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2641"></a> +<span class="sourceLineNo">2642</span> Set<Address> servers, Set<TableName> tables, String targetGroup) throws IOException {<a name="line.2642"></a> +<span class="sourceLineNo">2643</span> requirePermission(getActiveUser(ctx), "moveServersAndTables", Action.ADMIN);<a name="line.2643"></a> +<span class="sourceLineNo">2644</span> }<a name="line.2644"></a> +<span class="sourceLineNo">2645</span><a name="line.2645"></a> +<span class="sourceLineNo">2646</span> @Override<a name="line.2646"></a> +<span class="sourceLineNo">2647</span> public void preMoveServers(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2647"></a> +<span class="sourceLineNo">2648</span> Set<Address> servers, String targetGroup) throws IOException {<a name="line.2648"></a> +<span class="sourceLineNo">2649</span> requirePermission(getActiveUser(ctx), "moveServers", Action.ADMIN);<a name="line.2649"></a> +<span class="sourceLineNo">2650</span> }<a name="line.2650"></a> +<span class="sourceLineNo">2651</span><a name="line.2651"></a> +<span class="sourceLineNo">2652</span> @Override<a name="line.2652"></a> +<span class="sourceLineNo">2653</span> public void preMoveTables(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2653"></a> +<span class="sourceLineNo">2654</span> Set<TableName> tables, String targetGroup) throws IOException {<a name="line.2654"></a> +<span class="sourceLineNo">2655</span> requirePermission(getActiveUser(ctx), "moveTables", Action.ADMIN);<a name="line.2655"></a> +<span class="sourceLineNo">2656</span> }<a name="line.2656"></a> +<span class="sourceLineNo">2657</span><a name="line.2657"></a> +<span class="sourceLineNo">2658</span> @Override<a name="line.2658"></a> +<span class="sourceLineNo">2659</span> public void preAddRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2659"></a> +<span class="sourceLineNo">2660</span> String name) throws IOException {<a name="line.2660"></a> +<span class="sourceLineNo">2661</span> requirePermission(getActiveUser(ctx), "addRSGroup", Action.ADMIN);<a name="line.2661"></a> +<span class="sourceLineNo">2662</span> }<a name="line.2662"></a> +<span class="sourceLineNo">2663</span><a name="line.2663"></a> +<span class="sourceLineNo">2664</span> @Override<a name="line.2664"></a> +<span class="sourceLineNo">2665</span> public void preRemoveRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2665"></a> +<span class="sourceLineNo">2666</span> String name) throws IOException {<a name="line.2666"></a> +<span class="sourceLineNo">2667</span> requirePermission(getActiveUser(ctx), "removeRSGroup", Action.ADMIN);<a name="line.2667"></a> +<span class="sourceLineNo">2668</span> }<a name="line.2668"></a> +<span class="sourceLineNo">2669</span><a name="line.2669"></a> +<span class="sourceLineNo">2670</span> @Override<a name="line.2670"></a> +<span class="sourceLineNo">2671</span> public void preBalanceRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2671"></a> +<span class="sourceLineNo">2672</span> String groupName) throws IOException {<a name="line.2672"></a> +<span class="sourceLineNo">2673</span> requirePermission(getActiveUser(ctx), "balanceRSGroup", Action.ADMIN);<a name="line.2673"></a> +<span class="sourceLineNo">2674</span> }<a name="line.2674"></a> +<span class="sourceLineNo">2675</span><a name="line.2675"></a> +<span class="sourceLineNo">2676</span> @Override<a name="line.2676"></a> +<span class="sourceLineNo">2677</span> public void preAddReplicationPeer(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2677"></a> +<span class="sourceLineNo">2678</span> String peerId, ReplicationPeerConfig peerConfig) throws IOException {<a name="line.2678"></a> +<span class="sourceLineNo">2679</span> requirePermission(getActiveUser(ctx), "addReplicationPeer", Action.ADMIN);<a name="line.2679"></a> +<span class="sourceLineNo">2680</span> }<a name="line.2680"></a> +<span class="sourceLineNo">2681</span><a name="line.2681"></a> +<span class="sourceLineNo">2682</span> @Override<a name="line.2682"></a> +<span class="sourceLineNo">2683</span> public void preRemoveReplicationPeer(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2683"></a> +<span class="sourceLineNo">2684</span> String peerId) throws IOException {<a name="line.2684"></a> +<span class="sourceLineNo">2685</span> requirePermission(getActiveUser(ctx), "removeReplicationPeer", Action.ADMIN);<a name="line.2685"></a> +<span class="sourceLineNo">2686</span> }<a name="line.2686"></a> +<span class="sourceLineNo">2687</span><a name="line.2687"></a> +<span class="sourceLineNo">2688</span> @Override<a name="line.2688"></a> +<span class="sourceLineNo">2689</span> public void preEnableReplicationPeer(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2689"></a> +<span class="sourceLineNo">2690</span> String peerId) throws IOException {<a name="line.2690"></a> +<span class="sourceLineNo">2691</span> requirePermission(getActiveUser(ctx), "enableReplicationPeer", Action.ADMIN);<a name="line.2691"></a> +<span class="sourceLineNo">2692</span> }<a name="line.2692"></a> +<span class="sourceLineNo">2693</span><a name="line.2693"></a> +<span class="sourceLineNo">2694</span> @Override<a name="line.2694"></a> +<span class="sourceLineNo">2695</span> public void preDisableReplicationPeer(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2695"></a> +<span class="sourceLineNo">2696</span> String peerId) throws IOException {<a name="line.2696"></a> +<span class="sourceLineNo">2697</span> requirePermission(getActiveUser(ctx), "disableReplicationPeer", Action.ADMIN);<a name="line.2697"></a> +<span class="sourceLineNo">2698</span> }<a name="line.2698"></a> +<span class="sourceLineNo">2699</span><a name="line.2699"></a> +<span class="sourceLineNo">2700</span> @Override<a name="line.2700"></a> +<span class="sourceLineNo">2701</span> public void preGetReplicationPeerConfig(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2701"></a> +<span class="sourceLineNo">2702</span> String peerId) throws IOException {<a name="line.2702"></a> +<span class="sourceLineNo">2703</span> requirePermission(getActiveUser(ctx), "getReplicationPeerConfig", Action.ADMIN);<a name="line.2703"></a> +<span class="sourceLineNo">2704</span> }<a name="line.2704"></a> +<span class="sourceLineNo">2705</span><a name="line.2705"></a> +<span class="sourceLineNo">2706</span> @Override<a name="line.2706"></a> +<span class="sourceLineNo">2707</span> public void preUpdateReplicationPeerConfig(<a name="line.2707"></a> +<span class="sourceLineNo">2708</span> final ObserverContext<MasterCoprocessorEnvironment> ctx, String peerId,<a name="line.2708"></a> +<span class="sourceLineNo">2709</span> ReplicationPeerConfig peerConfig) throws IOException {<a name="line.2709"></a> +<span class="sourceLineNo">2710</span> requirePermission(getActiveUser(ctx), "updateReplicationPeerConfig", Action.ADMIN);<a name="line.2710"></a> +<span class="sourceLineNo">2711</span> }<a name="line.2711"></a> +<span class="sourceLineNo">2712</span><a name="line.2712"></a> +<span class="sourceLineNo">2713</span> @Override<a name="line.2713"></a> +<span class="sourceLineNo">2714</span> public void preListReplicationPeers(final ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2714"></a> +<span class="sourceLineNo">2715</span> String regex) throws IOException {<a name="line.2715"></a> +<span class="sourceLineNo">2716</span> requirePermission(getActiveUser(ctx), "listReplicationPeers", Action.ADMIN);<a name="line.2716"></a> +<span class="sourceLineNo">2717</span> }<a name="line.2717"></a> +<span class="sourceLineNo">2718</span><a name="line.2718"></a> +<span class="sourceLineNo">2719</span> @Override<a name="line.2719"></a> +<span class="sourceLineNo">2720</span> public void preRequestLock(ObserverContext<MasterCoprocessorEnvironment> ctx, String namespace,<a name="line.2720"></a> +<span class="sourceLineNo">2721</span> TableName tableName, HRegionInfo[] regionInfos, LockType type, String description)<a name="line.2721"></a> +<span class="sourceLineNo">2722</span> throws IOException {<a name="line.2722"></a> +<span class="sourceLineNo">2723</span> // There are operations in the CREATE and ADMIN domain which may require lock, READ<a name="line.2723"></a> +<span class="sourceLineNo">2724</span> // or WRITE. So for any lock request, we check for these two perms irrespective of lock type.<a name="line.2724"></a> +<span class="sourceLineNo">2725</span> String reason = String.format("Lock %s, description=%s", type, description);<a name="line.2725"></a> +<span class="sourceLineNo">2726</span> checkLockPermissions(getActiveUser(ctx), namespace, tableName, regionInfos, reason);<a name="line.2726"></a> +<span class="sourceLineNo">2727</span> }<a name="line.2727"></a> +<span class="sourceLineNo">2728</span><a name="line.2728"></a> +<span class="sourceLineNo">2729</span> @Override<a name="line.2729"></a> +<span class="sourceLineNo">2730</span> public void preLockHeartbeat(ObserverContext<MasterCoprocessorEnvironment> ctx,<a name="line.2730"></a> +<span class="sourceLineNo">2731</span> LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.2731"></a> +<span class="sourceLineNo">2732</span> String reason = "Heartbeat for lock " + proc.getProcId();<a name="line.2732"></a> +<span class="sourceLineNo">2733</span> checkLockPermissions(getActiveUser(ctx), null, proc.getTableName(), null, reason);<a name="line.2733"></a> +<span class="sourceLineNo">2734</span> }<a name="line.2734"></a> +<span class="sourceLineNo">2735</span><a name="line.2735"></a> +<span class="sourceLineNo">2736</span> private void checkLockPermissions(User user, String namespace,<a name="line.2736"></a> +<span class="sourceLineNo">2737</span> TableName tableName, HRegionInfo[] regionInfos, String reason)<a name="line.2737"></a> +<span class="sourceLineNo">2738</span> throws IOException {<a name="line.2738"></a> +<span class="sourceLineNo">2739</span> if (namespace != null && !namespace.isEmpty()) {<a name="line.2739"></a> +<span class="sourceLineNo">2740</span> requireNamespacePermission(user, reason, namespace, Action.ADMIN, Action.CREATE);<a name="line.2740"></a> +<span class="sourceLineNo">2741</span> } else if (tableName != null || (regionInfos != null && regionInfos.length > 0)) {<a name="line.2741"></a> +<span class="sourceLineNo">2742</span> // So, either a table or regions op. If latter, check perms ons table.<a name="line.2742"></a> +<span class="sourceLineNo">2743</span> TableName tn = tableName != null? tableName: regionInfos[0].getTable();<a name="line.2743"></a> +<span class="sourceLineNo">2744</span> requireTablePermission(user, reason, tn, null, null,<a name="line.2744"></a> +<span class="sourceLineNo">2745</span> Action.ADMIN, Action.CREATE);<a name="line.2745"></a> +<span class="sourceLineNo">2746</span> } else {<a name="line.2746"></a> +<span class="sourceLineNo">2747</span> throw new DoNotRetryIOException("Invalid lock level when requesting permissions.");<a name="line.2747"></a> +<span class="sourceLineNo">2748</span> }<a name="line.2748"></a> +<span class="sourceLineNo">2749</span> }<a name="line.2749"></a> +<span class="sourceLineNo">2750</span>}<a name="line.2750"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2bb8bd01/export_control.html ---------------------------------------------------------------------- diff --git a/export_control.html b/export_control.html index 655410a..c41a4d9 100644 --- a/export_control.html +++ b/export_control.html @@ -7,7 +7,7 @@ <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <meta name="Date-Revision-yyyymmdd" content="20170917" /> + <meta name="Date-Revision-yyyymmdd" content="20170918" /> <meta http-equiv="Content-Language" content="en" /> <title>Apache HBase – Export Control @@ -336,7 +336,7 @@ for more details.</p> <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved. - <li id="publishDate" class="pull-right">Last Published: 2017-09-17</li> + <li id="publishDate" class="pull-right">Last Published: 2017-09-18</li> </p> </div> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2bb8bd01/hbase-annotations/dependencies.html ---------------------------------------------------------------------- diff --git a/hbase-annotations/dependencies.html b/hbase-annotations/dependencies.html index a48c2d5..5e729c3 100644 --- a/hbase-annotations/dependencies.html +++ b/hbase-annotations/dependencies.html @@ -7,7 +7,7 @@ <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <meta name="Date-Revision-yyyymmdd" content="20170917" /> + <meta name="Date-Revision-yyyymmdd" content="20170918" /> <meta http-equiv="Content-Language" content="en" /> <title>Apache HBase - Annotations – Project Dependencies</title> <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" /> @@ -272,7 +272,7 @@ <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved. - <li id="publishDate" class="pull-right">Last Published: 2017-09-17</li> + <li id="publishDate" class="pull-right">Last Published: 2017-09-18</li> </p> </div> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2bb8bd01/hbase-annotations/dependency-convergence.html ---------------------------------------------------------------------- diff --git a/hbase-annotations/dependency-convergence.html b/hbase-annotations/dependency-convergence.html index c1f5f31..b7dfbcb 100644 --- a/hbase-annotations/dependency-convergence.html +++ b/hbase-annotations/dependency-convergence.html @@ -7,7 +7,7 @@ <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <meta name="Date-Revision-yyyymmdd" content="20170917" /> + <meta name="Date-Revision-yyyymmdd" content="20170918" /> <meta http-equiv="Content-Language" content="en" /> <title>Apache HBase - Annotations – Reactor Dependency Convergence</title> <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" /> @@ -650,7 +650,7 @@ <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved. - <li id="publishDate" class="pull-right">Last Published: 2017-09-17</li> + <li id="publishDate" class="pull-right">Last Published: 2017-09-18</li> </p> </div> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2bb8bd01/hbase-annotations/dependency-info.html ---------------------------------------------------------------------- diff --git a/hbase-annotations/dependency-info.html b/hbase-annotations/dependency-info.html index 73a65e9..45dae36 100644 --- a/hbase-annotations/dependency-info.html +++ b/hbase-annotations/dependency-info.html @@ -7,7 +7,7 @@ <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <meta name="Date-Revision-yyyymmdd" content="20170917" /> + <meta name="Date-Revision-yyyymmdd" content="20170918" /> <meta http-equiv="Content-Language" content="en" /> <title>Apache HBase - Annotations – Dependency Information</title> <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" /> @@ -147,7 +147,7 @@ <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved. - <li id="publishDate" class="pull-right">Last Published: 2017-09-17</li> + <li id="publishDate" class="pull-right">Last Published: 2017-09-18</li> </p> </div> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2bb8bd01/hbase-annotations/dependency-management.html ---------------------------------------------------------------------- diff --git a/hbase-annotations/dependency-management.html b/hbase-annotations/dependency-management.html index 150324e..ca0376d 100644 --- a/hbase-annotations/dependency-management.html +++ b/hbase-annotations/dependency-management.html @@ -7,7 +7,7 @@ <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <meta name="Date-Revision-yyyymmdd" content="20170917" /> + <meta name="Date-Revision-yyyymmdd" content="20170918" /> <meta http-equiv="Content-Language" content="en" /> <title>Apache HBase - Annotations – Project Dependency Management</title> <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" /> @@ -772,7 +772,7 @@ <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved. - <li id="publishDate" class="pull-right">Last Published: 2017-09-17</li> + <li id="publishDate" class="pull-right">Last Published: 2017-09-18</li> </p> </div> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2bb8bd01/hbase-annotations/index.html ---------------------------------------------------------------------- diff --git a/hbase-annotations/index.html b/hbase-annotations/index.html index 77f9600..1f28d65 100644 --- a/hbase-annotations/index.html +++ b/hbase-annotations/index.html @@ -7,7 +7,7 @@ <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <meta name="Date-Revision-yyyymmdd" content="20170917" /> + <meta name="Date-Revision-yyyymmdd" content="20170918" /> <meta http-equiv="Content-Language" content="en" /> <title>Apache HBase - Annotations – About</title> <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" /> @@ -119,7 +119,7 @@ <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved. - <li id="publishDate" class="pull-right">Last Published: 2017-09-17</li> + <li id="publishDate" class="pull-right">Last Published: 2017-09-18</li> </p> </div>
