Skip to content

Commit

Permalink
Merge pull request #48 from theashyster/fix-edges-label
Browse files Browse the repository at this point in the history
Fix label on edges for different detail types
  • Loading branch information
ljacobsson authored Jan 26, 2024
2 parents dcab49f + 927f168 commit 4b249ec
Showing 1 changed file with 71 additions and 69 deletions.
140 changes: 71 additions & 69 deletions src/commands/diagram/diagram-builder.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,76 +83,78 @@ function createImage(resourceType) {
}

async function build(busName) {
initApis();
let nodes = [];
let edges = [];
let resourceTags = [];
let i = 0;
const spinner = new Spinner();
spinner.setSpinnerString("⠁⠁⠉⠙⠚⠒⠂⠂⠒⠲⠴⠤⠄⠄⠤⠠⠠⠤⠦⠖⠒⠐⠐⠒⠓⠋⠉⠈⠈");
spinner.start();
const rules = [];
for await (const ruleBatch of eventBridgeUtil.listRules(eventBridge, {
EventBusName: busName,
})) {
rules.push(...ruleBatch);
}
const count = rules.length;
for (const rule of rules) {
spinner.setSpinnerTitle(`${Math.ceil((i++ / count) * 100)}%`);
const targets = await eventBridge.send(new eb.ListTargetsByRuleCommand({ EventBusName: busName, Rule: rule.Name }));
for (const target of targets.Targets) {
const service = target.Arn.split(":")[2];
const targetName = target.Arn.split(":").slice(-1).pop();
const resourceApi = describeMap[service];
try {
if (resourceApi) {
const tags = await resourceApi.func(target);
const tagArray = resourceApi.tags(tags);
if (rule.EventPattern) {
const pattern = JSON.parse(rule.EventPattern);
for (const source of pattern.source) {
for (const detailType of pattern["detail-type"]) {
const schemaId = `${source}@${detailType}`;
if (nodes.filter((p) => p.id == source).length === 0) {
nodes.push({
id: source,
label: source,
group: source,
shape: "image",
image: createImage("source"),
value: 10,
sourceNode: true,
});
}
if (nodes.filter((p) => p.id == targetName).length === 0) {
nodes.push({
id: targetName,
label: targetName,
group: tagArray[cfnTag],
value: 10,
shape: "image",
image: createImage(service),
size: 250,
});
}
resourceTags.push({ targetName, tagArray });
edges.push({
from: source,
to: targetName,
label: pattern["detail-type"][0],
title: `${JSON.stringify(pattern, null, 2)}`,
rule: {
EventBusName: rule.EventBusName,
EventPattern: rule.EventPattern,
Target: target,
},
});
}
}
initApis();
let nodes = [];
let edges = [];
let resourceTags = [];
let i = 0;
const spinner = new Spinner();
spinner.setSpinnerString("⠁⠁⠉⠙⠚⠒⠂⠂⠒⠲⠴⠤⠄⠄⠤⠠⠠⠤⠦⠖⠒⠐⠐⠒⠓⠋⠉⠈⠈");
spinner.start();
const rules = [];
for await (const ruleBatch of eventBridgeUtil.listRules(eventBridge, {
EventBusName: busName,
})) {
rules.push(...ruleBatch);
}
const count = rules.length;
for (const rule of rules) {
spinner.setSpinnerTitle(`${Math.ceil((i++ / count) * 100)}%`);
const targets = await eventBridge
.listTargetsByRule({ EventBusName: busName, Rule: rule.Name })
.promise();
for (const target of targets.Targets) {
const service = target.Arn.split(":")[2];
const targetName = target.Arn.split(":").slice(-1).pop();
const resourceApi = describeMap[service];
try {
if (resourceApi) {
const tags = await resourceApi.func(target);
const tagArray = resourceApi.tags(tags);
if (rule.EventPattern) {
const pattern = JSON.parse(rule.EventPattern);
for (const source of pattern.source) {
for (const detailType of pattern["detail-type"]) {
const schemaId = `${source}@${detailType}`;
if (nodes.filter((p) => p.id == source).length === 0) {
nodes.push({
id: source,
label: source,
group: source,
shape: "image",
image: createImage("source"),
value: 10,
sourceNode: true,
});
}
if (nodes.filter((p) => p.id == targetName).length === 0) {
nodes.push({
id: targetName,
label: targetName,
group: tagArray[cfnTag],
value: 10,
shape: "image",
image: createImage(service),
size: 250,
});
}
resourceTags.push({ targetName, tagArray });
edges.push({
from: source,
to: targetName,
label: detailType,
title: `${JSON.stringify(pattern, null, 2)}`,
rule: {
EventBusName: rule.EventBusName,
EventPattern: rule.EventPattern,
Target: target,
},
});
}
}
}
}
}
} else {
}
} catch (err) {
// console.log(`Untagged resource ${target.Arn}`, err.message);
}
Expand Down

0 comments on commit 4b249ec

Please sign in to comment.