@Test public void testGetSpaceQuota() throws Exception { TableQuotaSnapshotStore mockStore = mock(TableQuotaSnapshotStore.class); when(mockStore.getSpaceQuota(any())).thenCallRealMethod(); Quotas quotaWithSpace = Quotas.newBuilder().setSpace( SpaceQuota.newBuilder() .setSoftLimit(1024L) .setViolationPolicy(QuotaProtos.SpaceViolationPolicy.DISABLE) .build()) .build(); Quotas quotaWithoutSpace = Quotas.newBuilder().build(); AtomicReference<Quotas> quotaRef = new AtomicReference<>(); when(mockStore.getQuotaForTable(any())).then(new Answer<Quotas>() { @Override public Quotas answer(InvocationOnMock invocation) throws Throwable { return quotaRef.get(); } }); quotaRef.set(quotaWithSpace); assertEquals(quotaWithSpace.getSpace(), mockStore.getSpaceQuota(TableName.valueOf("foo"))); quotaRef.set(quotaWithoutSpace); assertNull(mockStore.getSpaceQuota(TableName.valueOf("foo"))); }
@Test public void testGetSpaceQuota() throws Exception { NamespaceQuotaSnapshotStore mockStore = mock(NamespaceQuotaSnapshotStore.class); when(mockStore.getSpaceQuota(any())).thenCallRealMethod(); Quotas quotaWithSpace = Quotas.newBuilder().setSpace( SpaceQuota.newBuilder() .setSoftLimit(1024L) .setViolationPolicy(QuotaProtos.SpaceViolationPolicy.DISABLE) .build()) .build(); Quotas quotaWithoutSpace = Quotas.newBuilder().build(); AtomicReference<Quotas> quotaRef = new AtomicReference<>(); when(mockStore.getQuotaForNamespace(any())).then(new Answer<Quotas>() { @Override public Quotas answer(InvocationOnMock invocation) throws Throwable { return quotaRef.get(); } }); quotaRef.set(quotaWithSpace); assertEquals(quotaWithSpace.getSpace(), mockStore.getSpaceQuota("ns")); quotaRef.set(quotaWithoutSpace); assertNull(mockStore.getSpaceQuota("ns")); }
TableName tn2 = TableName.valueOf("observance1"); TableName tn3 = TableName.valueOf("observance2"); SpaceQuota quota = SpaceQuota.newBuilder() .setSoftLimit(1024L * 1024L) .setViolationPolicy(ProtobufUtil.toProtoViolationPolicy(SpaceViolationPolicy.DISABLE))
/** * Builds a protocol buffer SpaceQuota. * * @param limit The maximum space usage for the quota in bytes. * @param violationPolicy The policy to apply when the quota is violated. * @return The protocol buffer SpaceQuota. */ public static QuotaProtos.SpaceQuota toProtoSpaceQuota( final long limit, final SpaceViolationPolicy violationPolicy) { return QuotaProtos.SpaceQuota.newBuilder() .setSoftLimit(limit) .setViolationPolicy(toProtoViolationPolicy(violationPolicy)) .build(); }
/** * Builds a {@link SpaceQuota} protobuf object to remove a quota. * * @return The protobuf SpaceQuota representation. */ private SpaceLimitRequest buildProtoRemoveQuota() { return SpaceLimitRequest.newBuilder().setQuota( SpaceQuota.newBuilder() .setRemove(true) .build()) .build(); }
@Test(expected = IllegalArgumentException.class) public void testBothTableAndNamespace() { final SpaceQuota spaceQuota = SpaceQuota.newBuilder() .setSoftLimit(1L) .setViolationPolicy(QuotaProtos.SpaceViolationPolicy.DISABLE) .build(); QuotaSettingsFactory.fromSpace(TableName.valueOf("foo"), "bar", spaceQuota); }
@Test(expected = IllegalArgumentException.class) public void testNeitherTableNorNamespace() { final SpaceQuota spaceQuota = SpaceQuota.newBuilder() .setSoftLimit(1L) .setViolationPolicy(QuotaProtos.SpaceViolationPolicy.DISABLE) .build(); QuotaSettingsFactory.fromSpace(null, null, spaceQuota); }
protected static SpaceQuota getProtoViolationPolicy(SpaceViolationPolicy policy) { return SpaceQuota.newBuilder() .setViolationPolicy(ProtobufUtil.toProtoViolationPolicy(policy)) .build(); }
if (other instanceof SpaceLimitSettings) { if (spaceBuilder == null) { spaceBuilder = QuotaProtos.SpaceQuota.newBuilder();
@Test public void testAllQuotasAddedToList() { final SpaceQuota spaceQuota = SpaceQuota.newBuilder()
TableName tn2 = TableName.valueOf(NS, "tn2"); TableName tn3 = TableName.valueOf("tn3"); SpaceQuota quota = SpaceQuota.newBuilder() .setSoftLimit(ONE_MEGABYTE) .setViolationPolicy(ProtobufUtil.toProtoViolationPolicy(SpaceViolationPolicy.DISABLE))
/** * <code>optional .hbase.pb.SpaceQuota space = 3;</code> */ public Builder mergeSpace(org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceQuota value) { if (spaceBuilder_ == null) { if (((bitField0_ & 0x00000004) == 0x00000004) && space_ != null && space_ != org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceQuota.getDefaultInstance()) { space_ = org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceQuota.newBuilder(space_).mergeFrom(value).buildPartial(); } else { space_ = value; } onChanged(); } else { spaceBuilder_.mergeFrom(value); } bitField0_ |= 0x00000004; return this; } /**
/** * <code>optional .hbase.pb.SpaceQuota quota = 1;</code> */ public Builder mergeQuota(org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceQuota value) { if (quotaBuilder_ == null) { if (((bitField0_ & 0x00000001) == 0x00000001) && quota_ != null && quota_ != org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceQuota.getDefaultInstance()) { quota_ = org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceQuota.newBuilder(quota_).mergeFrom(value).buildPartial(); } else { quota_ = value; } onChanged(); } else { quotaBuilder_.mergeFrom(value); } bitField0_ |= 0x00000001; return this; } /**
public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() {
/** * Builds a protocol buffer SpaceQuota. * * @param limit The maximum space usage for the quota in bytes. * @param violationPolicy The policy to apply when the quota is violated. * @return The protocol buffer SpaceQuota. */ public static QuotaProtos.SpaceQuota toProtoSpaceQuota( final long limit, final SpaceViolationPolicy violationPolicy) { return QuotaProtos.SpaceQuota.newBuilder() .setSoftLimit(limit) .setViolationPolicy(toProtoViolationPolicy(violationPolicy)) .build(); }
/** * Builds a {@link SpaceQuota} protobuf object given the arguments. * * @param sizeLimit The size limit of the quota. * @param violationPolicy The action to take when the quota is exceeded. * @return The protobuf SpaceQuota representation. */ private SpaceLimitRequest buildProtoAddQuota( long sizeLimit, SpaceViolationPolicy violationPolicy) { return buildProtoFromQuota(SpaceQuota.newBuilder() .setSoftLimit(sizeLimit) .setViolationPolicy(ProtobufUtil.toProtoViolationPolicy(violationPolicy)) .build()); }
@Test(expected = IllegalArgumentException.class) public void testBothTableAndNamespace() { final SpaceQuota spaceQuota = SpaceQuota.newBuilder() .setSoftLimit(1L) .setViolationPolicy(QuotaProtos.SpaceViolationPolicy.DISABLE) .build(); QuotaSettingsFactory.fromSpace(TableName.valueOf("foo"), "bar", spaceQuota); }
/** * Builds a {@link SpaceQuota} protobuf object to remove a quota. * * @return The protobuf SpaceQuota representation. */ private SpaceLimitRequest buildProtoRemoveQuota() { return SpaceLimitRequest.newBuilder().setQuota( SpaceQuota.newBuilder() .setRemove(true) .build()) .build(); }
protected static SpaceQuota getProtoViolationPolicy(SpaceViolationPolicy policy) { return SpaceQuota.newBuilder() .setViolationPolicy(ProtobufUtil.toProtoViolationPolicy(policy)) .build(); }
@Test(expected = IllegalArgumentException.class) public void testNeitherTableNorNamespace() { final SpaceQuota spaceQuota = SpaceQuota.newBuilder() .setSoftLimit(1L) .setViolationPolicy(QuotaProtos.SpaceViolationPolicy.DISABLE) .build(); QuotaSettingsFactory.fromSpace(null, null, spaceQuota); }