Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new cmd to get runtime env images #822

Open
wants to merge 17 commits into
base: master
Choose a base branch
from
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
const _ = require('lodash');
const Command = require('../../Command');
const RuntimeEnvironmentsImages = require('../../../../logic/entities/RuntimeEnvironmentBaseImages');
const Output = require('../../../../output/Output');
require('../../defaults');
const CFError = require('cf-errors'); // eslint-disable-line
const getRoot = require('../root/get.cmd');
const { sdk } = require('../../../../logic');
require('../../../../logic/entities/Environment');

const command = new Command({
command: 'runtime-environment-base-images [name]',
aliases: ['re-base-images'],
parent: getRoot,
description: 'Get a runtime environment base images list that required by this runtime',
webDocs: {
category: 'Runtime-Environments-Base-Images',
title: 'Get Runtime-Environment-Base-Images',
},
builder: (yargs) => yargs
.positional('name', {
describe: 'Runtime environment name',
}),
handler: async (argv) => {
const { name } = argv;
if (!name) {
throw new CFError('Runtime Name must be provided');
}
const runtimeEnvImages = await sdk.runtimeEnvs.getBaseImages({
name,
});
Output.print(_.map(runtimeEnvImages, RuntimeEnvironmentsImages.fromResponse));
},
});


module.exports = command;
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
const getCmd = require('./get.cmd').toCommand();

jest.mock('../../../../logic/entities/RuntimeEnvironments');

const request = require('requestretry');

const DEFAULT_RESPONSE = request.__defaultResponse();

describe('runtime environment commands', () => {
beforeEach(async () => {
request.__reset();
request.mockClear();
await configureSdk(); // eslint-disable-line
});

describe('get', () => {
it('should handle getting base images', async () => {
const argv = { name: 'some name' };
await getCmd.handler(argv);
await verifyResponsesReturned([DEFAULT_RESPONSE]); // eslint-disable-line
});

it('should throw an error for missing name', async () => {
try {
const argv = {};
await getCmd.handler(argv);
} catch (err) {
expect(err.message).toEqual('Runtime Name must be provided');
}
});
});
});
17 changes: 17 additions & 0 deletions lib/logic/entities/RuntimeEnvironmentBaseImages.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const Entity = require('./Entity');

class RuntimeEnvironmentBaseImages extends Entity {
constructor(data) {
super();
this.entityType = 'RuntimeEnvironmentBaseImages';
this.component = data.component;
this.image = data.image;
this.defaultColumns = ['component', 'image'];
this.wideColumns = this.defaultColumns.concat([]);
}

static fromResponse(response) {
return new RuntimeEnvironmentBaseImages(response);
}
}
module.exports = RuntimeEnvironmentBaseImages;
41 changes: 41 additions & 0 deletions openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -7436,6 +7436,47 @@
"x-sdk-interface": "runtimeEnvs.get"
}
},
"/runtime-environments/{name}/base-images": {
"get": {
"responses": {
"200": {
"description": "ok"
},
"404": {
"description": "Runtime Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/responses/Json"
},
"example": {
"status": 404,
"code": "101",
"name": "NOT_FOUND_ERROR",
"message": "Runtime Environment: \"runtimeEnvironmentName\" not found"
}
}
}
}
},
"tags": [
"runtimeEnvs"
],
"operationId": "runtime-envs-get-base-images",
"parameters": [
{
"in": "path",
"name": "name",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Get images",
"x-sdk-interface": "runtimeEnvs.getBaseImages"
}
},
"/runtime/testit": {
"post": {
"responses": {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "codefresh",
"version": "0.84.3",
"version": "0.84.5",
"description": "Codefresh command line utility",
"main": "index.js",
"preferGlobal": true,
Expand Down