mirror of
https://github.com/google/nomulus.git
synced 2025-05-13 16:07:15 +02:00
Remove long-dead LogsExportCursor and PersistedRangeLong
LogsExportCursor was only used by ExportLogsTaskServlet, which we removed a long time ago. It's just dead code. The PersistedRangeLong type was only written for use by LogsExportCursor, and since it hasn't picked up new users in 3+ years I don't think we need to keep it around. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=169264994
This commit is contained in:
parent
0994ce76c7
commit
67116c5fa1
8 changed files with 0 additions and 307 deletions
|
@ -343,8 +343,6 @@ registry codebase:
|
||||||
* `Lock` -- Lock entities are used to control access to a shared resource such
|
* `Lock` -- Lock entities are used to control access to a shared resource such
|
||||||
as an App Engine queue. Under ordinary circumstances, these locks will be
|
as an App Engine queue. Under ordinary circumstances, these locks will be
|
||||||
cleaned up automatically, and should not accumulate.
|
cleaned up automatically, and should not accumulate.
|
||||||
* `LogsExportCursor` -- This is a single entity which maintains the state of
|
|
||||||
log export.
|
|
||||||
* `MR-*` -- These entities are generated by the App Engine MapReduce library
|
* `MR-*` -- These entities are generated by the App Engine MapReduce library
|
||||||
in the course of running MapReduces.
|
in the course of running MapReduces.
|
||||||
* `Modification` -- A Modification is a special type of billing event which
|
* `Modification` -- A Modification is a special type of billing event which
|
||||||
|
|
|
@ -29,7 +29,6 @@ import google.registry.model.domain.DomainApplication;
|
||||||
import google.registry.model.domain.DomainBase;
|
import google.registry.model.domain.DomainBase;
|
||||||
import google.registry.model.domain.DomainResource;
|
import google.registry.model.domain.DomainResource;
|
||||||
import google.registry.model.domain.LrpTokenEntity;
|
import google.registry.model.domain.LrpTokenEntity;
|
||||||
import google.registry.model.export.LogsExportCursor;
|
|
||||||
import google.registry.model.host.HostResource;
|
import google.registry.model.host.HostResource;
|
||||||
import google.registry.model.index.DomainApplicationIndex;
|
import google.registry.model.index.DomainApplicationIndex;
|
||||||
import google.registry.model.index.EppResourceIndex;
|
import google.registry.model.index.EppResourceIndex;
|
||||||
|
@ -95,7 +94,6 @@ public final class EntityClasses {
|
||||||
KmsSecret.class,
|
KmsSecret.class,
|
||||||
KmsSecretRevision.class,
|
KmsSecretRevision.class,
|
||||||
Lock.class,
|
Lock.class,
|
||||||
LogsExportCursor.class,
|
|
||||||
LrpTokenEntity.class,
|
LrpTokenEntity.class,
|
||||||
PollMessage.class,
|
PollMessage.class,
|
||||||
PollMessage.Autorenew.class,
|
PollMessage.Autorenew.class,
|
||||||
|
|
|
@ -1,55 +0,0 @@
|
||||||
// Copyright 2017 The Nomulus Authors. All Rights Reserved.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
package google.registry.model.common;
|
|
||||||
|
|
||||||
import com.google.common.collect.BoundType;
|
|
||||||
import com.google.common.collect.Range;
|
|
||||||
import com.googlecode.objectify.annotation.Embed;
|
|
||||||
import google.registry.model.ImmutableObject;
|
|
||||||
|
|
||||||
/** An object that's equivalent to a {@code Range<Long>} that can be persisted to Datastore. */
|
|
||||||
@Embed
|
|
||||||
public class PersistedRangeLong extends ImmutableObject {
|
|
||||||
|
|
||||||
private Long lowerBound = null;
|
|
||||||
private BoundType lowerBoundType = null;
|
|
||||||
|
|
||||||
private Long upperBound = null;
|
|
||||||
private BoundType upperBoundType = null;
|
|
||||||
|
|
||||||
public Range<Long> asRange() {
|
|
||||||
Range<Long> range = Range.all();
|
|
||||||
if (lowerBound != null) {
|
|
||||||
range = range.intersection(Range.downTo(lowerBound, lowerBoundType));
|
|
||||||
}
|
|
||||||
if (upperBound != null) {
|
|
||||||
range = range.intersection(Range.upTo(upperBound, upperBoundType));
|
|
||||||
}
|
|
||||||
return range;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static PersistedRangeLong create(Range<Long> range) {
|
|
||||||
PersistedRangeLong instance = new PersistedRangeLong();
|
|
||||||
if (range.hasLowerBound()) {
|
|
||||||
instance.lowerBound = range.lowerEndpoint();
|
|
||||||
instance.lowerBoundType = range.lowerBoundType();
|
|
||||||
}
|
|
||||||
if (range.hasUpperBound()) {
|
|
||||||
instance.upperBound = range.upperEndpoint();
|
|
||||||
instance.upperBoundType = range.upperBoundType();
|
|
||||||
}
|
|
||||||
return instance;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,80 +0,0 @@
|
||||||
// Copyright 2017 The Nomulus Authors. All Rights Reserved.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
package google.registry.model.export;
|
|
||||||
|
|
||||||
import static google.registry.util.CollectionUtils.nullToEmptyImmutableCopy;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
|
||||||
import com.google.common.collect.ImmutableSet;
|
|
||||||
import com.googlecode.objectify.annotation.Entity;
|
|
||||||
import google.registry.model.Buildable;
|
|
||||||
import google.registry.model.common.CrossTldSingleton;
|
|
||||||
import google.registry.model.common.PersistedRangeLong;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/** A saved cursor of exported log records so far. */
|
|
||||||
@Entity
|
|
||||||
public class LogsExportCursor extends CrossTldSingleton implements Buildable {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A set of timestamp ranges (expressesd in microseconds since the epoch) that have been exported
|
|
||||||
* to GCS.
|
|
||||||
*/
|
|
||||||
Set<PersistedRangeLong> exportedRanges;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A list of filenames that are pending import into bigquery. Files may not have been imported
|
|
||||||
* into bigquery on previous iterations if there are gaps in the exported ranges.
|
|
||||||
*/
|
|
||||||
List<String> filesPendingImport;
|
|
||||||
|
|
||||||
public ImmutableSet<PersistedRangeLong> getExportedRanges() {
|
|
||||||
return nullToEmptyImmutableCopy(exportedRanges);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ImmutableList<String> getFilesPendingImport() {
|
|
||||||
return nullToEmptyImmutableCopy(filesPendingImport);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Builder asBuilder() {
|
|
||||||
return new Builder(clone(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
/** A builder for constructing {@link LogsExportCursor} objects, since they are immutable. */
|
|
||||||
public static class Builder extends Buildable.Builder<LogsExportCursor> {
|
|
||||||
public Builder() {}
|
|
||||||
|
|
||||||
private Builder(LogsExportCursor instance) {
|
|
||||||
super(instance);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder setExportedRanges(ImmutableSet<PersistedRangeLong> exportedRanges) {
|
|
||||||
getInstance().exportedRanges = exportedRanges;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder setFilesPendingImport(ImmutableList<String> filesPendingImport) {
|
|
||||||
getInstance().filesPendingImport = filesPendingImport;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public LogsExportCursor build() {
|
|
||||||
return super.build();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -12,7 +12,6 @@ HistoryEntry
|
||||||
HostResource
|
HostResource
|
||||||
KmsSecret
|
KmsSecret
|
||||||
KmsSecretRevision
|
KmsSecretRevision
|
||||||
LogsExportCursor
|
|
||||||
LrpTokenEntity
|
LrpTokenEntity
|
||||||
Modification
|
Modification
|
||||||
OneTime
|
OneTime
|
||||||
|
|
|
@ -1,91 +0,0 @@
|
||||||
// Copyright 2017 The Nomulus Authors. All Rights Reserved.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
package google.registry.model.common;
|
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
|
||||||
|
|
||||||
import com.google.common.collect.Range;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
import org.junit.runners.JUnit4;
|
|
||||||
|
|
||||||
/** Unit tests for {@link PersistedRangeLong}. */
|
|
||||||
@RunWith(JUnit4.class)
|
|
||||||
public class PersistedRangeLongTest {
|
|
||||||
|
|
||||||
private void doConversionTest(Range<Long> range) {
|
|
||||||
assertThat(PersistedRangeLong.create(range).asRange()).isEqualTo(range);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void all() {
|
|
||||||
doConversionTest(Range.<Long>all());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void lessThan() {
|
|
||||||
doConversionTest(Range.<Long>lessThan(10L));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void atMost() {
|
|
||||||
doConversionTest(Range.<Long>atMost(10L));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void greaterThan() {
|
|
||||||
doConversionTest(Range.<Long>greaterThan(10L));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void atLeast() {
|
|
||||||
doConversionTest(Range.<Long>atLeast(10L));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void open() {
|
|
||||||
doConversionTest(Range.<Long>open(5L, 10L));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void closed() {
|
|
||||||
doConversionTest(Range.<Long>closed(5L, 10L));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void openClosed() {
|
|
||||||
doConversionTest(Range.<Long>openClosed(5L, 10L));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void closedOpen() {
|
|
||||||
doConversionTest(Range.<Long>closedOpen(5L, 10L));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void singleton() {
|
|
||||||
doConversionTest(Range.<Long>singleton(5L));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void openClosedEmpty() {
|
|
||||||
doConversionTest(Range.<Long>openClosed(5L, 5L));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void closedOpenEmpty() {
|
|
||||||
doConversionTest(Range.<Long>closedOpen(5L, 5L));
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,64 +0,0 @@
|
||||||
// Copyright 2017 The Nomulus Authors. All Rights Reserved.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
package google.registry.model.export;
|
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
|
||||||
import static google.registry.model.ofy.ObjectifyService.ofy;
|
|
||||||
import static google.registry.testing.DatastoreHelper.persistResource;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
|
||||||
import com.google.common.collect.ImmutableSet;
|
|
||||||
import com.google.common.collect.Range;
|
|
||||||
import google.registry.model.EntityTestCase;
|
|
||||||
import google.registry.model.common.PersistedRangeLong;
|
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
/** Unit tests for {@link LogsExportCursor}. */
|
|
||||||
public class LogsExportCursorTest extends EntityTestCase {
|
|
||||||
|
|
||||||
LogsExportCursor logsExportCursor;
|
|
||||||
|
|
||||||
@Before
|
|
||||||
public void setUp() throws Exception {
|
|
||||||
logsExportCursor = new LogsExportCursor.Builder()
|
|
||||||
.setExportedRanges(ImmutableSet.of(
|
|
||||||
PersistedRangeLong.create(Range.<Long>all()),
|
|
||||||
PersistedRangeLong.create(Range.<Long>lessThan(10L)),
|
|
||||||
PersistedRangeLong.create(Range.<Long>atMost(10L)),
|
|
||||||
PersistedRangeLong.create(Range.<Long>greaterThan(10L)),
|
|
||||||
PersistedRangeLong.create(Range.<Long>atLeast(10L)),
|
|
||||||
PersistedRangeLong.create(Range.<Long>open(5L, 10L)),
|
|
||||||
PersistedRangeLong.create(Range.<Long>closed(5L, 10L)),
|
|
||||||
PersistedRangeLong.create(Range.<Long>openClosed(5L, 10L)),
|
|
||||||
PersistedRangeLong.create(Range.<Long>closedOpen(5L, 10L))))
|
|
||||||
.setFilesPendingImport(ImmutableList.of(
|
|
||||||
"gs://foo/bar",
|
|
||||||
"gs://foo/baz",
|
|
||||||
"gs://foo/bash"))
|
|
||||||
.build();
|
|
||||||
persistResource(logsExportCursor);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testPersistence() throws Exception {
|
|
||||||
assertThat(ofy().load().entity(logsExportCursor).now()).isEqualTo(logsExportCursor);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testIndexing() throws Exception {
|
|
||||||
verifyIndexing(logsExportCursor);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -117,12 +117,6 @@ class google.registry.model.common.GaeUserIdConverter {
|
||||||
@Id long id;
|
@Id long id;
|
||||||
com.google.appengine.api.users.User user;
|
com.google.appengine.api.users.User user;
|
||||||
}
|
}
|
||||||
class google.registry.model.common.PersistedRangeLong {
|
|
||||||
com.google.common.collect.BoundType lowerBoundType;
|
|
||||||
com.google.common.collect.BoundType upperBoundType;
|
|
||||||
java.lang.Long lowerBound;
|
|
||||||
java.lang.Long upperBound;
|
|
||||||
}
|
|
||||||
class google.registry.model.common.TimeOfYear {
|
class google.registry.model.common.TimeOfYear {
|
||||||
java.lang.String timeString;
|
java.lang.String timeString;
|
||||||
}
|
}
|
||||||
|
@ -371,12 +365,6 @@ class google.registry.model.eppcommon.Trid {
|
||||||
java.lang.String clientTransactionId;
|
java.lang.String clientTransactionId;
|
||||||
java.lang.String serverTransactionId;
|
java.lang.String serverTransactionId;
|
||||||
}
|
}
|
||||||
class google.registry.model.export.LogsExportCursor {
|
|
||||||
@Id long id;
|
|
||||||
@Parent com.googlecode.objectify.Key<google.registry.model.common.EntityGroupRoot> parent;
|
|
||||||
java.util.List<java.lang.String> filesPendingImport;
|
|
||||||
java.util.Set<google.registry.model.common.PersistedRangeLong> exportedRanges;
|
|
||||||
}
|
|
||||||
class google.registry.model.host.HostResource {
|
class google.registry.model.host.HostResource {
|
||||||
@Id java.lang.String repoId;
|
@Id java.lang.String repoId;
|
||||||
com.google.common.collect.ImmutableSortedMap<org.joda.time.DateTime, com.googlecode.objectify.Key<google.registry.model.ofy.CommitLogManifest>> revisions;
|
com.google.common.collect.ImmutableSortedMap<org.joda.time.DateTime, com.googlecode.objectify.Key<google.registry.model.ofy.CommitLogManifest>> revisions;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue