Skip to content

Commit

Permalink
fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
raffis committed Nov 20, 2018
1 parent ca6bb7f commit 6a83884
Show file tree
Hide file tree
Showing 26 changed files with 313 additions and 50 deletions.
5 changes: 2 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"build": "npm run format && npm run prebuild",
"test": "jest --coverage",
"coveralls": "coveralls < coverage/lcov.info",
"pack": "npm run build && nexe --verbose -r ./node_modules/@gyselroth/tubee-sdk-node/swagger.yml -i build/main.js -o dist/tubeectl"
"pack": "npm run build && nexe --verbose -r ./node_modules/@gyselroth/tubee-sdk-node/swagger.yml -i build/main.js -o dist/tubectl"
},
"repository": {
"type": "git",
Expand All @@ -28,8 +28,7 @@
},
"homepage": "https://github.com/gyselroth/tubee-client-cli#readme",
"dependencies": {
"@gyselroth/tubee-sdk-node": "^0.0.16",
"@types/bluebird": "*",
"@gyselroth/tubee-sdk-node": "^0.0.17",
"@types/request": "^2.48.1",
"JSONStream": "^1.3.5",
"bluebird": "^3.5.3",
Expand Down
18 changes: 13 additions & 5 deletions src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,20 @@ Create.factory(root, client);
Sync.factory(root, client);

commandpost.exec(root, process.argv).catch(err => {
console.log(err.message + '\n');
if(err.response.body) {
console.log("%s: %s [code: %s]", err.response.body.error, err.response.body.message, err.response.body.code);
}

if(err.message) {
console.log(err.message + '\n');
}

if (err.params.params.option) {
console.log(err.params.params.option.command.helpText());
} else if (err.params.params.origin) {
console.log(err.params.params.origin.command.helpText());
if(err.params) {
if (err.params.params.option) {
console.log(err.params.params.option.command.helpText());
} else if (err.params.params.origin) {
console.log(err.params.params.origin.command.helpText());
}
}

process.exit(1);
Expand Down
4 changes: 3 additions & 1 deletion src/operations/create.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ import DataObjects from '../resources/data-objects/create';
import Endpoints from '../resources/endpoints/create';
import Jobs from '../resources/jobs/create';
import Workflows from '../resources/workflows/create';
import Secrets from '../resources/secrets/create';
import Users from '../resources/users/create';

const map = [AccessRoles, AccessRules, Mandators, DataTypes, DataObjects, Endpoints, Jobs, Workflows];
const map = [AccessRoles, AccessRules, Mandators, DataTypes, DataObjects, Endpoints, Jobs, Workflows, Secrets, Users];

export interface CreateOptions {
file: string;
Expand Down
4 changes: 3 additions & 1 deletion src/operations/delete.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ import DataObjects from '../resources/data-objects/delete';
import Endpoints from '../resources/endpoints/delete';
import Jobs from '../resources/jobs/delete';
import Workflows from '../resources/workflows/delete';
import Secrets from '../resources/secrets/delete';
import Users from '../resources/users/delete';

const map = [AccessRoles, AccessRules, Mandators, DataTypes, DataObjects, Endpoints, Jobs, Workflows];
const map = [AccessRoles, AccessRules, Mandators, DataTypes, DataObjects, Endpoints, Jobs, Workflows, Secrets, Users];

export interface DeleteOptions {}

Expand Down
5 changes: 4 additions & 1 deletion src/operations/edit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,11 @@ import DataObjects from '../resources/data-objects/edit';
import Endpoints from '../resources/endpoints/edit';
import Jobs from '../resources/jobs/edit';
import Workflows from '../resources/workflows/edit';
import Secrets from '../resources/secrets/edit';
import Users from '../resources/users/edit';

const map = [AccessRoles, AccessRules, Mandators, DataTypes, DataObjects, Endpoints, Jobs, Workflows];

const map = [AccessRoles, AccessRules, Mandators, DataTypes, DataObjects, Endpoints, Jobs, Workflows, Secrets, Users];

export interface EditOptions {
output: string;
Expand Down
5 changes: 5 additions & 0 deletions src/operations/get.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ import Jobs from '../resources/jobs/get';
import Processes from '../resources/processes/get';
import Logs from '../resources/logs/get';
import Workflows from '../resources/workflows/get';
import Secrets from '../resources/secrets/get';
import Users from '../resources/users/get';


const map = [
AccessRoles,
Expand All @@ -25,6 +28,8 @@ const map = [
Processes,
Logs,
Workflows,
Secrets,
Users
];

export interface GetOptions {
Expand Down
18 changes: 6 additions & 12 deletions src/operations/login.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,22 +68,16 @@ export default class Login {
var client = new api['DefaultApi'](server + '/api/v1');
var auth = new api.HttpBasicAuth();
auth.username = config.username || 'admin';
auth.password = config.password;
auth.password = opts.password[0];
client.setDefaultAuthentication(auth);
var result = await client.root();

try {
var result = await client.root();

if (result.response.body.name !== 'tubee') {
throw new Error('server is not a tubee server');
}

console.log('Successfully connected to server %s', server);
} catch (Error) {
console.log('Failed connect to server %s', server);
return;
if (result.response.body.name !== 'tubee') {
throw new Error('server is not a tubee server');
}

console.log('Successfully connected to server %s', server);

var writePath = optparse.parsedOpts.config[0] || configPath;
var configDir = path.dirname(writePath);
if (!fs.existsSync(configDir)) {
Expand Down
2 changes: 1 addition & 1 deletion src/resources/abstract.create.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ export default abstract class AbstractCreate extends AbstractOperation {
if(opts.fromTemplate[0] !== '') {
resourceType = opts.fromTemplate[0];
}
console.log(opts);
SwaggerParser.validate(specPath, async (err, api) => {
if (err) {
console.error('Failed to retrieve the resource specification', err);
Expand Down
4 changes: 1 addition & 3 deletions src/resources/abstract.edit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,6 @@ export default abstract class AbstractEdit extends AbstractOperation {
* Get resource data
*/
protected getData(resource) {
return {
data: resource.data,
};
return resource;
}
}
1 change: 0 additions & 1 deletion src/resources/abstract.get.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ export default abstract class AbstractGet extends AbstractOperation {
* Execute
*/
public async getObjects(response, opts, fields = ['Name', 'Version', 'Changed', 'Created'], callback = null) {
console.log(response.response.toJSON().body);
if (opts.diff[0]) {
return this.compare(response.response.toJSON().body, opts);
}
Expand Down
2 changes: 1 addition & 1 deletion src/resources/abstract.operation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export default abstract class AbstractOperation {
}
}
}

query = JSON.stringify(query);
}

Expand Down
2 changes: 0 additions & 2 deletions src/resources/abstract.sync.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,7 @@ export default abstract class AbstractSync {
resource.data.loadbalance = false;
resource.data.ignore = !opts.abortOnError;
resource.data.log_level = opts.level[0];
console.log(resource);
var result = await api.addProcess(resource);
console.log(result);
this.sync(result, opts);
}

Expand Down
4 changes: 1 addition & 3 deletions src/resources/data-objects/edit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@ export default class Edit extends AbstractEdit {
}

this.editObjects(response, opts, async (name, patch) => {
console.log(name, patch);
var r = await api.updateObject(args.mandator, args.datatype, name, patch);
console.log(r);
return await api.updateObject(args.mandator, args.datatype, name, patch);
});
}
}
2 changes: 1 addition & 1 deletion src/resources/endpoint-objects/get.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export default class Get extends AbstractGet {
args.endpoint,
...this.getQueryOptions(opts, args),
);
console.log(response);

this.getObjects(response, opts);
}
}
Expand Down
4 changes: 1 addition & 3 deletions src/resources/endpoints/create.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,7 @@ export default class Create extends AbstractCreate {
console.log(resource);
console.log('add');

var result = await api.addEndpoint(mandator, datatype, resource);
console.log(result);
return result;
return await api.addEndpoint(mandator, datatype, resource);
});
}
}
4 changes: 1 addition & 3 deletions src/resources/endpoints/edit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@ export default class Edit extends AbstractEdit {
}

this.editObjects(response, opts, async (name, patch) => {
console.log(patch);
var resul = await api.updateEndpoint(args.mandator, args.datatype, name, patch);
console.log(resul);
return await api.updateEndpoint(args.mandator, args.datatype, name, patch);
});
}
}
29 changes: 29 additions & 0 deletions src/resources/secrets/create.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { CreateOptions, CreateArgs } from '../../operations/create';
import AbstractCreate from '../abstract.create';

/**
* Create resources
*/
export default class Create extends AbstractCreate {
/**
* Apply cli options
*/
public applyOptions() {
return this.optparse
.subCommand<CreateOptions, CreateArgs>('secrets [name]')
.alias('ar')
.description('Create new secrets')
.action(this.execute.bind(this));
}

/**
* Execute
*/
public async execute(opts, args, rest) {
var api = await this.client.factory('Secrets', this.optparse.parent.parsedOpts);

this.createObjects('access-role', args, opts, async resource => {
return await api.addSecret(resource);
});
}
}
27 changes: 27 additions & 0 deletions src/resources/secrets/delete.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { DeleteOptions, DeleteArgs } from '../../operations/delete';
import AbstractDelete from '../abstract.delete';

/**
* Delete resources
*/
export default class Delete extends AbstractDelete {
/**
* Apply cli options
*/
public applyOptions() {
return this.optparse
.subCommand<DeleteOptions, DeleteArgs>('secrets <mandator> <name>')
.alias('ar')
.description('Delete secret')
.action(this.execute.bind(this));
}

/**
* Execute
*/
public async execute(opts, args, rest) {
var api = await this.client.factory('Secrets', this.optparse.parent.parsedOpts);
await api.deleteSecret(args.name);
console.log('resource %s has been deleted', args.name);
}
}
35 changes: 35 additions & 0 deletions src/resources/secrets/edit.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import { EditOptions, EditArgs } from '../../operations/edit';
import AbstractEdit from '../abstract.edit';

/**
* Edit resources
*/
export default class Edit extends AbstractEdit {
/**
* Apply cli options
*/
public applyOptions() {
return this.optparse
.subCommand<EditOptions, EditArgs>('secrets [name]')
.alias('ar')
.description('Edit secrets')
.action(this.execute.bind(this));
}

/**
* Execute
*/
public async execute(opts, args, rest) {
var api = await this.client.factory('Secrets', this.optparse.parent.parsedOpts);

if (args.name) {
var response = await api.getSecret(args.name, this.getFields(opts));
} else {
var response = await api.getSecrets(...this.getQueryOptions(opts, args));
}

this.editObjects(response, opts, async (name, patch) => {
return await api.updateSecret(name, patch);
});
}
}
43 changes: 43 additions & 0 deletions src/resources/secrets/get.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import { GetOptions, GetArgs } from '../../operations/get';
import AbstractGet from '../abstract.get';

/**
* * Edit resources
* */
export default class Get extends AbstractGet {
/**
* Apply cli options
*/
public applyOptions() {
return this.optparse
.subCommand<GetOptions, GetArgs>('secrets [name]')
.alias('ar')
.description('Get secrets')
.action(this.execute.bind(this));
}

/**
* Execute
*/
public async execute(opts, args, rest) {
var category = await this.client.factory('Secrets', this.optparse.parent.parsedOpts);

if (opts.watch) {
if (args.name) {
var request = category.watchSecrets(...this.getQueryOptions(opts, args));
this.watchObjects(request, opts);
} else {
var request = category.watchSecrets(...this.getQueryOptions(opts, args));
this.watchObjects(request, opts);
}
} else {
if (args.name) {
var response = await category.getSecret(args.name, ...this.getFields(opts));
this.getObjects(response, opts);
} else {
var response = await category.getSecrets(...this.getQueryOptions(opts, args));
this.getObjects(response, opts);
}
}
}
}
29 changes: 29 additions & 0 deletions src/resources/users/create.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { CreateOptions, CreateArgs } from '../../operations/create';
import AbstractCreate from '../abstract.create';

/**
* Create resources
*/
export default class Create extends AbstractCreate {
/**
* Apply cli options
*/
public applyOptions() {
return this.optparse
.subCommand<CreateOptions, CreateArgs>('users [name]')
.alias('ar')
.description('Create new users')
.action(this.execute.bind(this));
}

/**
* Execute
*/
public async execute(opts, args, rest) {
var api = await this.client.factory('Users', this.optparse.parent.parsedOpts);

this.createObjects('user', args, opts, async resource => {
return await api.addUser(resource);
});
}
}
Loading

0 comments on commit 6a83884

Please sign in to comment.