Commit graph

249 commits

Author SHA1 Message Date
ctingue
510da196d7 Follow-up changes to TimeOfYear from []
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123316677
2016-05-27 12:56:09 -04:00
mcilwain
a09f478ac0 Add simple registration type command extension for domain creates
Note that it doesn't do anything yet beyond basic XML validation
because the default registry system doesn't use registration types,
but this serves as a template for the other domain commands using
registration types and provides a method that TLDs implementing custom
logic can use.  This also explicitly doesn't yet handle the response
extensions.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123245388
2016-05-27 12:50:46 -04:00
mmuller
ee148ce630 Let all mutating flows accept metadata extension
This is so we can associate history records with all mutations when doing
database maintenance.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123209304
2016-05-27 12:48:06 -04:00
mcilwain
40a6dbe4fe Add regtype EPP extension XSD
Copied from v0.2 of https://gitlab.centralnic.com/centralnic/epp-registration-type-extension/blob/master/regtype.xsd
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123144767
2016-05-27 12:46:40 -04:00
ctingue
3abb29adf8 Rename BillingEvent.OneTime.cancellationTargetId
Per comments in []
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123000109
2016-05-27 12:45:19 -04:00
ctingue
91cf36c5b9 Change TimeOfDay getInstancesInRange to use Range
This will make the utility a lot more versatile (allow both open and closed intervals) and hand the range validation and comparison off to the Range class.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122867110
2016-05-27 12:43:56 -04:00
mcilwain
a2d2764115 Change second-level domain name to fully-qualified domain name
Second-level domain name isn't accurate because we support multi-part
TLDs, so standardize on the "fullyQualifiedDomainName" name that is
used throughout the code base.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122693009
2016-05-27 12:42:33 -04:00
mcilwain
ca0e546230 Add package for flow pickers
This also renames the existing FlowRegistry to FlowPicker to avoid
overloaded uses of the word "registry".  Absent this renaming, the new
package would've been google.registry.flows.registry, which gives
entirely the wrong impression as it makes it sound like the home for
flows that affect TLDs.

This is a preparatory CL for adding flow picker engines that will
allow customized flows to run on a per-TLD basis.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122671260
2016-05-27 12:41:11 -04:00
mcilwain
59e9d77ecc Extract list of flow providers to a field
This is the first step toward being able to add more providers on a
per-TLD basis.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122656117
2016-05-27 12:39:47 -04:00
cgoldfeder
cca77709e1 Show the registrant in unauth'ed domain <info>
RFC5731 leaves the registrant field as optional. We
currently don't show it on un-authed info, but we do
show it in WHOIS, so there's no strong reason not to
show it here. By doing so, we maintain the invariant
that registrant must always be present on a
DomainResource object.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122645356
2016-05-27 12:38:21 -04:00
Corey Goldfeder
cc11653446 Comment typo of the day
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122632247
2016-05-18 13:10:47 -04:00
Corey Goldfeder
24c11dfdca Add support for dsdata to the URS tool
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122631925
2016-05-18 13:10:32 -04:00
Corey Goldfeder
d2a66e9d1f Registrant of a domain can never be null
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122630609
2016-05-18 13:10:18 -04:00
Corey Goldfeder
68b75461db Delete the useless MapreduceAction interface
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122630519
2016-05-18 13:09:40 -04:00
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