stubbing inspection api
parent
ed9c056718
commit
3fa703512c
|
|
@ -29,7 +29,7 @@ jobs:
|
|||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
AWS_DEFAULT_REGION: eu-west-2
|
||||
- run: yarn run cli -m aws-list-all
|
||||
- run: yarn run cli -m list-resources
|
||||
env:
|
||||
AWS_REGION: eu-west-2
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
|
|
|
|||
|
|
@ -481,7 +481,6 @@ const action_yaml_1 = __nccwpck_require__(11091);
|
|||
const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855));
|
||||
const cloud_runner_query_override_1 = __importDefault(__nccwpck_require__(31011));
|
||||
const cli_functions_repository_1 = __nccwpck_require__(85301);
|
||||
const aws_cli_commands_1 = __nccwpck_require__(34340);
|
||||
const caching_1 = __nccwpck_require__(32885);
|
||||
const lfs_hashing_1 = __nccwpck_require__(8915);
|
||||
const remote_client_1 = __nccwpck_require__(48135);
|
||||
|
|
@ -504,10 +503,9 @@ class Cli {
|
|||
return;
|
||||
}
|
||||
static InitCliMode() {
|
||||
cli_functions_repository_1.CliFunctionsRepository.PushCliFunctionSource(aws_cli_commands_1.AwsCliCommands);
|
||||
cli_functions_repository_1.CliFunctionsRepository.PushCliFunctionSource(remote_client_1.RemoteClient);
|
||||
cli_functions_repository_1.CliFunctionsRepository.PushCliFunctionSource(caching_1.Caching);
|
||||
cli_functions_repository_1.CliFunctionsRepository.PushCliFunctionSource(lfs_hashing_1.LfsHashing);
|
||||
cli_functions_repository_1.CliFunctionsRepository.PushCliFunctionSource(remote_client_1.RemoteClient);
|
||||
const program = new commander_ts_1.Command();
|
||||
program.version('0.0.1');
|
||||
const properties = cloud_runner_options_reader_1.default.GetProperties();
|
||||
|
|
@ -582,14 +580,14 @@ class Cli {
|
|||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const buildParameter = yield __1.BuildParameters.create();
|
||||
yield __1.CloudRunner.setup(buildParameter);
|
||||
return yield __1.CloudRunner.Provider.listResources();
|
||||
return (yield __1.CloudRunner.Provider.listResources()).map((x) => x.Name);
|
||||
});
|
||||
}
|
||||
static ListWorfklow() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const buildParameter = yield __1.BuildParameters.create();
|
||||
yield __1.CloudRunner.setup(buildParameter);
|
||||
return yield __1.CloudRunner.Provider.listWorkflow();
|
||||
return (yield __1.CloudRunner.Provider.listWorkflow()).map((x) => x.Name);
|
||||
});
|
||||
}
|
||||
static Watch() {
|
||||
|
|
@ -603,14 +601,14 @@ class Cli {
|
|||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const buildParameter = yield __1.BuildParameters.create();
|
||||
yield __1.CloudRunner.setup(buildParameter);
|
||||
return yield __1.CloudRunner.Provider.inspectResources();
|
||||
return (yield __1.CloudRunner.Provider.inspectResources()).Name;
|
||||
});
|
||||
}
|
||||
static InspectWorkflow() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const buildParameter = yield __1.BuildParameters.create();
|
||||
yield __1.CloudRunner.setup(buildParameter);
|
||||
return yield __1.CloudRunner.Provider.inspectWorkflow();
|
||||
return (yield __1.CloudRunner.Provider.inspectWorkflow()).Name;
|
||||
});
|
||||
}
|
||||
static PostCLIBuild() {
|
||||
|
|
@ -630,7 +628,7 @@ __decorate([
|
|||
cli_functions_repository_1.CliFunction(`print-input`, `prints all input`)
|
||||
], Cli, "logInput", null);
|
||||
__decorate([
|
||||
cli_functions_repository_1.CliFunction(`cli`, `runs a cloud runner build`)
|
||||
cli_functions_repository_1.CliFunction(`cli-build`, `runs a cloud runner build`)
|
||||
], Cli, "CLIBuild", null);
|
||||
__decorate([
|
||||
cli_functions_repository_1.CliFunction(`garbage-collect`, `runs garbage collection`)
|
||||
|
|
@ -2286,130 +2284,6 @@ Resources:
|
|||
`;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 34340:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.AwsCliCommands = void 0;
|
||||
const cli_functions_repository_1 = __nccwpck_require__(85301);
|
||||
const task_service_1 = __nccwpck_require__(67205);
|
||||
const garbage_collection_service_1 = __nccwpck_require__(53859);
|
||||
const tertiary_resources_service_1 = __nccwpck_require__(61627);
|
||||
class AwsCliCommands {
|
||||
static awsListAll() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
yield AwsCliCommands.awsListStacks();
|
||||
yield AwsCliCommands.awsListTasks();
|
||||
yield AwsCliCommands.awsListLogGroups();
|
||||
});
|
||||
}
|
||||
static garbageCollectAws() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
yield garbage_collection_service_1.GarbageCollectionService.cleanup(false);
|
||||
});
|
||||
}
|
||||
static garbageCollectAwsAll() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
yield garbage_collection_service_1.GarbageCollectionService.cleanup(true);
|
||||
});
|
||||
}
|
||||
static garbageCollectAwsAllOlderThanOneDay() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
yield garbage_collection_service_1.GarbageCollectionService.cleanup(true, true);
|
||||
});
|
||||
}
|
||||
static awsListStacks(perResultCallback = false) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return task_service_1.TaskService.awsListStacks(perResultCallback);
|
||||
});
|
||||
}
|
||||
static awsListTasks(perResultCallback = false) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return task_service_1.TaskService.awsListJobs(perResultCallback);
|
||||
});
|
||||
}
|
||||
static awsListLogGroups(perResultCallback = false) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
yield tertiary_resources_service_1.TertiaryResourcesService.AwsListLogGroups(perResultCallback);
|
||||
});
|
||||
}
|
||||
static awsListJobs(perResultCallback = false) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return task_service_1.TaskService.awsListJobs(perResultCallback);
|
||||
});
|
||||
}
|
||||
static listTasks(perResultCallback = false) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return task_service_1.TaskService.awsListJobs(perResultCallback);
|
||||
});
|
||||
}
|
||||
static watchTasks() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return task_service_1.TaskService.watch();
|
||||
});
|
||||
}
|
||||
static describe(options) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
// return CloudRunner.Provider.inspect();
|
||||
return yield task_service_1.TaskService.awsDescribeJob(options.select);
|
||||
});
|
||||
}
|
||||
}
|
||||
__decorate([
|
||||
cli_functions_repository_1.CliFunction(`aws-list-all`, `List all resources`)
|
||||
], AwsCliCommands, "awsListAll", null);
|
||||
__decorate([
|
||||
cli_functions_repository_1.CliFunction(`aws-garbage-collect-list`, `garbage collect aws resources not in use !WIP!`)
|
||||
], AwsCliCommands, "garbageCollectAws", null);
|
||||
__decorate([
|
||||
cli_functions_repository_1.CliFunction(`aws-garbage-collect-all`, `garbage collect aws resources regardless of whether they are in use`)
|
||||
], AwsCliCommands, "garbageCollectAwsAll", null);
|
||||
__decorate([
|
||||
cli_functions_repository_1.CliFunction(`aws-garbage-collect-all-1d-older`, `garbage collect aws resources created more than 1d ago (ignore if they are in use)`)
|
||||
], AwsCliCommands, "garbageCollectAwsAllOlderThanOneDay", null);
|
||||
__decorate([
|
||||
cli_functions_repository_1.CliFunction(`aws-list-stacks`, `List stacks`)
|
||||
], AwsCliCommands, "awsListStacks", null);
|
||||
__decorate([
|
||||
cli_functions_repository_1.CliFunction(`aws-list-tasks`, `List tasks`)
|
||||
], AwsCliCommands, "awsListTasks", null);
|
||||
__decorate([
|
||||
cli_functions_repository_1.CliFunction(`aws-list-log-groups`, `List tasks`)
|
||||
], AwsCliCommands, "awsListLogGroups", null);
|
||||
__decorate([
|
||||
cli_functions_repository_1.CliFunction(`aws-list-jobs`, `List tasks`)
|
||||
], AwsCliCommands, "awsListJobs", null);
|
||||
__decorate([
|
||||
cli_functions_repository_1.CliFunction(`list-tasks`, `List tasks`)
|
||||
], AwsCliCommands, "listTasks", null);
|
||||
__decorate([
|
||||
cli_functions_repository_1.CliFunction(`watch`, `List tasks`)
|
||||
], AwsCliCommands, "watchTasks", null);
|
||||
__decorate([
|
||||
cli_functions_repository_1.CliFunction(`describe-resource`, `desribe tasks`)
|
||||
], AwsCliCommands, "describe", null);
|
||||
exports.AwsCliCommands = AwsCliCommands;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 90480:
|
||||
|
|
@ -2455,35 +2329,49 @@ const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855));
|
|||
const aws_job_stack_1 = __nccwpck_require__(70633);
|
||||
const aws_base_stack_1 = __nccwpck_require__(26112);
|
||||
const __1 = __nccwpck_require__(41359);
|
||||
const aws_cli_commands_1 = __nccwpck_require__(34340);
|
||||
const tertiary_resources_service_1 = __nccwpck_require__(61627);
|
||||
const task_service_1 = __nccwpck_require__(67205);
|
||||
const garbage_collection_service_1 = __nccwpck_require__(53859);
|
||||
const task_service_1 = __nccwpck_require__(67205);
|
||||
class AWSBuildEnvironment {
|
||||
constructor(buildParameters) {
|
||||
this.baseStackName = buildParameters.awsBaseStackName;
|
||||
}
|
||||
listResources() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
yield task_service_1.TaskService.awsListJobs();
|
||||
yield tertiary_resources_service_1.TertiaryResourcesService.awsListLogGroups();
|
||||
yield task_service_1.TaskService.awsListTasks();
|
||||
yield task_service_1.TaskService.awsListStacks();
|
||||
return [];
|
||||
});
|
||||
}
|
||||
inspectResources() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
yield new Promise((result) => result);
|
||||
return {
|
||||
Name: yield task_service_1.TaskService.awsDescribeJob(``),
|
||||
};
|
||||
});
|
||||
}
|
||||
listWorkflow() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectWorkflow() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectResources() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return yield task_service_1.TaskService.awsDescribeJob('');
|
||||
yield new Promise((result) => result);
|
||||
return {
|
||||
Name: yield task_service_1.TaskService.awsDescribeJob(``),
|
||||
};
|
||||
});
|
||||
}
|
||||
watchWorkflow() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const { output, shouldCleanup } = yield aws_task_runner_1.default.streamLogsUntilTaskStops(process.env.cluster || ``, process.env.taskArn || ``, process.env.streamName || ``);
|
||||
return output;
|
||||
return yield task_service_1.TaskService.watch();
|
||||
});
|
||||
}
|
||||
listOtherResources() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
yield tertiary_resources_service_1.TertiaryResourcesService.AwsListLogGroups();
|
||||
yield tertiary_resources_service_1.TertiaryResourcesService.awsListLogGroups();
|
||||
return '';
|
||||
});
|
||||
}
|
||||
|
|
@ -2499,14 +2387,6 @@ class AWSBuildEnvironment {
|
|||
return ``;
|
||||
});
|
||||
}
|
||||
listResources() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
yield aws_cli_commands_1.AwsCliCommands.awsListStacks();
|
||||
yield aws_cli_commands_1.AwsCliCommands.awsListTasks();
|
||||
yield aws_cli_commands_1.AwsCliCommands.awsListLogGroups();
|
||||
return [];
|
||||
});
|
||||
}
|
||||
cleanupWorkflow(
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
buildGuid,
|
||||
|
|
@ -2610,7 +2490,8 @@ const aws_sdk_1 = __importDefault(__nccwpck_require__(71786));
|
|||
const cli_functions_repository_1 = __nccwpck_require__(85301);
|
||||
const input_1 = __importDefault(__nccwpck_require__(91933));
|
||||
const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855));
|
||||
const aws_cli_commands_1 = __nccwpck_require__(34340);
|
||||
const task_service_1 = __nccwpck_require__(67205);
|
||||
const tertiary_resources_service_1 = __nccwpck_require__(61627);
|
||||
class GarbageCollectionService {
|
||||
static garbageCollectAws() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
|
|
@ -2638,7 +2519,7 @@ class GarbageCollectionService {
|
|||
const ecs = new aws_sdk_1.default.ECS();
|
||||
const cwl = new aws_sdk_1.default.CloudWatchLogs();
|
||||
const taskDefinitionsInUse = new Array();
|
||||
yield aws_cli_commands_1.AwsCliCommands.awsListTasks((taskElement, element) => __awaiter(this, void 0, void 0, function* () {
|
||||
yield task_service_1.TaskService.awsListTasks((taskElement, element) => __awaiter(this, void 0, void 0, function* () {
|
||||
var _a;
|
||||
taskDefinitionsInUse.push(taskElement.taskDefinitionArn);
|
||||
if (deleteResources && (!OneDayOlderOnly || GarbageCollectionService.isOlderThan1day(taskElement.CreatedAt))) {
|
||||
|
|
@ -2646,7 +2527,7 @@ class GarbageCollectionService {
|
|||
yield ecs.stopTask({ task: taskElement.taskArn || '', cluster: element }).promise();
|
||||
}
|
||||
}));
|
||||
yield aws_cli_commands_1.AwsCliCommands.awsListStacks((element) => __awaiter(this, void 0, void 0, function* () {
|
||||
yield task_service_1.TaskService.awsListStacks((element) => __awaiter(this, void 0, void 0, function* () {
|
||||
var _b;
|
||||
if ((_b = (yield CF.describeStackResources({ StackName: element.StackName }).promise()).StackResources) === null || _b === void 0 ? void 0 : _b.some((x) => x.ResourceType === 'AWS::ECS::TaskDefinition' && taskDefinitionsInUse.includes(x.PhysicalResourceId))) {
|
||||
cloud_runner_logger_1.default.log(`Skipping ${element.StackName} - active task was running not deleting`);
|
||||
|
|
@ -2662,7 +2543,7 @@ class GarbageCollectionService {
|
|||
yield CF.deleteStack(deleteStackInput).promise();
|
||||
}
|
||||
}));
|
||||
yield aws_cli_commands_1.AwsCliCommands.awsListLogGroups((element) => __awaiter(this, void 0, void 0, function* () {
|
||||
yield tertiary_resources_service_1.TertiaryResourcesService.awsListLogGroups((element) => __awaiter(this, void 0, void 0, function* () {
|
||||
if (deleteResources &&
|
||||
(!OneDayOlderOnly || GarbageCollectionService.isOlderThan1day(new Date(element.createdAt)))) {
|
||||
cloud_runner_logger_1.default.log(`Deleting ${element.logGroupName}`);
|
||||
|
|
@ -2709,9 +2590,14 @@ const aws_sdk_1 = __importDefault(__nccwpck_require__(71786));
|
|||
const input_1 = __importDefault(__nccwpck_require__(91933));
|
||||
const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855));
|
||||
const base_stack_formation_1 = __nccwpck_require__(29643);
|
||||
const aws_task_runner_1 = __importDefault(__nccwpck_require__(15518));
|
||||
class TaskService {
|
||||
static watch() {
|
||||
throw new Error('Method not implemented.');
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const { output, shouldCleanup } = yield aws_task_runner_1.default.streamLogsUntilTaskStops(process.env.cluster || ``, process.env.taskArn || ``, process.env.streamName || ``);
|
||||
return output;
|
||||
});
|
||||
}
|
||||
static awsListStacks(perResultCallback = false) {
|
||||
var _a, _b;
|
||||
|
|
@ -2844,7 +2730,7 @@ const aws_sdk_1 = __importDefault(__nccwpck_require__(71786));
|
|||
const input_1 = __importDefault(__nccwpck_require__(91933));
|
||||
const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855));
|
||||
class TertiaryResourcesService {
|
||||
static AwsListLogGroups(perResultCallback = false) {
|
||||
static awsListLogGroups(perResultCallback = false) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
process.env.AWS_REGION = input_1.default.region;
|
||||
const ecs = new aws_sdk_1.default.CloudWatchLogs();
|
||||
|
|
@ -2902,21 +2788,21 @@ const __1 = __nccwpck_require__(41359);
|
|||
const fs_1 = __nccwpck_require__(57147);
|
||||
const cloud_runner_1 = __importDefault(__nccwpck_require__(79144));
|
||||
class LocalDockerCloudRunner {
|
||||
listResources() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectResources() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
listWorkflow() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectWorkflow() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectResources() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
watchWorkflow() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
listResources() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
garbageCollect(
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
filter,
|
||||
|
|
@ -3072,21 +2958,21 @@ class Kubernetes {
|
|||
this.namespace = 'default';
|
||||
this.buildParameters = buildParameters;
|
||||
}
|
||||
listResources() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectResources() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
listWorkflow() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectWorkflow() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectResources() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
watchWorkflow() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
listResources() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
garbageCollect(
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
filter,
|
||||
|
|
@ -3804,21 +3690,21 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|||
const cloud_runner_system_1 = __nccwpck_require__(99393);
|
||||
const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855));
|
||||
class LocalCloudRunner {
|
||||
listResources() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectResources() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
listWorkflow() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectWorkflow() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectResources() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
watchWorkflow() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
listResources() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
garbageCollect(
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
filter,
|
||||
|
|
@ -3892,21 +3778,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855));
|
||||
class TestCloudRunner {
|
||||
listResources() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectResources() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
listWorkflow() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectWorkflow() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectResources() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
watchWorkflow() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
listResources() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
garbageCollect(
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
filter,
|
||||
|
|
@ -5259,15 +5145,13 @@ class SharedWorkspaceLocking {
|
|||
if (!cloud_runner_options_1.default.retainWorkspaces) {
|
||||
return;
|
||||
}
|
||||
cloud_runner_logger_1.default.log(`run agent ${runId} is trying to access a workspace`);
|
||||
if (yield SharedWorkspaceLocking.DoesWorkspaceTopLevelExist(buildParametersContext)) {
|
||||
const workspaces = yield SharedWorkspaceLocking.GetFreeWorkspaces(buildParametersContext);
|
||||
for (const element of workspaces) {
|
||||
const lockResult = yield SharedWorkspaceLocking.LockWorkspace(element, runId, buildParametersContext);
|
||||
cloud_runner_logger_1.default.log(`run agent ${runId} try lock workspace: ${element} result: ${lockResult}`);
|
||||
if (lockResult) {
|
||||
return true;
|
||||
}
|
||||
const workspaces = yield SharedWorkspaceLocking.GetFreeWorkspaces(buildParametersContext);
|
||||
cloud_runner_logger_1.default.log(`run agent ${runId} is trying to access a workspace, free: ${JSON.stringify(workspaces)}`);
|
||||
for (const element of workspaces) {
|
||||
const lockResult = yield SharedWorkspaceLocking.LockWorkspace(element, runId, buildParametersContext);
|
||||
cloud_runner_logger_1.default.log(`run agent ${runId} try lock workspace: ${element} result: ${lockResult}`);
|
||||
if (lockResult) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
const createResult = yield SharedWorkspaceLocking.CreateWorkspace(workspace, buildParametersContext, runId);
|
||||
|
|
@ -5295,7 +5179,7 @@ class SharedWorkspaceLocking {
|
|||
.sort((x) => x.timestamp);
|
||||
const lockMatches = locks.filter((x) => x.name.includes(runId));
|
||||
const includesRunLock = lockMatches.length > 0 && locks.indexOf(lockMatches[0]) === 0;
|
||||
cloud_runner_logger_1.default.log(`Checking has workspace lock, runId: ${runId} workspace: ${workspace} success: ${includesRunLock} \n Num of LockMatches for Run Agent: ${lockMatches.length} Num of Locks ${locks.length} orderedLockIndex for Run Agent ${locks.indexOf(lockMatches[0])}`);
|
||||
cloud_runner_logger_1.default.log(`Checking has workspace lock, runId: ${runId} workspace: ${workspace} success: ${includesRunLock} \n- Num of LockMatches for Run Agent: ${lockMatches.length} Num of Locks ${locks.length} orderedLockIndex for Run Agent ${locks.indexOf(lockMatches[0])} \n \n`);
|
||||
return includesRunLock;
|
||||
});
|
||||
}
|
||||
|
|
@ -5328,7 +5212,7 @@ class SharedWorkspaceLocking {
|
|||
ordered.sort((x) => x.timestamp);
|
||||
const matches = ordered.filter((x) => x.name.includes(workspace));
|
||||
const isWorkspaceBelowMax = matches.length > 0 && ordered.indexOf(matches[0]) < buildParametersContext.maxRetainedWorkspaces;
|
||||
cloud_runner_logger_1.default.log(`isWorkspaceBelowMax ${isWorkspaceBelowMax} = ${matches} > 0 && ${ordered.indexOf(matches[0])} < ${buildParametersContext.maxRetainedWorkspaces}`);
|
||||
cloud_runner_logger_1.default.log(`isWorkspaceBelowMax ${isWorkspaceBelowMax} = ${matches.length} > 0 && ${ordered.indexOf(matches[0])} < ${buildParametersContext.maxRetainedWorkspaces}`);
|
||||
return isWorkspaceBelowMax;
|
||||
});
|
||||
}
|
||||
|
|
@ -5369,7 +5253,7 @@ class SharedWorkspaceLocking {
|
|||
fs.rmSync(file);
|
||||
const workspaces = yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${buildParametersContext.cacheKey}/`);
|
||||
cloud_runner_logger_1.default.log(`All workspaces ${workspaces}`);
|
||||
if (yield SharedWorkspaceLocking.IsWorkspaceBelowMax(workspace, buildParametersContext)) {
|
||||
if (!(yield SharedWorkspaceLocking.IsWorkspaceBelowMax(workspace, buildParametersContext))) {
|
||||
cloud_runner_logger_1.default.log(`Workspace is below max ${workspaces} ${buildParametersContext.maxRetainedWorkspaces}`);
|
||||
yield SharedWorkspaceLocking.CleanupWorkspace(workspace, buildParametersContext);
|
||||
return false;
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -5,7 +5,6 @@ import { ActionYamlReader } from '../input-readers/action-yaml';
|
|||
import CloudRunnerLogger from '../cloud-runner/services/cloud-runner-logger';
|
||||
import CloudRunnerQueryOverride from '../cloud-runner/services/cloud-runner-query-override';
|
||||
import { CliFunction, CliFunctionsRepository } from './cli-functions-repository';
|
||||
import { AwsCliCommands } from '../cloud-runner/providers/aws/commands/aws-cli-commands';
|
||||
import { Caching } from '../cloud-runner/remote-client/caching';
|
||||
import { LfsHashing } from '../cloud-runner/services/lfs-hashing';
|
||||
import { RemoteClient } from '../cloud-runner/remote-client';
|
||||
|
|
@ -32,10 +31,9 @@ export class Cli {
|
|||
}
|
||||
|
||||
public static InitCliMode() {
|
||||
CliFunctionsRepository.PushCliFunctionSource(AwsCliCommands);
|
||||
CliFunctionsRepository.PushCliFunctionSource(RemoteClient);
|
||||
CliFunctionsRepository.PushCliFunctionSource(Caching);
|
||||
CliFunctionsRepository.PushCliFunctionSource(LfsHashing);
|
||||
CliFunctionsRepository.PushCliFunctionSource(RemoteClient);
|
||||
const program = new Command();
|
||||
program.version('0.0.1');
|
||||
|
||||
|
|
@ -103,7 +101,7 @@ export class Cli {
|
|||
core.info(`\n`);
|
||||
}
|
||||
|
||||
@CliFunction(`cli`, `runs a cloud runner build`)
|
||||
@CliFunction(`cli-build`, `runs a cloud runner build`)
|
||||
public static async CLIBuild(): Promise<string> {
|
||||
const buildParameter = await BuildParameters.create();
|
||||
const baseImage = new ImageTag(buildParameter);
|
||||
|
|
@ -126,7 +124,7 @@ export class Cli {
|
|||
|
||||
await CloudRunner.setup(buildParameter);
|
||||
|
||||
return await CloudRunner.Provider.listResources();
|
||||
return (await CloudRunner.Provider.listResources()).map((x) => x.Name);
|
||||
}
|
||||
|
||||
@CliFunction(`list-worfklow`, `lists running workflows`)
|
||||
|
|
@ -135,7 +133,7 @@ export class Cli {
|
|||
|
||||
await CloudRunner.setup(buildParameter);
|
||||
|
||||
return await CloudRunner.Provider.listWorkflow();
|
||||
return (await CloudRunner.Provider.listWorkflow()).map((x) => x.Name);
|
||||
}
|
||||
|
||||
@CliFunction(`watch`, `follows logs of a running workflow`)
|
||||
|
|
@ -153,7 +151,7 @@ export class Cli {
|
|||
|
||||
await CloudRunner.setup(buildParameter);
|
||||
|
||||
return await CloudRunner.Provider.inspectResources();
|
||||
return (await CloudRunner.Provider.inspectResources()).Name;
|
||||
}
|
||||
|
||||
@CliFunction(`inspect-workflow`, `inspects details of a running workflow`)
|
||||
|
|
@ -162,7 +160,7 @@ export class Cli {
|
|||
|
||||
await CloudRunner.setup(buildParameter);
|
||||
|
||||
return await CloudRunner.Provider.inspectWorkflow();
|
||||
return (await CloudRunner.Provider.inspectWorkflow()).Name;
|
||||
}
|
||||
|
||||
@CliFunction(`remote-cli-post-build`, `runs a cloud runner build`)
|
||||
|
|
|
|||
|
|
@ -1,62 +0,0 @@
|
|||
import { CliFunction } from '../../../../cli/cli-functions-repository';
|
||||
import { TaskService } from '../services/task-service';
|
||||
import { GarbageCollectionService } from '../services/garbage-collection-service';
|
||||
import { TertiaryResourcesService } from '../services/tertiary-resources-service';
|
||||
export class AwsCliCommands {
|
||||
@CliFunction(`aws-list-all`, `List all resources`)
|
||||
public static async awsListAll() {
|
||||
await AwsCliCommands.awsListStacks();
|
||||
await AwsCliCommands.awsListTasks();
|
||||
await AwsCliCommands.awsListLogGroups();
|
||||
}
|
||||
@CliFunction(`aws-garbage-collect-list`, `garbage collect aws resources not in use !WIP!`)
|
||||
static async garbageCollectAws() {
|
||||
await GarbageCollectionService.cleanup(false);
|
||||
}
|
||||
@CliFunction(`aws-garbage-collect-all`, `garbage collect aws resources regardless of whether they are in use`)
|
||||
static async garbageCollectAwsAll() {
|
||||
await GarbageCollectionService.cleanup(true);
|
||||
}
|
||||
@CliFunction(
|
||||
`aws-garbage-collect-all-1d-older`,
|
||||
`garbage collect aws resources created more than 1d ago (ignore if they are in use)`,
|
||||
)
|
||||
static async garbageCollectAwsAllOlderThanOneDay() {
|
||||
await GarbageCollectionService.cleanup(true, true);
|
||||
}
|
||||
|
||||
@CliFunction(`aws-list-stacks`, `List stacks`)
|
||||
static async awsListStacks(perResultCallback: any = false) {
|
||||
return TaskService.awsListStacks(perResultCallback);
|
||||
}
|
||||
@CliFunction(`aws-list-tasks`, `List tasks`)
|
||||
static async awsListTasks(perResultCallback: any = false) {
|
||||
return TaskService.awsListJobs(perResultCallback);
|
||||
}
|
||||
|
||||
@CliFunction(`aws-list-log-groups`, `List tasks`)
|
||||
static async awsListLogGroups(perResultCallback: any = false) {
|
||||
await TertiaryResourcesService.AwsListLogGroups(perResultCallback);
|
||||
}
|
||||
|
||||
@CliFunction(`aws-list-jobs`, `List tasks`)
|
||||
public static async awsListJobs(perResultCallback: any = false) {
|
||||
return TaskService.awsListJobs(perResultCallback);
|
||||
}
|
||||
|
||||
@CliFunction(`list-tasks`, `List tasks`)
|
||||
static async listTasks(perResultCallback: any = false) {
|
||||
return TaskService.awsListJobs(perResultCallback);
|
||||
}
|
||||
|
||||
@CliFunction(`watch`, `List tasks`)
|
||||
static async watchTasks() {
|
||||
return TaskService.watch();
|
||||
}
|
||||
|
||||
@CliFunction(`describe-resource`, `desribe tasks`)
|
||||
static async describe(options) {
|
||||
// return CloudRunner.Provider.inspect();
|
||||
return await TaskService.awsDescribeJob(options.select);
|
||||
}
|
||||
}
|
||||
|
|
@ -9,10 +9,11 @@ import CloudRunnerLogger from '../../services/cloud-runner-logger';
|
|||
import { AWSJobStack as AwsJobStack } from './aws-job-stack';
|
||||
import { AWSBaseStack as AwsBaseStack } from './aws-base-stack';
|
||||
import { Input } from '../../..';
|
||||
import { AwsCliCommands } from './commands/aws-cli-commands';
|
||||
import { TertiaryResourcesService } from './services/tertiary-resources-service';
|
||||
import { TaskService } from './services/task-service';
|
||||
import { GarbageCollectionService } from './services/garbage-collection-service';
|
||||
import { ProviderResource } from '../provider-resource';
|
||||
import { ProviderWorkflow } from '../provider-workflow';
|
||||
import { TaskService } from './services/task-service';
|
||||
|
||||
class AWSBuildEnvironment implements ProviderInterface {
|
||||
private baseStackName: string;
|
||||
|
|
@ -20,28 +21,37 @@ class AWSBuildEnvironment implements ProviderInterface {
|
|||
constructor(buildParameters: BuildParameters) {
|
||||
this.baseStackName = buildParameters.awsBaseStackName;
|
||||
}
|
||||
listWorkflow(): Promise<string[]> {
|
||||
async listResources(): Promise<ProviderResource[]> {
|
||||
await TaskService.awsListJobs();
|
||||
await TertiaryResourcesService.awsListLogGroups();
|
||||
await TaskService.awsListTasks();
|
||||
await TaskService.awsListStacks();
|
||||
|
||||
return [];
|
||||
}
|
||||
async inspectResources(): Promise<ProviderResource> {
|
||||
await new Promise((result) => result);
|
||||
|
||||
return {
|
||||
Name: await TaskService.awsDescribeJob(``),
|
||||
};
|
||||
}
|
||||
listWorkflow(): Promise<ProviderWorkflow[]> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectWorkflow(): Promise<string> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
async inspectResources(): Promise<string> {
|
||||
return await TaskService.awsDescribeJob('');
|
||||
async inspectWorkflow(): Promise<ProviderWorkflow> {
|
||||
await new Promise((result) => result);
|
||||
|
||||
return {
|
||||
Name: await TaskService.awsDescribeJob(``),
|
||||
};
|
||||
}
|
||||
async watchWorkflow(): Promise<string> {
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const { output, shouldCleanup } = await AwsTaskRunner.streamLogsUntilTaskStops(
|
||||
process.env.cluster || ``,
|
||||
process.env.taskArn || ``,
|
||||
process.env.streamName || ``,
|
||||
);
|
||||
|
||||
return output;
|
||||
return await TaskService.watch();
|
||||
}
|
||||
|
||||
async listOtherResources(): Promise<string> {
|
||||
await TertiaryResourcesService.AwsListLogGroups();
|
||||
await TertiaryResourcesService.awsListLogGroups();
|
||||
|
||||
return '';
|
||||
}
|
||||
|
|
@ -61,14 +71,6 @@ class AWSBuildEnvironment implements ProviderInterface {
|
|||
return ``;
|
||||
}
|
||||
|
||||
async listResources() {
|
||||
await AwsCliCommands.awsListStacks();
|
||||
await AwsCliCommands.awsListTasks();
|
||||
await AwsCliCommands.awsListLogGroups();
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
async cleanupWorkflow(
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
buildGuid: string,
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@ import AWS from 'aws-sdk';
|
|||
import { CliFunction } from '../../../../cli/cli-functions-repository';
|
||||
import Input from '../../../../input';
|
||||
import CloudRunnerLogger from '../../../services/cloud-runner-logger';
|
||||
import { AwsCliCommands } from '../commands/aws-cli-commands';
|
||||
import { TaskService } from './task-service';
|
||||
import { TertiaryResourcesService } from './tertiary-resources-service';
|
||||
|
||||
export class GarbageCollectionService {
|
||||
@CliFunction(`aws-garbage-collect-list`, `garbage collect aws resources not in use !WIP!`)
|
||||
|
|
@ -32,14 +33,14 @@ export class GarbageCollectionService {
|
|||
const ecs = new AWS.ECS();
|
||||
const cwl = new AWS.CloudWatchLogs();
|
||||
const taskDefinitionsInUse = new Array();
|
||||
await AwsCliCommands.awsListTasks(async (taskElement, element) => {
|
||||
await TaskService.awsListTasks(async (taskElement, element) => {
|
||||
taskDefinitionsInUse.push(taskElement.taskDefinitionArn);
|
||||
if (deleteResources && (!OneDayOlderOnly || GarbageCollectionService.isOlderThan1day(taskElement.CreatedAt))) {
|
||||
CloudRunnerLogger.log(`Stopping task ${taskElement.containers?.[0].name}`);
|
||||
await ecs.stopTask({ task: taskElement.taskArn || '', cluster: element }).promise();
|
||||
}
|
||||
});
|
||||
await AwsCliCommands.awsListStacks(async (element) => {
|
||||
await TaskService.awsListStacks(async (element) => {
|
||||
if (
|
||||
(await CF.describeStackResources({ StackName: element.StackName }).promise()).StackResources?.some(
|
||||
(x) => x.ResourceType === 'AWS::ECS::TaskDefinition' && taskDefinitionsInUse.includes(x.PhysicalResourceId),
|
||||
|
|
@ -60,7 +61,7 @@ export class GarbageCollectionService {
|
|||
await CF.deleteStack(deleteStackInput).promise();
|
||||
}
|
||||
});
|
||||
await AwsCliCommands.awsListLogGroups(async (element) => {
|
||||
await TertiaryResourcesService.awsListLogGroups(async (element) => {
|
||||
if (
|
||||
deleteResources &&
|
||||
(!OneDayOlderOnly || GarbageCollectionService.isOlderThan1day(new Date(element.createdAt)))
|
||||
|
|
|
|||
|
|
@ -2,10 +2,18 @@ import AWS from 'aws-sdk';
|
|||
import Input from '../../../../input';
|
||||
import CloudRunnerLogger from '../../../services/cloud-runner-logger';
|
||||
import { BaseStackFormation } from '../cloud-formations/base-stack-formation';
|
||||
import AwsTaskRunner from '../aws-task-runner';
|
||||
|
||||
export class TaskService {
|
||||
static watch() {
|
||||
throw new Error('Method not implemented.');
|
||||
static async watch() {
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const { output, shouldCleanup } = await AwsTaskRunner.streamLogsUntilTaskStops(
|
||||
process.env.cluster || ``,
|
||||
process.env.taskArn || ``,
|
||||
process.env.streamName || ``,
|
||||
);
|
||||
|
||||
return output;
|
||||
}
|
||||
public static async awsListStacks(perResultCallback: any = false) {
|
||||
process.env.AWS_REGION = Input.region;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import Input from '../../../../input';
|
|||
import CloudRunnerLogger from '../../../services/cloud-runner-logger';
|
||||
|
||||
export class TertiaryResourcesService {
|
||||
public static async AwsListLogGroups(perResultCallback: any = false) {
|
||||
public static async awsListLogGroups(perResultCallback: any = false) {
|
||||
process.env.AWS_REGION = Input.region;
|
||||
const ecs = new AWS.CloudWatchLogs();
|
||||
let logStreamInput: AWS.CloudWatchLogs.DescribeLogGroupsRequest = {
|
||||
|
|
|
|||
|
|
@ -7,25 +7,27 @@ import Docker from '../../../docker';
|
|||
import { Action } from '../../..';
|
||||
import { writeFileSync } from 'fs';
|
||||
import CloudRunner from '../../cloud-runner';
|
||||
import { ProviderResource } from '../provider-resource';
|
||||
import { ProviderWorkflow } from '../provider-workflow';
|
||||
|
||||
class LocalDockerCloudRunner implements ProviderInterface {
|
||||
public buildParameters: BuildParameters | undefined;
|
||||
|
||||
listWorkflow(): Promise<string[]> {
|
||||
listResources(): Promise<ProviderResource[]> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectWorkflow(): Promise<string> {
|
||||
inspectResources(): Promise<ProviderResource> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectResources(): Promise<string> {
|
||||
listWorkflow(): Promise<ProviderWorkflow[]> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectWorkflow(): Promise<ProviderWorkflow> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
watchWorkflow(): Promise<string> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
listResources(): Promise<string[]> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
garbageCollect(
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
filter: string,
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ import KubernetesServiceAccount from './kubernetes-service-account';
|
|||
import CloudRunnerLogger from '../../services/cloud-runner-logger';
|
||||
import { CoreV1Api } from '@kubernetes/client-node';
|
||||
import CloudRunner from '../../cloud-runner';
|
||||
import { ProviderResource } from '../provider-resource';
|
||||
import { ProviderWorkflow } from '../provider-workflow';
|
||||
|
||||
class Kubernetes implements ProviderInterface {
|
||||
private kubeConfig: k8s.KubeConfig;
|
||||
|
|
@ -39,21 +41,21 @@ class Kubernetes implements ProviderInterface {
|
|||
this.namespace = 'default';
|
||||
this.buildParameters = buildParameters;
|
||||
}
|
||||
listWorkflow(): Promise<string[]> {
|
||||
listResources(): Promise<ProviderResource[]> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectWorkflow(): Promise<string> {
|
||||
inspectResources(): Promise<ProviderResource> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectResources(): Promise<string> {
|
||||
listWorkflow(): Promise<ProviderWorkflow[]> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectWorkflow(): Promise<ProviderWorkflow> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
watchWorkflow(): Promise<string> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
listResources(): Promise<string[]> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
garbageCollect(
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
filter: string,
|
||||
|
|
|
|||
|
|
@ -4,23 +4,25 @@ import CloudRunnerEnvironmentVariable from '../../services/cloud-runner-environm
|
|||
import CloudRunnerLogger from '../../services/cloud-runner-logger';
|
||||
import { ProviderInterface } from '../provider-interface';
|
||||
import CloudRunnerSecret from '../../services/cloud-runner-secret';
|
||||
import { ProviderResource } from '../provider-resource';
|
||||
import { ProviderWorkflow } from '../provider-workflow';
|
||||
|
||||
class LocalCloudRunner implements ProviderInterface {
|
||||
listWorkflow(): Promise<string[]> {
|
||||
listResources(): Promise<ProviderResource[]> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectWorkflow(): Promise<string> {
|
||||
inspectResources(): Promise<ProviderResource> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectResources(): Promise<string> {
|
||||
listWorkflow(): Promise<ProviderWorkflow[]> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectWorkflow(): Promise<ProviderWorkflow> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
watchWorkflow(): Promise<string> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
listResources(): Promise<string[]> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
garbageCollect(
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
filter: string,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
import BuildParameters from '../../build-parameters';
|
||||
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
|
||||
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||
import { ProviderResource } from './provider-resource';
|
||||
import { ProviderWorkflow } from './provider-workflow';
|
||||
|
||||
export interface ProviderInterface {
|
||||
cleanupWorkflow(
|
||||
|
|
@ -51,9 +53,9 @@ export interface ProviderInterface {
|
|||
// eslint-disable-next-line no-unused-vars
|
||||
baseDependencies: boolean,
|
||||
): Promise<string>;
|
||||
listResources(): Promise<string[]>;
|
||||
inspectResources(): Promise<string>;
|
||||
listWorkflow(): Promise<string[]>;
|
||||
inspectWorkflow(): Promise<string>;
|
||||
listResources(): Promise<ProviderResource[]>;
|
||||
inspectResources(): Promise<ProviderResource>;
|
||||
listWorkflow(): Promise<ProviderWorkflow[]>;
|
||||
inspectWorkflow(): Promise<ProviderWorkflow>;
|
||||
watchWorkflow(): Promise<string>;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
export class ProviderResource {
|
||||
public Name!: string;
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
export class ProviderWorkflow {
|
||||
public Name!: string;
|
||||
}
|
||||
|
|
@ -3,23 +3,25 @@ import CloudRunnerEnvironmentVariable from '../../services/cloud-runner-environm
|
|||
import CloudRunnerLogger from '../../services/cloud-runner-logger';
|
||||
import { ProviderInterface } from '../provider-interface';
|
||||
import CloudRunnerSecret from '../../services/cloud-runner-secret';
|
||||
import { ProviderResource } from '../provider-resource';
|
||||
import { ProviderWorkflow } from '../provider-workflow';
|
||||
|
||||
class TestCloudRunner implements ProviderInterface {
|
||||
listWorkflow(): Promise<string[]> {
|
||||
listResources(): Promise<ProviderResource[]> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectWorkflow(): Promise<string> {
|
||||
inspectResources(): Promise<ProviderResource> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectResources(): Promise<string> {
|
||||
listWorkflow(): Promise<ProviderWorkflow[]> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
inspectWorkflow(): Promise<ProviderWorkflow> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
watchWorkflow(): Promise<string> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
listResources(): Promise<string[]> {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
garbageCollect(
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
filter: string,
|
||||
|
|
|
|||
Loading…
Reference in New Issue