add pin bindings to usage index

pull/1638/head
gabrielburnworth 2019-12-20 15:48:56 -08:00
parent ac5cc41b95
commit 6a8bd52902
4 changed files with 23 additions and 2 deletions

View File

@ -28,13 +28,15 @@ describe("resourceUsageList", () => {
"Sequence.Sequence": { "Sequence.Sequence": {
"Regimen.9.9": { "Sequence.10.10": true, "Sequence.11.11": true } "Regimen.9.9": { "Sequence.10.10": true, "Sequence.11.11": true }
}, },
"Sequence.FbosConfig": { "Device.99.99": { "Sequence.12.12": true } } "Sequence.FbosConfig": { "Sequence.12.12": { "FbosConfig.13.13": true } },
"Sequence.PinBinding": { "Sequence.14.14": { "PinBinding.15.15": true } },
}; };
const actual = Object.keys(resourceUsageList(x)).sort(); const actual = Object.keys(resourceUsageList(x)).sort();
const expected = [ const expected = [
"FarmEvent.0.0", "FarmEvent.3.3", "FarmEvent.0.0", "FarmEvent.3.3",
"Regimen.6.6", "Regimen.9.9", "Regimen.6.6", "Regimen.9.9",
"Device.99.99", "Sequence.12.12",
"Sequence.14.14",
].sort(); ].sort();
expect(actual.length).toEqual(expected.length); expect(actual.length).toEqual(expected.length);
expected.map(y => expect(actual).toContain(y)); expected.map(y => expect(actual).toContain(y));

View File

@ -22,6 +22,7 @@ export type UsageKind =
| "Sequence.Regimen" | "Sequence.Regimen"
| "Sequence.FarmEvent" | "Sequence.FarmEvent"
| "Sequence.Sequence" | "Sequence.Sequence"
| "Sequence.PinBinding"
| "Sequence.FbosConfig"; | "Sequence.FbosConfig";
/** This variable ensures that `EVERY_USAGE_KIND` does not have typos and is /** This variable ensures that `EVERY_USAGE_KIND` does not have typos and is
@ -31,6 +32,7 @@ const values: Record<UsageKind, UsageKind> = {
"Sequence.Regimen": "Sequence.Regimen", "Sequence.Regimen": "Sequence.Regimen",
"Sequence.FarmEvent": "Sequence.FarmEvent", "Sequence.FarmEvent": "Sequence.FarmEvent",
"Sequence.Sequence": "Sequence.Sequence", "Sequence.Sequence": "Sequence.Sequence",
"Sequence.PinBinding": "Sequence.PinBinding",
"Sequence.FbosConfig": "Sequence.FbosConfig" "Sequence.FbosConfig": "Sequence.FbosConfig"
}; };

View File

@ -73,6 +73,7 @@ export const emptyState = (): RestResources => {
"Sequence.FarmEvent": {}, "Sequence.FarmEvent": {},
"Sequence.Regimen": {}, "Sequence.Regimen": {},
"Sequence.Sequence": {}, "Sequence.Sequence": {},
"Sequence.PinBinding": {},
"Sequence.FbosConfig": {} "Sequence.FbosConfig": {}
} }
} }

View File

@ -15,6 +15,7 @@ import {
} from "../sequences/locals_list/sanitize_nodes"; } from "../sequences/locals_list/sanitize_nodes";
import { import {
selectAllFarmEvents, selectAllFarmEvents,
selectAllPinBindings,
findByKindAndId, findByKindAndId,
selectAllLogs, selectAllLogs,
selectAllRegimens, selectAllRegimens,
@ -212,6 +213,21 @@ const AFTER_HOOKS: IndexerHook = {
i.inUse["Sequence.FbosConfig"] = {}; i.inUse["Sequence.FbosConfig"] = {};
} }
}, },
PinBinding: (i) => {
i.inUse["Sequence.PinBinding"] = {};
const tracker = i.inUse["Sequence.PinBinding"];
selectAllPinBindings(i)
.map(pinBinding => {
if (pinBinding.body.binding_type === "standard") {
const { sequence_id } = pinBinding.body;
const uuid = i.byKindAndId[joinKindAndId("Sequence", sequence_id)];
if (uuid) {
tracker[uuid] = tracker[uuid] || {};
tracker[uuid][pinBinding.uuid] = true;
}
}
});
},
FarmEvent: reindexAllFarmEventUsage, FarmEvent: reindexAllFarmEventUsage,
Sequence: reindexAllSequences, Sequence: reindexAllSequences,
Regimen: (i) => { Regimen: (i) => {