mirror of https://github.com/rancher/ui.git
Use array for ingress rule path
https://github.com/rancher/rancher/issues/17529
This commit is contained in:
parent
2ac136533c
commit
d59da85e45
|
|
@ -44,7 +44,7 @@ export default Component.extend({
|
||||||
if (get(this, 'isDefault')) {
|
if (get(this, 'isDefault')) {
|
||||||
this.setDefaultBackend();
|
this.setDefaultBackend();
|
||||||
} else {
|
} else {
|
||||||
this.setPaths();
|
set(this, 'rule.paths', get(this, 'pathArray'));
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|
@ -69,18 +69,16 @@ export default Component.extend({
|
||||||
|
|
||||||
initPathArray() {
|
initPathArray() {
|
||||||
const pathArray = [];
|
const pathArray = [];
|
||||||
const paths = get(this, 'rule.paths');
|
const paths = get(this, 'rule.paths') || [];
|
||||||
|
|
||||||
Object.keys(paths).forEach((p) => {
|
|
||||||
const path = paths[p];
|
|
||||||
|
|
||||||
|
paths.forEach((path) => {
|
||||||
if (get(path, 'serviceId')) {
|
if (get(path, 'serviceId')) {
|
||||||
pathArray.pushObject(get(this, 'store').createRecord({
|
pathArray.pushObject(get(this, 'store').createRecord({
|
||||||
type: 'httpingresspath',
|
type: 'httpingresspath',
|
||||||
backendType: 'service',
|
backendType: 'service',
|
||||||
targetPort: `${ get(path, 'targetPort') || '' }`,
|
targetPort: `${ get(path, 'targetPort') || '' }`,
|
||||||
serviceId: get(path, 'serviceId').replace('/', ':'),
|
serviceId: get(path, 'serviceId').replace('/', ':'),
|
||||||
path: p,
|
path: get(path, 'path'),
|
||||||
}));
|
}));
|
||||||
} else if (get(path, 'workloadIds')) {
|
} else if (get(path, 'workloadIds')) {
|
||||||
get(path, 'workloadIds').forEach((workload) => {
|
get(path, 'workloadIds').forEach((workload) => {
|
||||||
|
|
@ -88,7 +86,7 @@ export default Component.extend({
|
||||||
backendType: 'workload',
|
backendType: 'workload',
|
||||||
targetPort: get(path, 'targetPort'),
|
targetPort: get(path, 'targetPort'),
|
||||||
serviceId: workload,
|
serviceId: workload,
|
||||||
path: p,
|
path: get(path, 'path'),
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -114,43 +112,4 @@ export default Component.extend({
|
||||||
});
|
});
|
||||||
set(this, 'ingress.defaultBackend', defaultBackend);
|
set(this, 'ingress.defaultBackend', defaultBackend);
|
||||||
},
|
},
|
||||||
|
|
||||||
setPaths() {
|
|
||||||
const pathArray = get(this, 'pathArray');
|
|
||||||
const paths = {};
|
|
||||||
|
|
||||||
pathArray.forEach((path) => {
|
|
||||||
const backendType = get(path, 'backendType');
|
|
||||||
const pathValue = get(path, 'path');
|
|
||||||
const serviceId = get(path, 'serviceId');
|
|
||||||
const targetPort = get(path, 'targetPort');
|
|
||||||
|
|
||||||
if (backendType === 'service') {
|
|
||||||
const found = paths[pathValue];
|
|
||||||
|
|
||||||
if (found) {
|
|
||||||
found.serviceId = serviceId;
|
|
||||||
found.targetPort = targetPort;
|
|
||||||
} else {
|
|
||||||
paths[pathValue] = {
|
|
||||||
serviceId,
|
|
||||||
targetPort,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
} else if (backendType === 'workload') {
|
|
||||||
const found = paths[pathValue];
|
|
||||||
|
|
||||||
if (found && found.workloadIds) {
|
|
||||||
found.workloadIds.pushObject(serviceId);
|
|
||||||
found.targetPort = targetPort;
|
|
||||||
} else {
|
|
||||||
paths[pathValue] = {
|
|
||||||
workloadIds: [serviceId],
|
|
||||||
targetPort,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
set(this, 'rule.paths', paths);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue