feat: stub out a bunch of code
This commit is contained in:
57
plugins/registry/functions.go
Normal file
57
plugins/registry/functions.go
Normal file
@@ -0,0 +1,57 @@
|
||||
package registry
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
|
||||
"github.com/dokku/dokku/plugins/common"
|
||||
)
|
||||
|
||||
func isPushEnabled(appName string) bool {
|
||||
return reportComputedPushOnRelease(appName) == "true"
|
||||
}
|
||||
|
||||
func incrementTagVersion(appName string) (string, error) {
|
||||
tag := common.PropertyGet("registry", appName, "tag-version")
|
||||
if tag == "" {
|
||||
tag = "0"
|
||||
}
|
||||
|
||||
version, err := strconv.Atoi(tag)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("Unable to convert existing tag version (%s) to integer: %v", tag, err)
|
||||
}
|
||||
|
||||
version += 1
|
||||
common.LogVerboseQuiet(fmt.Sprintf("Bumping tag to %d", version))
|
||||
if err = common.PropertyWrite("registry", appName, "tag-version", strconv.Itoa(version)); err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return strconv.Itoa(version), nil
|
||||
}
|
||||
|
||||
func pushToRegistry(appName string, imageTag string) error {
|
||||
common.LogVerboseQuiet("Retrieving image info for app")
|
||||
|
||||
// DOKKU_REGISTRY_SERVER=$(fn-registry-remote-repository "$APP")
|
||||
// IMAGE_REPO=$(fn-registry-image-repo "$APP")
|
||||
// IMAGE_TAG="$(get_running_image_tag "$APP")"
|
||||
// IMAGE=$(get_app_image_name "$APP" "$IMAGE_TAG")
|
||||
// IMAGE_ID=$(docker inspect --format '{{ .Id }}' "$IMAGE")
|
||||
|
||||
// dokku_log_verbose_quiet "Tagging $IMAGE_REPO:$TAG in registry format"
|
||||
// docker tag "$IMAGE_ID" "${DOKKU_REGISTRY_SERVER}${IMAGE_REPO}:${TAG}"
|
||||
// docker tag "$IMAGE_ID" "${IMAGE_REPO}:${TAG}"
|
||||
|
||||
// fn-registry-create-repository "$APP" "$DOKKU_REGISTRY_SERVER" "$IMAGE_REPO"
|
||||
|
||||
common.LogVerboseQuiet("Pushing $IMAGE_REPO:$TAG")
|
||||
// docker push "${DOKKU_REGISTRY_SERVER}${IMAGE_REPO}:${TAG}"
|
||||
|
||||
common.LogVerboseQuiet("Cleaning up")
|
||||
// fn-registry-image-cleanup "$APP" "$DOKKU_REGISTRY_SERVER" "$IMAGE_REPO" "$IMAGE_TAG" "$TAG"
|
||||
|
||||
common.LogVerboseQuiet("Image $IMAGE_REPO:$TAG pushed")
|
||||
return nil
|
||||
}
|
||||
@@ -18,11 +18,17 @@ func main() {
|
||||
|
||||
var err error
|
||||
switch trigger {
|
||||
case "deployed-app-repository":
|
||||
appName := flag.Arg(0)
|
||||
err = registry.TriggerDeployedAppRepository(appName)
|
||||
case "install":
|
||||
err = registry.TriggerInstall()
|
||||
case "post-delete":
|
||||
appName := flag.Arg(0)
|
||||
err = registry.TriggerPostDelete(appName)
|
||||
case "post-release-builder":
|
||||
appName := flag.Arg(1)
|
||||
err = registry.TriggerPostReleaseBuilder(appName)
|
||||
case "report":
|
||||
appName := flag.Arg(0)
|
||||
err = registry.ReportSingleApp(appName, "", "")
|
||||
|
||||
@@ -6,6 +6,11 @@ import (
|
||||
"github.com/dokku/dokku/plugins/common"
|
||||
)
|
||||
|
||||
// TriggerDeployedAppRepository outputs the associated registry repository to stdout
|
||||
func TriggerDeployedAppRepository(appName string) error {
|
||||
// TODO
|
||||
}
|
||||
|
||||
// TriggerInstall runs the install step for the registry plugin
|
||||
func TriggerInstall() error {
|
||||
if err := common.PropertySetup("registry"); err != nil {
|
||||
@@ -19,3 +24,18 @@ func TriggerInstall() error {
|
||||
func TriggerPostDelete(appName string) error {
|
||||
return common.PropertyDestroy("registry", appName)
|
||||
}
|
||||
|
||||
// TriggerPostReleaseBuilder pushes the image to the remote registry
|
||||
func TriggerPostReleaseBuilder(appName string) error {
|
||||
if !isPushEnabled(appName) {
|
||||
return nil
|
||||
}
|
||||
|
||||
common.LogInfo1("Pushing image to registry")
|
||||
imageTag, err := incrementTagVersion(appName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return pushToRegistry(appName, imageTag)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user