return this.addCondition(field, "=", value, "", "", resourcePrefix);
}
+ public addDistinct(field: string, value?: string | boolean | null, resourcePrefix?: string) {
+ return this.addCondition(field, "!=", value, "", "", resourcePrefix);
+ }
+
public addLike(field: string, value?: string, resourcePrefix?: string) {
return this.addCondition(field, "like", value, "%", "%", resourcePrefix);
}
import { FilterBuilder } from '~/services/api/filter-builder';
import { subprocessPanelActions } from './subprocess-panel-actions';
import { DataColumns } from '~/components/data-table/data-table';
+import { ProcessStatusFilter } from '../resource-type-filters/resource-type-filters';
export class SubprocessMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
// Get all the subprocess' container requests and containers.
const fb = new FilterBuilder().addEqual('requesting_container_uuid', parentContainerRequest.containerUuid);
- if (activeStatusFilter !== undefined && activeStatusFilter !== 'All') {
- fb.addEqual('container.state', activeStatusFilter);
+ switch (activeStatusFilter) {
+ case ProcessStatusFilter.COMPLETED: {
+ fb.addEqual('container.state', 'Complete');
+ fb.addEqual('container.exit_code', '0');
+ break;
+ }
+ case ProcessStatusFilter.FAILED: {
+ fb.addEqual('container.state', 'Complete');
+ fb.addDistinct('container.exit_code', '0');
+ break;
+ }
+ case ProcessStatusFilter.CANCELLED:
+ case ProcessStatusFilter.FAILED:
+ case ProcessStatusFilter.LOCKED:
+ case ProcessStatusFilter.QUEUED:
+ case ProcessStatusFilter.RUNNING: {
+ fb.addEqual('container.state', activeStatusFilter);
+ break;
+ }
}
const containerRequests = await this.services.containerRequestService.list(
{ ...getParams(dataExplorer), filters: fb.getFilters() });