Skip to content
This repository has been archived by the owner on Jan 17, 2023. It is now read-only.

Commit

Permalink
Merge pull request #71 from atc-/0.9.0
Browse files Browse the repository at this point in the history
0.9.0
  • Loading branch information
Alex Collins committed Aug 3, 2014
2 parents 8a11d41 + d22742e commit f0a9987
Show file tree
Hide file tree
Showing 29 changed files with 440 additions and 54 deletions.
2 changes: 1 addition & 1 deletion application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
#Wed Jul 09 18:55:10 BST 2014
app.grails.version=2.4.2
app.name=docker-registry-ui
app.version=0.8.1
app.version=0.9.0
18 changes: 10 additions & 8 deletions grails-app/conf/BootStrap.groovy
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import docker.registry.web.Registry
import docker.registry.web.User
import groovyx.net.http.URIBuilder

class BootStrap {

Expand All @@ -16,24 +15,27 @@ class BootStrap {
System.getenv().each { key, urlStr ->
if (key.matches("REG(\\d)")) {
log.info("Found registry $urlStr. Creating...")
def m = urlStr =~ /.*(v\d).*/
def reg = Registry.fromUrl(urlStr)

if (m.matches()) {
def reg = new Registry()
reg.url = urlStr.replaceAll("/(v\\d)/", "") // remove API version
reg.apiVersion = m.group(1) // extracts e.g. v1 from url
reg.save()
if (reg) {
if (Registry.findByHostAndApiVersion(reg.host, reg.apiVersion)) {
log.info("Not creating registry ${urlStr} as it already exists")
} else {
log.info("Registry ${reg} doesn't exist; saving")
reg.save()
}

if (!reg.ping()) {
log.warn("Registry '${reg.toUrl()}' ping failed! Check it's up!")
}

} else {
log.error("Couldn't parse the API version from $regUrl")
log.error("Couldn't parse valid registry URL from $urlStr")
}
}
}
}

def destroy = {
}
}
1 change: 0 additions & 1 deletion grails-app/conf/BuildConfig.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@ grails.project.dependency.resolution = {
compile ":jquery-ui:1.10.3"
compile ":jquery-datatables:1.7.5"
compile ":spring-security-core:2.0-RC3"
compile ":dwr:0.1"

// plugins needed at runtime but not for compilation
runtime ":hibernate4:4.3.5.3"
Expand Down
16 changes: 0 additions & 16 deletions grails-app/conf/DwrConfigBootStrap.groovy

This file was deleted.

47 changes: 42 additions & 5 deletions grails-app/domain/docker/registry/web/Registry.groovy
Original file line number Diff line number Diff line change
@@ -1,18 +1,30 @@
package docker.registry.web

import groovyx.net.http.HTTPBuilder

class Registry {
String url
String apiVersion
String host = "localhost"
int port
String apiVersion = "v1"
String username
String password

def repositoryService

static constraints = {
username nullable: true
password nullable: true
}

static transients = ['toUrl', 'repositories', 'ping']
static transients = ['toUrl', 'repositories', 'ping', 'fromUrl']

def toUrl() {
return "${this.url}/${this.apiVersion}"
def urlString = "http://${this.host}:${this.port}/${this.apiVersion}"
if (username) {
if (password) urlString = urlString.replace("://", "://$username:$password@")
else urlString = urlString.replace("://", "://$username@")
}
urlString
}

def getRepositories() {
Expand All @@ -23,12 +35,37 @@ class Registry {
repositoryService.ping(this)
}

/**
* Static factory method for creating an instance from a URL.
* @param urlStr a url in the format: http://hostOrIP:OptionalPort/v1/
**/
static def fromUrl(final String urlStr) {
if (urlStr?.endsWith("/v1/")) { //FIXME this won't work for new api versions
def url = urlStr.toURL()
if (url) {
def auth = url.userInfo?.split(":")
return new Registry(
host: url.host,
port: url.port == -1 ? 80 : url.port,
apiVersion: url.path.replaceAll("\\p{Punct}", ""),
username: auth?.length > 0 ? auth[0] : null,
password: auth?.length > 1 ? auth[1] : null
)
}
}
null
}

@Override
public String toString() {
return "Registry{" +
"id=" + id +
", url='" + url + '\'' +
", host='" + host + '\'' +
", port=" + port +
", apiVersion='" + apiVersion + '\'' +
", username='" + username + '\'' +
", password='" + password + '\'' +
", repositoryService=" + repositoryService +
", version=" + version +
'}';
}
Expand Down
8 changes: 8 additions & 0 deletions grails-app/i18n/messages.properties
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,11 @@ ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password
8 changes: 8 additions & 0 deletions grails-app/i18n/messages_cs_CZ.properties
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,11 @@ ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password
8 changes: 8 additions & 0 deletions grails-app/i18n/messages_da.properties
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,12 @@ ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password

8 changes: 8 additions & 0 deletions grails-app/i18n/messages_de.properties
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,11 @@ ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password
10 changes: 9 additions & 1 deletion grails-app/i18n/messages_es.properties
Original file line number Diff line number Diff line change
Expand Up @@ -79,4 +79,12 @@ registry.url.label=URL
ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password
8 changes: 8 additions & 0 deletions grails-app/i18n/messages_fr.properties
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,11 @@ ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password
8 changes: 8 additions & 0 deletions grails-app/i18n/messages_it.properties
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,11 @@ ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password
8 changes: 8 additions & 0 deletions grails-app/i18n/messages_ja.properties
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,11 @@ ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password
8 changes: 8 additions & 0 deletions grails-app/i18n/messages_nb.properties
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,12 @@ ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password

8 changes: 8 additions & 0 deletions grails-app/i18n/messages_nl.properties
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,11 @@ ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password
8 changes: 8 additions & 0 deletions grails-app/i18n/messages_pl.properties
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,11 @@ ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password
10 changes: 9 additions & 1 deletion grails-app/i18n/messages_pt_BR.properties
Original file line number Diff line number Diff line change
Expand Up @@ -83,4 +83,12 @@ registry.url.label=URL
ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password
8 changes: 8 additions & 0 deletions grails-app/i18n/messages_pt_PT.properties
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,11 @@ ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password
8 changes: 8 additions & 0 deletions grails-app/i18n/messages_ru.properties
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,11 @@ ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password
10 changes: 9 additions & 1 deletion grails-app/i18n/messages_sv.properties
Original file line number Diff line number Diff line change
Expand Up @@ -79,4 +79,12 @@ registry.url.label=URL
ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password
8 changes: 8 additions & 0 deletions grails-app/i18n/messages_th.properties
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,11 @@ ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password
8 changes: 8 additions & 0 deletions grails-app/i18n/messages_zh_CN.properties
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,11 @@ ui.dialog.button.deleteTag=Delete tag
registry.ping.failed=Ping failed\!
registry.ping.succeeded=Ping succeeded
labels.registry.ping=Pingable?
registry.host.label=Hostname
registry.port.label=Port
registry.password.label=Password
registry.username.label=Username
labels.registry.host=Hostname
labels.registry.port=Port
labels.registry.username=Username
labels.registry.password=Password
Loading

0 comments on commit f0a9987

Please sign in to comment.