google / nomulus

Top-level domain name registry service on Google Cloud Platform

Home Page:https://registry.google

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Install guide is outdated. | Bazel fails to build

snub-fighter opened this issue · comments

Looks like the install guide is outdated due to folder hierarchy has changed. Install guide shows that java folder is in root of nomulus git clone folder. No longer the case. Ive tried adapting to the folder structure. I created the WORKSPACE, ref'd the folder as per the guide. I continue to fail to build. nomulus /core/src/main/ java/google/registry/

ERROR: Skipping '//core/src/main/java/google/registry/...': no targets found beneath 'core/src/main/java/google/registry'
ERROR: no targets found beneath 'core/src/main/java/google/registry'

To be fair I used git clone https://github.com/google/nomulus.git instead of git clone git@github.com:google/nomulus.git however Im not aware of a difference in the results as I dont believe the folder structure should change based on https vs ssh.

git clone section

Install Guide Output

$ git clone git@github.com:google/nomulus.git
Cloning into 'nomulus'...
[ .. snip .. ]
$ cd nomulus
$ ls
apiserving       CONTRIBUTORS  java        LICENSE    scripts
AUTHORS          docs          javascript  python     third_party
CONTRIBUTING.md  google        javatests   README.md  WORKSPACE

Real Life Output

cnsdomainregistar@cloudshell:~/nomulus (nomulus-project)$ ls
appengine_war.gradle  buildSrc         CONTRIBUTORS  dependencies.gradle    gradle             gradlew.bat         LICENSE           package-lock.json  proxy      release          third_party
AUTHORS               config           core          dependency_lic.gradle  gradle.properties  java_common.gradle  nomulus-logo.png  prober             python     services         util
build.gradle          CONTRIBUTING.md  db            docs                   gradlew            java-format         package.json      projects.gradle    README.md  settings.gradle  utils.gradle
cnsdomainregistar@cloudshell:~/nomulus (nomulus-project)$

FAILS TO BUILD BAZEL

cnsdomainregistar@cloudshell:~/nomulus (nomulus-project)$ bazel version
Build label: 0.25.0
Build target: bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Wed May 1 21:45:01 2019 (1556747101)
Build timestamp: 1556747101
Build timestamp as int: 1556747101
cnsdomainregistar@cloudshell:~/nomulus (nomulus-project)$
cnsdomainregistar@cloudshell:~/nomulus (nomulus-project)$ touch core/src/main/java/google/registry/WORKSPACE
cnsdomainregistar@cloudshell:~/nomulus (nomulus-project)$ bazel --batch  build --javacopt="-target 8 -source 8" //core/src/main/java{,tests}/google/registry/...
WARNING: --batch mode is deprecated. Please instead explicitly shut down your Bazel server using the command "bazel shutdown".
ERROR: Skipping '//core/src/main/java/google/registry/...': no targets found beneath 'core/src/main/java/google/registry'
ERROR: no targets found beneath 'core/src/main/java/google/registry'
INFO: Elapsed time: 1.695s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded)

We now build with Gradle. Please try ./gradlew build instead.

Note that you probable won’t be able to run all the tests on Cloud Shell as Docker is needed for tests. Try ./gradlew build -x test to skip tests.

We’ll update the install guide. Thanks for reporting.

This appears to only have installed gradle 6.0. This is a pretty easy method looks like.

Whats the process to build nomulus similar to this section?
HERE


cnsdomainregistar@cloudshell:~ (nomulus-project)$ ./nomulus/gradlew build
Downloading https://services.gradle.org/distributions/gradle-6.0-all.zip
.............10%.............20%..............30%.............40%..............50%.............60%..............70%.............80%..............90%.............100%

> Task :buildEnvironment

------------------------------------------------------------
Root project
------------------------------------------------------------

classpath
No dependencies

A web-based, searchable dependency report is available by adding the --scan option.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.0/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 17s
1 actionable task: 1 executed

You'll need to run ./gradlew build in the nomulus directory. Gradle finds tasks under the current directory. To deploy, edit projects.gradle and run ./gradlew deploy -Penvironment=<your environment>.

Trying to deploy this and getting the following error when I attempt to access the application.

google.registry.module.ServletBase service: Received FrontendServlet request

google.registry.request.auth.RequestAuthenticator authorize: Action requires auth: AuthSettings{methods=[INTERNAL, API, LEGACY], minimumLevel=NONE, userPolicy=PUBLIC}

google.registry.request.auth.RequestAuthenticator authenticate: Authenticated via legacy auth: AuthResult{authLevel=USER, userAuthInfo=Optional[UserAuthInfo{user=email@gmail.com, isUserAdmin=true, oauthTokenInfo=Optional.empty}]}

com.google.monitoring.metrics.MetricRegistryImpl newIncrementableMetric: Registered new counter: /console/registrar/console_requests

com.google.monitoring.metrics.MetricRegistryImpl newIncrementableMetric: Registered new counter: /console/registrar/setting_requests

google.registry.request.auth.AuthenticatedRegistrarAccessor createRoleMap: Checking registrar contacts for user ID 102374110820689725171

google.registry.request.auth.AuthenticatedRegistrarAccessor : admin email@gmail.com has the following roles: {}

google.registry.request.RequestMetrics record: Action called for path=/registrar, method=GET, authLevel=USER, success=true. Took: 1.138s

google.registry.module.ServletBase service: Finished FrontendServlet request. Latency: 1.198s

com.google.apphosting.runtime.jetty9.JettyLogger warn: Error for /registrar
com.google.common.util.concurrent.ExecutionError: java.lang.ExceptionInInitializerError

com.google.apphosting.runtime.jetty9.JettyLogger warn: Error for /registrar
com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: Could not initialize class google.registry.model.transaction.TransactionManagerFactory
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
at com.google.common.cache.LocalCache.get(LocalCache.java:3953)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3976)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4960)
at google.registry.model.server.ServerSecret.get(ServerSecret.java:74)
at google.registry.security.XsrfTokenManager.generateToken(XsrfTokenManager.java:64)
at google.registry.ui.server.registrar.HtmlAction.run(HtmlAction.java:98)
at google.registry.request.RequestHandler.handleRequest(RequestHandler.java:157)
at google.registry.module.ServletBase.service(ServletBase.java:76)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:848)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1772)
at google.registry.model.ofy.OfyFilter.doFilter(OfyFilter.java:31)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
at com.googlecode.objectify.cache.AsyncCacheFilter.doFilter(AsyncCacheFilter.java:59)
at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
at com.google.apphosting.runtime.jetty9.ParseBlobUploadHandler.handle(ParseBlobUploadHandler.java:119)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1182)
at com.google.apphosting.runtime.jetty9.AppEngineWebAppContext.doHandle(AppEngineWebAppContext.java:187)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at com.google.apphosting.runtime.jetty9.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:293)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
at org.eclipse.jetty.server.Server.handle(Server.java:539)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333)
at com.google.apphosting.runtime.jetty9.RpcConnection.handle(RpcConnection.java:213)
at com.google.apphosting.runtime.jetty9.RpcConnector.serviceRequest(RpcConnector.java:81)
at com.google.apphosting.runtime.jetty9.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:134)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchServletRequest(JavaRuntime.java:747)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchRequest(JavaRuntime.java:710)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:680)
at com.google.apphosting.runtime.JavaRuntime$NullSandboxRequestRunnable.run(JavaRuntime.java:872)
at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:270)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class google.registry.model.transaction.TransactionManagerFactory
at google.registry.model.server.ServerSecret$1.load(ServerSecret.java:58)
at google.registry.model.server.ServerSecret$1.load(ServerSecret.java:49)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
... 44 more

Error for /registrar
com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: Could not initialize class google.registry.model.transaction.TransactionManagerFactory
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
at com.google.common.cache.LocalCache.get(LocalCache.java:3953)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3976)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4960)
at google.registry.model.server.ServerSecret.get(ServerSecret.java:74)
at google.registry.security.XsrfTokenManager.generateToken(XsrfTokenManager.java:64)
at google.registry.ui.server.registrar.HtmlAction.run(HtmlAction.java:98)
at google.registry.request.RequestHandler.handleRequest(RequestHandler.java:157)
at google.registry.module.ServletBase.service(ServletBase.java:76)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:848)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1772)
at google.registry.model.ofy.OfyFilter.doFilter(OfyFilter.java:31)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
at com.googlecode.objectify.cache.AsyncCacheFilter.doFilter(AsyncCacheFilter.java:59)
at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
at com.google.apphosting.runtime.jetty9.ParseBlobUploadHandler.handle(ParseBlobUploadHandler.java:119)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1182)
at com.google.apphosting.runtime.jetty9.AppEngineWebAppContext.doHandle(AppEngineWebAppContext.java:187)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at com.google.apphosting.runtime.jetty9.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:293)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
at org.eclipse.jetty.server.Server.handle(Server.java:539)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333)
at com.google.apphosting.runtime.jetty9.RpcConnection.handle(RpcConnection.java:213)
at com.google.apphosting.runtime.jetty9.RpcConnector.serviceRequest(RpcConnector.java:81)
at com.google.apphosting.runtime.jetty9.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:134)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchServletRequest(JavaRuntime.java:747)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchRequest(JavaRuntime.java:710)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:680)
at com.google.apphosting.runtime.JavaRuntime$NullSandboxRequestRunnable.run(JavaRuntime.java:872)
at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:270)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class google.registry.model.transaction.TransactionManagerFactory
at google.registry.model.server.ServerSecret$1.load(ServerSecret.java:58)
at google.registry.model.server.ServerSecret$1.load(ServerSecret.java:49)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
... 44 more

Uncaught exception from servlet
com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: Could not initialize class google.registry.model.transaction.TransactionManagerFactory
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
at com.google.common.cache.LocalCache.get(LocalCache.java:3953)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3976)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4960)
at google.registry.model.server.ServerSecret.get(ServerSecret.java:74)
at google.registry.security.XsrfTokenManager.generateToken(XsrfTokenManager.java:64)
at google.registry.ui.server.registrar.HtmlAction.run(HtmlAction.java:98)
at google.registry.request.RequestHandler.handleRequest(RequestHandler.java:157)
at google.registry.module.ServletBase.service(ServletBase.java:76)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:848)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1772)
at google.registry.model.ofy.OfyFilter.doFilter(OfyFilter.java:31)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
at com.googlecode.objectify.cache.AsyncCacheFilter.doFilter(AsyncCacheFilter.java:59)
at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
at com.google.apphosting.runtime.jetty9.ParseBlobUploadHandler.handle(ParseBlobUploadHandler.java:119)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1182)
at com.google.apphosting.runtime.jetty9.AppEngineWebAppContext.doHandle(AppEngineWebAppContext.java:187)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at com.google.apphosting.runtime.jetty9.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:293)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
at org.eclipse.jetty.server.Server.handle(Server.java:539)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333)
at com.google.apphosting.runtime.jetty9.RpcConnection.handle(RpcConnection.java:213)
at com.google.apphosting.runtime.jetty9.RpcConnector.serviceRequest(RpcConnector.java:81)
at com.google.apphosting.runtime.jetty9.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:134)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchServletRequest(JavaRuntime.java:747)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchRequest(JavaRuntime.java:710)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:680)
at com.google.apphosting.runtime.JavaRuntime$NullSandboxRequestRunnable.run(JavaRuntime.java:872)
at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:270)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class google.registry.model.transaction.TransactionManagerFactory
at google.registry.model.server.ServerSecret$1.load(ServerSecret.java:58)
at google.registry.model.server.ServerSecret$1.load(ServerSecret.java:49)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
... 44 more

Is email@gmail.com the account that has admin role in the GCP project that hosts this nomulus instance?

Yes it does. email@gmail.com has been assigned as admin for the project. Image uploaded as ref.

nomulus

OK. The auth logic for the console has been updated so I'm not 100% sure this would fix it, without digging through the code:

  1. Create a registrar with the the command line tool:

nomulus -e production create_registrar

  1. Add email@gmail.com as a registrar contact to that registrar:

nomulus -e production registrar_contact <registrar> --mode CREATE --email <email@gmail.com> --allow_console_access=true --name '<some name>'

And then try go to /registrar again.

K thanks will update soon.

What is the gradle command to build the admin tool?

task registryTool(type: JavaExec) {

Whats the is corresponding build command in Gradle?
bazel build //java/google/registry/tools:nomulus

./gradlew build -x test registryTool

Task :core:registryTool FAILED
Exception in thread "main" java.lang.IllegalArgumentException: Please specify the environment flag, e.g. -e production.
at google.registry.tools.RegistryToolEnvironment.getFlagValue(RegistryToolEnvironment.java:150)
at google.registry.tools.RegistryToolEnvironment.parseFromArgs(RegistryToolEnvironment.java:68)
at google.registry.tools.RegistryTool.main(RegistryTool.java:126)

@jianglai Whats the ETA of the revised install.md file ?
Having you guys go through a new installation process (in detail) would probably be a faster resolution to this instead of chopping issues off one by one as they come in.

./gradlew build -x test registryTool

Task :core:registryTool FAILED
Exception in thread "main" java.lang.IllegalArgumentException: Please specify the environment flag, e.g. -e production.
at google.registry.tools.RegistryToolEnvironment.getFlagValue(RegistryToolEnvironment.java:150)
at google.registry.tools.RegistryToolEnvironment.parseFromArgs(RegistryToolEnvironment.java:68)
at google.registry.tools.RegistryTool.main(RegistryTool.java:126)

Please check the comments in the link that I referenced. If you run gradle registryTool, you can add --args "-e production create_registrar ..." after it.

Or you can run gradle nomulus to create a nomulus.jar file in core/build/libs and run the jar file directly with java.

Regarding updates to the instruction, we will try to bump the priority. It would be better if you guys can let us know what you are trying to achieve, so that we can better help you.

@mindhog It looks like we should probably have a fix-it hackathon to fix all the docs, including external docs, rather than doing it piecemeal. There are also some internal docs like how to create a registrar contact and enable console access that should be moved to external as well. What do you think?

@jianglai Thank you for all the quick responses. You've been really good at that.

Right now its really just build and deploy it to demo it on app engine. Regardless of how its used in production is ultimately irrelevant in regards to just trying to deploy it on app engine to test it.

Thanks I will try running this command shortly.

@jianglai Thank you for all the quick responses. You've been really good at that.

Right now its really just build and deploy it to demo it on app engine. Regardless of how its used in production is ultimately irrelevant in regards to just trying to deploy it on app engine to test it.

Understood. If you just want to try it out, the registrar console would not be the first thing that I'd recommend you experiment with. It is mostly for registrars to set some basic settings, all of which can be achieved by using the command line tool. I'd recommend you build the command line tool and try using it to administer the GAE app, and also try setting up the proxy so that you can actually send EPP and WHOIS requests to your app.

Always happy to help out. Let us know if you have any other questions.

Would y'all mind introducing yourselves? It'd help us to know what kind of use case you're dealing with, e.g. are you a ccTLD, gTLD, registry service provider, etc.?

java -jar ./core/build/libs/nomulus.jar -e alpha login
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Please open the following address in your browser:
https://accounts.google.com/o/oauth2/auth?client_id=YOUR_CLIENT_ID&redirect_uri=http://localhost:55256/Callback&response_type=code&scope=https://www.googleapis.com/auth/cloud-platform%20https://www.googleapis.com/auth/appengine.apis%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/appengine.admin
Attempting to open that address in the default browser now...

Gets me nowhere :)

java -jar ./core/build/libs/nomulus.jar -e alpha create_registrar
Create new registrar account(s)
Usage: create_registrar [options] Client identifier of the registrar account

What ID do you expect?

@CydeWeys You bet. This will operate as a gTLD which will service more than one TLD.

java -jar ./core/build/libs/nomulus.jar -e alpha login
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Please open the following address in your browser:
https://accounts.google.com/o/oauth2/auth?client_id=YOUR_CLIENT_ID&redirect_uri=http://localhost:55256/Callback&response_type=code&scope=https://www.googleapis.com/auth/cloud-platform%20https://www.googleapis.com/auth/appengine.apis%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/appengine.admin
Attempting to open that address in the default browser now...

Gets me nowhere :)

Please refer to this section to configure your OAuth2 client ID and secret for your command line tool.

java -jar ./core/build/libs/nomulus.jar -e alpha create_registrar
Create new registrar account(s)
Usage: create_registrar [options] Client identifier of the registrar account

What ID do you expect?

This would be the id that you want to give to the new registrar. We have a registrar that we use internally to allocate domains for ourselves.

How do I get this ID?

@oWhizardo I sent it to you just now. Check ur chat.

@mindhog It looks like we should probably have a fix-it hackathon to fix all the docs, including external docs, rather than doing it piecemeal. There are also some internal docs like how to create a registrar contact and enable console access that should be moved to external as well. What do you think?

Well, there's a lot of internal documentation that is not very frequently used and I don't think we want to deal with it at the same priority as something like this. I think we should identify what we want to fix or migrate and then we can talk about whether we need a fixit to do it.

@mindhog That would be really great. As helpful as this thread is, it is a game of ping pong and I'm sure you have better things to do. :)

@mindhog @jianglai Any progress on this front?

@mindhog @jianglai Any progress on this front?

The plan is to try to update the docs during the holiday period (last two weeks of the year) when things are slow. If you have questions in the meantime, feel free to ask them. Apologies for the delay.

Any progress on the docs update? @jianglai @mindhog

Sorry to have dropped the ball on this. The install doc, at least, was updated this year: https://github.com/google/nomulus/blob/master/docs/install.md Most of the other docs should be as well, though it appears that "developing" still references bazel.

If you're still interested, please give it a try.