From e53c2713375df961973777215f1d88cd2f74fb1f Mon Sep 17 00:00:00 2001 From: Gabriel Adrian Samfira Date: Tue, 22 Aug 2023 15:08:58 +0000 Subject: [PATCH] Add metadata URLs Signed-off-by: Gabriel Adrian Samfira --- apiserver/controllers/metadata.go | 7 +++++-- apiserver/routers/routers.go | 8 ++++---- runner/metadata.go | 4 +++- vendor/modules.txt | 2 +- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/apiserver/controllers/metadata.go b/apiserver/controllers/metadata.go index 0f2f7b77..664d46a6 100644 --- a/apiserver/controllers/metadata.go +++ b/apiserver/controllers/metadata.go @@ -55,14 +55,17 @@ func (a *APIController) JITCredentialsFileHandler(w http.ResponseWriter, r *http return } - data, err := a.r.GetJITConfigFile(ctx, fileName) + dotFileName := fmt.Sprintf(".%s", fileName) + + data, err := a.r.GetJITConfigFile(ctx, dotFileName) if err != nil { + log.Printf("getting JIT config file: %s", err) handleError(w, err) return } // Note the leading dot in the filename - name := fmt.Sprintf("attachment; filename=.%s", fileName) + name := fmt.Sprintf("attachment; filename=%s", dotFileName) w.Header().Set("Content-Disposition", name) w.Header().Set("Content-Type", "octet-stream") w.Header().Set("Content-Length", fmt.Sprintf("%d", len(data))) diff --git a/apiserver/routers/routers.go b/apiserver/routers/routers.go index 88c2e753..6644a4ba 100644 --- a/apiserver/routers/routers.go +++ b/apiserver/routers/routers.go @@ -121,10 +121,10 @@ func NewAPIRouter(han *controllers.APIController, logWriter io.Writer, authMiddl metadataRouter.Handle("/credentials/{fileName}/", http.HandlerFunc(han.JITCredentialsFileHandler)).Methods("GET", "OPTIONS") metadataRouter.Handle("/credentials/{fileName}", http.HandlerFunc(han.JITCredentialsFileHandler)).Methods("GET", "OPTIONS") // Systemd files - metadataRouter.Handle("/systemd/service-name/", http.HandlerFunc(han.SystemdServiceNameHandler)).Methods("GET", "OPTIONS") - metadataRouter.Handle("/systemd/service-name/", http.HandlerFunc(han.SystemdServiceNameHandler)).Methods("GET", "OPTIONS") - metadataRouter.Handle("/systemd/runner-service/", http.HandlerFunc(han.SystemdUnitFileHandler)).Methods("GET", "OPTIONS") - metadataRouter.Handle("/systemd/runner-service", http.HandlerFunc(han.SystemdUnitFileHandler)).Methods("GET", "OPTIONS") + metadataRouter.Handle("/system/service-name/", http.HandlerFunc(han.SystemdServiceNameHandler)).Methods("GET", "OPTIONS") + metadataRouter.Handle("/system/service-name", http.HandlerFunc(han.SystemdServiceNameHandler)).Methods("GET", "OPTIONS") + metadataRouter.Handle("/systemd/unit-file/", http.HandlerFunc(han.SystemdUnitFileHandler)).Methods("GET", "OPTIONS") + metadataRouter.Handle("/systemd/unit-file", http.HandlerFunc(han.SystemdUnitFileHandler)).Methods("GET", "OPTIONS") metadataRouter.Handle("/system/cert-bundle/", http.HandlerFunc(han.RootCertificateBundleHandler)).Methods("GET", "OPTIONS") metadataRouter.Handle("/system/cert-bundle", http.HandlerFunc(han.RootCertificateBundleHandler)).Methods("GET", "OPTIONS") diff --git a/runner/metadata.go b/runner/metadata.go index bbbc0e47..7fa8f782 100644 --- a/runner/metadata.go +++ b/runner/metadata.go @@ -53,11 +53,13 @@ func validateInstanceState(ctx context.Context) (params.Instance, error) { func (r *Runner) GetRunnerServiceName(ctx context.Context) (string, error) { instance, err := validateInstanceState(ctx) if err != nil { + log.Printf("failed to get instance params: %s", err) return "", runnerErrors.ErrUnauthorized } pool, err := r.store.GetPoolByID(r.ctx, instance.PoolID) if err != nil { + log.Printf("failed to get pool: %s", err) return "", errors.Wrap(err, "fetching pool") } @@ -113,7 +115,7 @@ func (r *Runner) GetJITConfigFile(ctx context.Context, file string) ([]byte, err jitConfig := instance.JitConfiguration contents, ok := jitConfig[file] if !ok { - return nil, fmt.Errorf("file not found: %w", runnerErrors.ErrNotFound) + return nil, errors.Wrap(runnerErrors.ErrNotFound, "retrieving file") } decoded, err := base64.StdEncoding.DecodeString(contents) diff --git a/vendor/modules.txt b/vendor/modules.txt index 7789a712..8a00e86e 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -439,5 +439,5 @@ gorm.io/gorm/logger gorm.io/gorm/migrator gorm.io/gorm/schema gorm.io/gorm/utils -# github.com/cloudbase/garm-provider-common => /home/ubuntu/garm-provider-common # github.com/google/go-github/v54 => github.com/gabriel-samfira/go-github/v54 v54.0.0-20230821112832-bbb536ee5a3a +# github.com/cloudbase/garm-provider-common => /home/ubuntu/garm-provider-common