Removes unnecessary and dead code.

Generate Label was not being called so I removed it in favor of associate
label.  Plus: less code in JT Add and JT Edit and can remove a promise.
Minus: Now when we generate/associate a label we always send a long the orgId.
OrgId is not necessary when associating a label.
This commit is contained in:
Alex Corey
2020-01-27 09:50:49 -05:00
parent 570f549cf4
commit d69174b1a6
5 changed files with 22 additions and 40 deletions

View File

@@ -13,7 +13,6 @@ class JobTemplates extends InstanceGroupsMixin(NotificationsMixin(Base)) {
this.disassociateLabel = this.disassociateLabel.bind(this); this.disassociateLabel = this.disassociateLabel.bind(this);
this.readCredentials = this.readCredentials.bind(this); this.readCredentials = this.readCredentials.bind(this);
this.readAccessList = this.readAccessList.bind(this); this.readAccessList = this.readAccessList.bind(this);
this.generateLabel = this.generateLabel.bind(this);
} }
launch(id, data) { launch(id, data) {
@@ -24,8 +23,11 @@ class JobTemplates extends InstanceGroupsMixin(NotificationsMixin(Base)) {
return this.http.get(`${this.baseUrl}${id}/launch/`); return this.http.get(`${this.baseUrl}${id}/launch/`);
} }
associateLabel(id, label) { associateLabel(id, label, orgId) {
return this.http.post(`${this.baseUrl}${id}/labels/`, label); return this.http.post(`${this.baseUrl}${id}/labels/`, {
name: label.name,
organization: orgId,
});
} }
disassociateLabel(id, label) { disassociateLabel(id, label) {
@@ -35,15 +37,10 @@ class JobTemplates extends InstanceGroupsMixin(NotificationsMixin(Base)) {
}); });
} }
generateLabel(id, label, orgId) {
return this.http.post(`${this.baseUrl}${id}/labels/`, {
name: label.name,
organization: orgId,
});
}
readCredentials(id, params) { readCredentials(id, params) {
return this.http.get(`${this.baseUrl}${id}/credentials/`, { params }); return this.http.get(`${this.baseUrl}${id}/credentials/`, {
params,
});
} }
associateCredentials(id, credentialId) { associateCredentials(id, credentialId) {
@@ -60,7 +57,9 @@ class JobTemplates extends InstanceGroupsMixin(NotificationsMixin(Base)) {
} }
readAccessList(id, params) { readAccessList(id, params) {
return this.http.get(`${this.baseUrl}${id}/access_list/`, { params }); return this.http.get(`${this.baseUrl}${id}/access_list/`, {
params,
});
} }
} }

View File

@@ -1,7 +1,4 @@
import { import { useState, useEffect } from 'react';
useState,
useEffect
} from 'react';
/* /*
Hook for using PatternFly's <Select> component when a pre-existing value Hook for using PatternFly's <Select> component when a pre-existing value
@@ -24,7 +21,6 @@ export default function useSyncedSelectValue(value, onChange) {
}, [value, options]); }, [value, options]);
const onSelect = (event, item) => { const onSelect = (event, item) => {
if (selections.includes(item)) { if (selections.includes(item)) {
onChange(selections.filter(i => i !== item)); onChange(selections.filter(i => i !== item));
} else { } else {

View File

@@ -36,16 +36,10 @@ function JobTemplateAdd() {
} }
function submitLabels(templateId, labels = [], organizationId) { function submitLabels(templateId, labels = [], organizationId) {
const associationPromises = labels const associationPromises = labels.map(label =>
.filter(label => !label.isNew) JobTemplatesAPI.associateLabel(templateId, label, organizationId)
.map(label => JobTemplatesAPI.associateLabel(templateId, label)); );
const creationPromises = labels return Promise.all([...associationPromises]);
.filter(label => label.isNew)
.map(label =>
JobTemplatesAPI.generateLabel(templateId, label, organizationId)
);
return Promise.all([...associationPromises, ...creationPromises]);
} }
function submitInstanceGroups(templateId, addedGroups = []) { function submitInstanceGroups(templateId, addedGroups = []) {

View File

@@ -127,19 +127,13 @@ class JobTemplateEdit extends Component {
const disassociationPromises = removed.map(label => const disassociationPromises = removed.map(label =>
JobTemplatesAPI.disassociateLabel(template.id, label) JobTemplatesAPI.disassociateLabel(template.id, label)
); );
const associationPromises = added const associationPromises = added.map(label => {
.filter(label => !label.isNew) return JobTemplatesAPI.associateLabel(template.id, label, organizationId);
.map(label => JobTemplatesAPI.associateLabel(template.id, label)); });
const creationPromises = added
.filter(label => label.isNew)
.map(label =>
JobTemplatesAPI.generateLabel(template.id, label, organizationId)
);
const results = await Promise.all([ const results = await Promise.all([
...disassociationPromises, ...disassociationPromises,
...associationPromises, ...associationPromises,
...creationPromises,
]); ]);
return results; return results;
} }

View File

@@ -195,8 +195,8 @@ describe('<JobTemplateEdit />', () => {
inventory: 1, inventory: 1,
}; };
const labels = [ const labels = [
{ id: 3, name: 'Foo', isNew: true }, { id: 3, name: 'Foo' },
{ id: 4, name: 'Bar', isNew: true }, { id: 4, name: 'Bar' },
{ id: 5, name: 'Maple' }, { id: 5, name: 'Maple' },
{ id: 6, name: 'Tree' }, { id: 6, name: 'Tree' },
]; ];
@@ -230,8 +230,7 @@ describe('<JobTemplateEdit />', () => {
delete expected.type; delete expected.type;
expect(JobTemplatesAPI.update).toHaveBeenCalledWith(1, expected); expect(JobTemplatesAPI.update).toHaveBeenCalledWith(1, expected);
expect(JobTemplatesAPI.disassociateLabel).toHaveBeenCalledTimes(2); expect(JobTemplatesAPI.disassociateLabel).toHaveBeenCalledTimes(2);
expect(JobTemplatesAPI.associateLabel).toHaveBeenCalledTimes(2); expect(JobTemplatesAPI.associateLabel).toHaveBeenCalledTimes(4);
expect(JobTemplatesAPI.generateLabel).toHaveBeenCalledTimes(2);
}); });
test('should navigate to job template detail when cancel is clicked', async () => { test('should navigate to job template detail when cancel is clicked', async () => {