@cn-shell/aws-utils
Version:
A Cloud Native extension for AWS
97 lines (96 loc) • 2.78 kB
JavaScript
;
var __createBinding =
(this && this.__createBinding) ||
(Object.create
? function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, {
enumerable: true,
get: function() {
return m[k];
},
});
}
: function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
});
var __setModuleDefault =
(this && this.__setModuleDefault) ||
(Object.create
? function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}
: function(o, v) {
o["default"] = v;
});
var __importStar =
(this && this.__importStar) ||
function(mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null)
for (var k in mod)
if (k !== "default" && Object.hasOwnProperty.call(mod, k))
__createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault =
(this && this.__importDefault) ||
function(mod) {
return mod && mod.__esModule ? mod : { default: mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const cn_shell_1 = __importDefault(require("cn-shell"));
const AWS = __importStar(require("./main"));
const SecretARN = process.env["SECRET_ARN"];
class App extends cn_shell_1.default {
constructor(name) {
super(name);
}
async stop() {}
async healthCheck() {
return true;
}
async start() {
let test = new AWS.Secrets.Secret("Secretly", {
secret: SecretARN === undefined ? "UNKNOWN" : SecretARN,
region: "eu-west-1",
});
let value = await test.getValue();
this.info("Current value: %s", value);
let previous = await test.getPreviousValue();
this.info("Previous value: %s", previous);
let restore = await test.restoreLastValue();
if (restore !== previous) {
this.error("failed to restore previous value");
return false;
}
await sleep(2000);
this.info("previous value restored");
value = await test.getValue();
this.info("Current value: %s", value);
previous = await test.getPreviousValue();
this.info("Previous value: %s", previous);
let success = await test.setValue(previous);
if (success) {
this.info("restored manually succeeded");
} else {
this.error("restored manually failed");
}
await sleep(2000);
value = await test.getValue();
this.info("Current value: %s", value);
previous = await test.getPreviousValue();
this.info("Previous value: %s", previous);
return true;
}
}
async function sleep(ms) {
return new Promise(resolve => {
setTimeout(resolve, ms);
});
}
let app = new App("App");
app.start();