1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.hadoop.hbase.quotas.policies;
18
19 import org.apache.hadoop.hbase.classification.InterfaceAudience;
20 import org.apache.hadoop.hbase.client.Append;
21 import org.apache.hadoop.hbase.client.Delete;
22 import org.apache.hadoop.hbase.client.Increment;
23 import org.apache.hadoop.hbase.client.Mutation;
24 import org.apache.hadoop.hbase.client.Put;
25 import org.apache.hadoop.hbase.quotas.SpaceLimitingException;
26 import org.apache.hadoop.hbase.quotas.SpaceViolationPolicy;
27 import org.apache.hadoop.hbase.quotas.SpaceViolationPolicyEnforcement;
28
29
30
31
32
33 @InterfaceAudience.Private
34 public class NoWritesViolationPolicyEnforcement extends DefaultViolationPolicyEnforcement {
35
36 @Override
37 public void enable() {}
38
39 @Override
40 public void disable() {}
41
42 @Override
43 public void check(Mutation m) throws SpaceLimitingException {
44 if (m instanceof Append || m instanceof Delete || m instanceof Increment || m instanceof Put) {
45 throw new SpaceLimitingException(getPolicyName(),
46 m.getClass().getSimpleName() + "s are disallowed due to a space quota.");
47 }
48 }
49
50 @Override
51 public String getPolicyName() {
52 return SpaceViolationPolicy.NO_WRITES.name();
53 }
54 }