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.readCredentials = this.readCredentials.bind(this);
this.readAccessList = this.readAccessList.bind(this);
this.generateLabel = this.generateLabel.bind(this);
}
launch(id, data) {
@ -24,8 +23,11 @@ class JobTemplates extends InstanceGroupsMixin(NotificationsMixin(Base)) {
return this.http.get(`${this.baseUrl}${id}/launch/`);
}
associateLabel(id, label) {
return this.http.post(`${this.baseUrl}${id}/labels/`, label);
associateLabel(id, label, orgId) {
return this.http.post(`${this.baseUrl}${id}/labels/`, {
name: label.name,
organization: orgId,
});
}
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) {
return this.http.get(`${this.baseUrl}${id}/credentials/`, { params });
return this.http.get(`${this.baseUrl}${id}/credentials/`, {
params,
});
}
associateCredentials(id, credentialId) {
@ -60,7 +57,9 @@ class JobTemplates extends InstanceGroupsMixin(NotificationsMixin(Base)) {
}
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 {
useState,
useEffect
} from 'react';
import { useState, useEffect } from 'react';
/*
Hook for using PatternFly's <Select> component when a pre-existing value
@ -24,7 +21,6 @@ export default function useSyncedSelectValue(value, onChange) {
}, [value, options]);
const onSelect = (event, item) => {
if (selections.includes(item)) {
onChange(selections.filter(i => i !== item));
} else {

View File

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

View File

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

View File

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