feat: stub out a bunch of code

This commit is contained in:
Jose Diaz-Gonzalez
2021-03-04 22:16:51 -05:00
parent 336e901c1e
commit 5d8340d305
3 changed files with 83 additions and 0 deletions

View 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
}

View File

@@ -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, "", "")

View File

@@ -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)
}