From c4ce3cd275b4047fa49e0b79d3342ff5502e22bc Mon Sep 17 00:00:00 2001 From: bom Date: Fri, 23 Aug 2024 12:10:39 +0200 Subject: [PATCH] Add aws credential file --- src/dda/backup/core.clj | 19 ++++++++++++++++++- src/dda/backup/postgresql.clj | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/dda/backup/core.clj b/src/dda/backup/core.clj index f21a3d3..93dd9ac 100644 --- a/src/dda/backup/core.clj +++ b/src/dda/backup/core.clj @@ -2,7 +2,7 @@ (:require [orchestra.core :refer [defn-spec]] [clojure.spec.alpha :as s] - [clojure.string :as st])) + [dda.backup.infrastructure :as i])) (def default {:dry-run false :debug false}) @@ -13,6 +13,12 @@ ::debug ::execution-directory])) +(s/def ::aws-access-key-id string?) +(s/def ::aws-secret-access-key string?) +(s/def ::aws-config + (s/keys :req-un [::aws-access-key-id + ::aws-secret-access-key])) + (defn-spec env-or-file string? [name string?] (let [from-env (System/getenv name) @@ -22,3 +28,14 @@ (some? name-from-file) (slurp name-from-file) :else (throw ( RuntimeException. (str "Environment: [" name "," name-from-file "] was missing." )))))) + + +(defn-spec create-aws-credentials! nil? + [config ::aws-config] + (let [{:keys [aws-access-key-id aws-secret-access-key]} config] + (i/execute! [["mkdir" "/root/.aws"]] {}) + (spit "/root/.aws/credentials" + (str "[default]\n" + "aws_access_key_id=" aws-access-key-id "\n" + "aws_secret_access_key=" aws-secret-access-key "\n")) + (i/execute! [["chmod" "0600" "/root/.aws/credentials"]] {}))) \ No newline at end of file diff --git a/src/dda/backup/postgresql.clj b/src/dda/backup/postgresql.clj index af35081..dd65dea 100644 --- a/src/dda/backup/postgresql.clj +++ b/src/dda/backup/postgresql.clj @@ -22,7 +22,7 @@ [config ::pg-config] (let [config-w-defaults (merge default config)] (spit "/root/.pgpass" (domain/pgpass config-w-defaults)) - (i/execute! ["chmod" "0600" "/root/.pgpass"] config))) + (i/execute! [["chmod" "0600" "/root/.pgpass"]] config))) (defn-spec drop-create-db! nil? [config ::pg-config]