Commit graph

135 commits

Author SHA1 Message Date
Justine Tunney
6f4b059cc9 Make javadoc <p> style guide compliant
This led to confusion for an open source contributor about how to format
code. We don't want to be like, "do as I say, not as I do."

https://google.github.io/styleguide/javaguide.html#s7.1.2-javadoc-paragraphs
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122589700
2016-05-18 13:09:01 -04:00
Chris Tingue
4854f875b0 Prefer @Inject over static for async flow Clock
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122555766
2016-05-18 13:08:41 -04:00
Justine Tunney
767c00c2ca Fix FOSS Registrar Console in raw mode
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122544685
2016-05-17 14:45:06 -04:00
Justine Tunney
e1cf51ebb3 Migrate Domain Registry to Closure Rules 0.1.0
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122525197
2016-05-17 13:53:41 -04:00
Justine Tunney
1abd2a6314 Fix paths in a few places 2016-05-17 13:52:27 -04:00
cgoldfeder
618050dc32 Load referenced contact/hosts from EPP more efficiently
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122459862
2016-05-16 20:11:58 -04:00
Corey Goldfeder
86f3287761 Typo in comment
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122449880
2016-05-16 18:40:40 -04:00
Justine Tunney
13f5106070 Make dnsupdate go back to using dnsjava 2.x
Currently the build breaks due to a surprise migration to dnsjava 1.6.4,
which is not available in Maven. dnsjava 2.x is available internally,
but it jarjar's the package name. So we'll need to deal with that the
same way we deal with the Objectify package rename.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122447929
2016-05-16 18:40:31 -04:00
Ben McIlwain
707e22f2d2 Don't throw entity integrity errors for renamed hosts
Old ForeignKeyIndex entities pointing to hosts are soft-deleted when a
host is renamed, and a new ForeignKeyIndex is created that correctly
points at the new host.  This is an expected state of the system, so
don't throw an error when it is observed.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122447608
2016-05-16 18:40:19 -04:00
Corey Goldfeder
e38c87238e Fix a typo in an RFC id
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122447003
2016-05-16 18:40:03 -04:00
Justine Tunney
fe9e69e06b Integrate: Eclipse file generation script 2016-05-16 18:39:45 -04:00
Corey Goldfeder
d9875ea302 Remove unused and misused methods from EppResourceUtils and DomainBase.
The methods in DomainBase were the only callers for the methods in
EppResourceUtils, so I first inlined them. Then I realized that there
were no callers for loadReferencedContacts() anywhere. For loadNameservers(),
all but one invocation actually wanted to load the foreign keys, and was
repeating that work, so I replaced it with loadNameserverFullyQualifiedHostNames().
The last invocation, in the Rdap code, was incorrectly assuming this was an async
load when in fact it blocks, so I replaced it with a real async load.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122433897
2016-05-16 18:39:23 -04:00
cgoldfeder
9a2afc7a9b Remove nearly all uses of ReferenceUnion
ReferenceUnion is a hack to work around the mismatch between how
we store references (by roid) and how they are represented in EPP
(by foreign key). If it ever needed to exist (not entirely clear...)
it should have remained tightly scoped within the domain commands
and resources. Instead it has leaked everywhere in the project,
causing lots of boilerplate. This CL hides all of that behind
standard Refs, and should be followed by work to remove ReferenceUnion
completely.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122424416
2016-05-16 16:36:25 -04:00
mcilwain
56c8bb0f2a Don't verify existence of autorenew poll messages
There are several situations in which it is a valid system state for
Keys to PollMessages on Domains to point to entities that don't exist,
chief amongst them when a domain has been soft-deleted.  We also can't
simply null this out when soft-deleting domains, because there may be
an un-acked recurrence meaning it can't be deleted.

Given this, it doesn't make sense to check for entity existence here,
as it is not a system invariant and cannot easily be made to be so.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122300368
2016-05-14 01:34:12 -04:00
Ben McIlwain
030d6b92ab Minor fixes to dnsupdate writer 2016-05-14 01:32:53 -04:00
Justine Tunney
1a0c282cf8 Bring open source build closer to passing 2016-05-14 01:29:22 -04:00
Justine Tunney
1e0f064da6 Add tools/server/javascrap to open source build 2016-05-14 01:24:55 -04:00
Ben McIlwain
8f986d6f55 Get rid of deprecated rde-staging queue
It's no longer used by the current RDE system.  Also, remove an unused
Dagger @PRovides method for the rde-upload queue.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122164826
2016-05-13 23:25:54 -04:00
ctingue
a8544100fa Adding synthetic source ID to BillingEvent.OneTime
Synthetic BillingEvent.OneTimes need to have a pointer to their source Recurring event, in order to match up properly against Cancellations.

Also improving the exception message for mismatched Flag.SYNTHETIC and syntheticCreationTime.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122155636
2016-05-13 23:20:45 -04:00
ctingue
51362722cd Add syntheticCreationTime to BillingEvent.OneTime
In order to clean up potentially bad BillingEvent.Recurring expansions, we'll need to be able to trace synthetic billing events back to particular runs of the []. This field will be set to the cursor time at the start of the MR (all expansions in one MR job will have the same timestamp).
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121999938
2016-05-13 23:20:38 -04:00
cgoldfeder
d62da7bb19 Simplify logic in create/update tld commands
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121993554
2016-05-13 23:20:33 -04:00
cgoldfeder
d1f34776d2 Fix whitelist tests
Followups to []
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121993530
2016-05-13 23:20:27 -04:00
cgoldfeder
fc936ec2b0 Fix get_schema_tree to handle DotAppDomainInfo
This was the first time we ever had a type that was parented on a
particular type of EppResource, as opposed to on Key<EppResource>
generically, and get_schema_tree was not printing it correctly.

(While I'm here, add some missing javadoc).

The new output is below. The only difference is that the line
with DotAppDomainInfo was ommitted before.

AppDeveloperAccount (bgr)

AppToDomainAssociation (bgr)

CommitLogBucket (not backed up)
  ↳ CommitLogManifest (not backed up)
    ↳ CommitLogMutation (not backed up)

CommitLogCheckpointRoot (not backed up)
  ↳ CommitLogCheckpoint (not backed up)

DomainApplicationIndex (bgr)

EntityGroupRoot (bgr)
  ↳ ClaimsListShard.ClaimsListSingleton (not backed up)
    ↳ ClaimsListShard.ClaimsListRevision (virtual)
      ↳ ClaimsListShard (not backed up)
  ↳ Cursor
  ↳ LogsExportCursor
  ↳ PremiumList
    ↳ PremiumList.PremiumListRevision (virtual)
      ↳ PremiumList.PremiumListEntry
  ↳ Registrar
    ↳ RegistrarBillingEntry
    ↳ RegistrarContact
    ↳ RegistrarCredit
      ↳ RegistrarCreditBalance
  ↳ Registry
    ↳ RegistryCursor
  ↳ ReservedList
  ↳ ServerSecret (not backed up)
  ↳ SignedMarkRevocationList (not backed up)
  ↳ TmchCrl (not backed up)

EppResource (abstract) (bgr)
  - ContactResource
  - DomainBase
    - DomainApplication (subclass)
    - DomainResource (subclass)
      ↳ DotAppDomainInfo
  - HostResource
  ↳ HistoryEntry
    ↳ BillingEvent.Cancellation
    ↳ BillingEvent.Modification
    ↳ BillingEvent.OneTime
    ↳ BillingEvent.Recurring
    ↳ PollMessage (abstract)
      - PollMessage.Autorenew (subclass)
      - PollMessage.OneTime (subclass)

EppResourceIndexBucket (virtual)
  ↳ EppResourceIndex (bgr)

ForeignKeyIndex.ForeignKeyContactIndex (bgr)

ForeignKeyIndex.ForeignKeyDomainIndex (bgr)

ForeignKeyIndex.ForeignKeyHostIndex (bgr)

GaeUserIdConverter (not backed up)

Lock (not backed up)

RdeRevision
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121968765
2016-05-13 23:20:21 -04:00
cgoldfeder
766e2082f8 Make some methods static
A delayed followup from []
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121968754
2016-05-13 23:20:08 -04:00
cgoldfeder
371ffdf0c1 Implement Uniform [] Suspension Tool
The tool needs to:
* Replace all hosts on a domain with a provided set of hosts
* Add 3 server locks to the domain
* Print an undo command that restores the domain to its original state
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121944934
2016-05-13 23:20:00 -04:00
mcilwain
b60ceda055 Migrate @Provides(type=SET_VALUES) to @ElementsIntoSet
See Rosie [] for context.

We've already switched over to using Dagger 2.4 in respositories.bzl,
so this change is fine for our open source drop.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121863923
2016-05-13 23:19:48 -04:00
mcilwain
047bbf186e Extract premium pricing to a PricingEngine interface
This refactors the existing premium list functionality into the new
class StaticPremiumListPricingEngine, which implements PricingEngine.
A backfill @OnLoad is provided to default existing Registry entities
into the static implementation.  For now there is just this one
implementation.  Dagger map multibinding is used to generate the total
set of allowed pricing engines, and allows other parties to plug in
their own implementations.

The pricing engine is a required field on the Registry object.  If you
don't want a particular Registry to actually have a premium list, then
use the static pricing engine but don't actually set a premium list.

A subsequent CL will refactor the Key<PremiumList> field on the
Registry entity class to be handled solely by the
StaticPremiumListPricingEngine implementation.  Going forward, all
configuration and implementation details that are specific to a given
pricing engine should be handled by that pricing engine, and not as
fields on the Registry object.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121850176
2016-05-13 23:19:40 -04:00
ctingue
87961fbb12 Add global-scoped (and other type-scoped) cursors
Expanding recurring billing events will require a global cursor as opposed to a Registry-scoped cursor, so this CL creates a more generic Cursor type and adds a dual-write for the old RegistryCursor (for both old and new styles) on save. We can then touch any stragglers using the UpdateCursorsCommand and simply drop the old RegistryCursor once all have been migrated.

See [] for migration tracking.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121706885
2016-05-13 23:19:34 -04:00
ctingue
42139be99d Update deprecated Predicates.assignableFrom
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121631483
2016-05-13 23:19:13 -04:00
mcilwain
6f69e96465 Add clientId and time parameters to pricing methods
This is a broken-out refactoring from []
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121603352
2016-05-13 23:19:07 -04:00
mcilwain
4a9be60e0b Rename DomainNameUtils method to getTldFromSld
This is broken out from []
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121599268
2016-05-13 23:19:02 -04:00
mcilwain
3ec6aebe44 Add data model entities for .app discounting
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121580499
2016-05-13 23:18:52 -04:00
ctingue
b435e20cbe Add ability to expand TimeOfYear into instances
Utilizing this function in the recurring billing event [], in order to abstract a lot of the expansion logic out of the MR itself.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121579246
2016-05-13 23:18:45 -04:00
kak
2dfffba1ee Inline remaining usages of Throwables.propagate. We are removing all calls in preparation for deleting the method.
More information: []

Tested:
    $ [] test //third_party/java_src/gtld/javatests/google/registry/bigquery:BigqueryUtilsTest //third_party/java_src/gtld/javatests/google/registry/cron:CommitLogFanoutActionTest //third_party/java_src/gtld/javatests/google/registry/dns:ReadDnsQueueActionTest //third_party/java_src/gtld/javatests/google/registry/documentation:FlowExceptionsTest //third_party/java_src/gtld/javatests/google/registry/export:BigqueryPollJobActionTest //third_party/java_src/gtld/javatests/google/registry/export:DatastoreBackupServiceTest //third_party/java_src/gtld/javatests/google/registry/export:ExportSnapshotServletTest //third_party/java_src/gtld/javatests/google/registry/export:SyncGroupMembersActionTest //third_party/java_src/gtld/javatests/google/registry/export:UpdateSnapshotViewActionTest //third_party/java_src/gtld/javatests/google/registry/flows:EppConsoleAsAdminServletTest //third_party/java_src/gtld/javatests/google/registry/flows:EppControllerTest //third_party/java_src/gtld/javatests/google/registry/flows:EppTlsServletTest //third_party/java_src/gtld/javatests/google/registry/flows:contact/ContactCheckFlowTest //third_party/java_src/gtld/javatests/google/registry/flows:contact/ContactTransferCancelFlowTest //third_party/java_src/gtld/javatests/google/registry/flows:domain/DomainAllocateFlowTest //third_party/java_src/gtld/javatests/google/registry/flows:domain/DomainApplicationDeleteFlowTest //third_party/java_src/gtld/javatests/google/registry/flows:domain/DomainDeleteFlowTest //third_party/java_src/gtld/javatests/google/registry/flows:domain/DomainRestoreRequestFlowTest //third_party/java_src/gtld/javatests/google/registry/flows:domain/DomainTransferApproveFlowTest //third_party/java_src/gtld/javatests/google/registry/flows:host/HostCreateFlowTest //third_party/java_src/gtld/javatests/google/registry/flows:session/LoginFlowViaTlsTest //third_party/java_src/gtld/javatests/google/registry/flows:session/LogoutFlowTest //third_party/java_src/gtld/javatests/google/registry/[]/inputs:EppResourceInputsTest //third_party/java_src/gtld/javatests/google/registry/model:CreateAutoTimestampTest //third_party/java_src/gtld/javatests/google/registry/model:RoidSuffixesTest //third_party/java_src/gtld/javatests/google/registry/model:UpdateAutoTimestampTest //third_party/java_src/gtld/javatests/google/registry/model:billing/BillingEventTest //third_party/java_src/gtld/javatests/google/registry/model:contact/ContactResourceTest //third_party/java_src/gtld/javatests/google/registry/model:domain/DomainApplicationTest //third_party/java_src/gtld/javatests/google/registry/model:domain/DomainResourceTest //third_party/java_src/gtld/javatests/google/registry/model:export/LogsExportCursorTest //third_party/java_src/gtld/javatests/google/registry/model:ofy/OfyCommitLogTest //third_party/java_src/gtld/javatests/google/registry/model:ofy/OfyTest //third_party/java_src/gtld/javatests/google/registry/model:poll/PollMessageExternalKeyConverterTest //third_party/java_src/gtld/javatests/google/registry/model:rde/RdeNamingUtilsTest //third_party/java_src/gtld/javatests/google/registry/model:registry/RegistryCursorTest //third_party/java_src/gtld/javatests/google/registry/model:registry/label/PremiumListTest //third_party/java_src/gtld/javatests/google/registry/model:registry/label/ReservedListTest //third_party/java_src/gtld/javatests/google/registry/model:server/LockTest //third_party/java_src/gtld/javatests/google/registry/model:smd/SignedMarkRevocationListTest //third_party/java_src/gtld/javatests/google/registry/model:tmch/ClaimsListShardTest //third_party/java_src/gtld/javatests/google/registry/monitoring/blackbox:EppClientConnectionTest //third_party/java_src/gtld/javatests/google/registry/monitoring/blackbox:EppRunnableProberTest //third_party/java_src/gtld/javatests/google/registry/monitoring/blackbox:WhoisQueryTest //third_party/java_src/gtld/javatests/google/registry/rdap:RdapActionBaseTest //third_party/java_src/gtld/javatests/google/registry/rdap:RdapJsonFormatterTest //third_party/java_src/gtld/javatests/google/registry/rdap:RdapSearchPatternTest //third_party/java_src/gtld/javatests/google/registry/rde:DomainResourceToXjcConverterTest //third_party/java_src/gtld/javatests/google/registry/request:JsonResponseTest //third_party/java_src/gtld/javatests/google/registry/tmch:NordnVerifyActionTest //third_party/java_src/gtld/javatests/google/registry/tmch:TmchCrlActionTest //third_party/java_src/gtld/javatests/google/registry/tools/params:DurationParameterTest //third_party/java_src/gtld/javatests/google/registry/tools/params:MoneyParameterTest //third_party/java_src/gtld/javatests/google/registry/tools/params:PathParameterTest //third_party/java_src/gtld/javatests/google/registry/tools/server:CreateGroupsActionTest //third_party/java_src/gtld/javatests/google/registry/tools/server:DeleteEntityActionTest //third_party/java_src/gtld/javatests/google/registry/tools:CreateContactCommandTest //third_party/java_src/gtld/javatests/google/registry/tools:CreateCreditBalanceCommandTest //third_party/java_src/gtld/javatests/google/registry/tools:CreateReservedListCommandTest //third_party/java_src/gtld/javatests/google/registry/tools:CreateTldCommandTest //third_party/java_src/gtld/javatests/google/registry/tools:DeletePremiumListCommandTest //third_party/java_src/gtld/javatests/google/registry/tools:DomainApplicationInfoCommandTest //third_party/java_src/gtld/javatests/google/registry/tools:DomainCheckCommandTest //third_party/java_src/gtld/javatests/google/registry/tools:EncryptEscrowDepositCommandTest //third_party/java_src/gtld/javatests/google/registry/tools:GenerateAuctionDataCommandTest //third_party/java_src/gtld/javatests/google/registry/tools:GetDomainCommandTest //third_party/java_src/gtld/javatests/google/registry/tools:GetTldCommandTest //third_party/java_src/gtld/javatests/google/registry/tools:ListDomainsCommandTest //third_party/java_src/gtld/javatests/google/registry/tools:ListRegistrarsCommandTest //third_party/java_src/gtld/javatests/google/registry/tools:RegistryToolEnvironmentTest //third_party/java_src/gtld/javatests/google/registry/ui/server/registrar:RegistrarServletTest //third_party/java_src/gtld/javatests/google/registry/util:RetrierTest //third_party/java_src/gtld/javatests/google/registry/util:SendEmailUtilsTest //third_party/java_src/gtld/javatests/google/registry/util:UrlFetchUtilsTest //third_party/java_src/gtld/javatests/google/registry/xjc:XjcObjectTest
    []
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121294781
2016-05-13 23:18:02 -04:00
Michael Muller
05803bbc33 Add a throw-away tool to remove IP addresses of external hosts
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121279715
2016-05-13 23:17:26 -04:00
jart
b672643194 Remove patharg classes
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121238717
2016-05-13 23:16:29 -04:00
jart
6082146d55 Prefer re2 over java.util.regex
Java's stock regex implementation doesn't guarantee linear time
complexity which makes it a security liability.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121159875
2016-05-13 23:16:07 -04:00
dxy
3291eb8b70 Make new source tree visible from internal release files
d/r/release is currently unable to see the new source tree, thus build fails
with [] files in the new location.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121140336
2016-05-13 23:16:01 -04:00
Michael Muller
c458c05801 Rename Java packages to use the .google TLD
The dark lord Gosling designed the Java package naming system so that
ownership flows from the DNS system. Since we own the domain name
registry.google, it seems only appropriate that we should use
google.registry as our package name.
2016-05-13 20:04:42 -04:00
Justine Tunney
5012893c1d mv com/google/domain/registry google/registry
This change renames directories in preparation for the great package
rename. The repository is now in a broken state because the code
itself hasn't been updated. However this should ensure that git
correctly preserves history for each file.
2016-05-13 18:55:08 -04:00
cgoldfeder
a41677aea1 Action to delete all cross-tld entities.
Plus refactoring of the KillAllXXXActions and tests to share
common code.

This essentially completes the KillAll []s. We can now reliably
clean out everything except for:
 * Lock - harmless to leave alone or delete from the gae console
 * GaeUserIdConverter - same
 * RdeRevision - filed [] to track, but harmless if not cleaned up
 * ForeignKeyHostIndex of renamed hosts - tracked in []
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=120781975
2016-05-13 17:42:16 -04:00
mcilwain
ac2f17e10f Make snapshot export modules use parameters, not headers
This fixes a regression introduced in the Daggerization change-over in
[] and [] which incorrectly switched to using
headers instead of sticking with parameters.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=120751832
2016-05-13 17:42:10 -04:00
mcilwain
894aaa5d68 Add code documentation on how the snapshot actions interact
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=120707865
2016-05-13 17:42:01 -04:00
mcilwain
7c43b1d89b Fix web.xml servlet entry for LoadSnapshotAction
This should have gone in with []
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=120671591
2016-05-13 17:41:42 -04:00
mcilwain
e14faaa7e6 Use Multimap bindings to construct BigQuery schema map
This refactoring allows the schemas to live in the same package they
are used, rather than all having to be inside the bigquery package.
This is a follow-up to []
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=120551011
2016-05-13 17:41:36 -04:00
mcilwain
d65bf2a714 Daggerize/Actionize the load snapshot servlet
This is needed to eliminate the last non-injected use of BigqueryFactory.  It gets rid of the deprecated HttpServletUtils now that we don't have lots of separate servlets, and changes the check snapshot servlet's usage of such.  It also fixes up some related minor style issues in the update snapshot action (and its injectable parameters).
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=120547998
2016-05-13 17:41:28 -04:00
mcilwain
9e7934684e Change WHOIS functionality to return PDT registrars
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=120448012
2016-05-13 17:41:23 -04:00
cgoldfeder
9ca191f3d4 Registry should not be a BackupGroupRoot
In [] I made Registry a BGR in prep for each Registry being in
its own entity group. But we decided not to do that, and in []
mcilwain@ moved Registry under the cross-tld root. So there's no reason
for Registry to implement BackupGroupRoot anymore.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=120402417
2016-05-13 17:41:18 -04:00
jart
36ab6c15fe Add Braintree prod merchant ID
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=120400330
2016-05-13 17:41:13 -04:00
nickfelt
3a3f112454 Whitelist credit creations commands for gTech
See bug for context.  This way gTech can create credits in the future
without our intervention.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=120382506
2016-05-13 17:41:08 -04:00