git push origin master
Merge branch 'harduino-siemonster_auths_recalc'
This commit is contained in:
@@ -1412,6 +1412,12 @@ func deleteWorkflow(resp http.ResponseWriter, request *http.Request) {
|
||||
log.Printf("Failed to increase total workflows: %s", err)
|
||||
}
|
||||
|
||||
// recalculate authenticators stats
|
||||
err = recalculateAppAuthentications()
|
||||
if err != nil {
|
||||
log.Printf("Authentications recalculation failed: %s", err)
|
||||
}
|
||||
|
||||
//memcacheName := fmt.Sprintf("%s_%s", user.Username, fileId)
|
||||
//memcache.Delete(ctx, memcacheName)
|
||||
//memcacheName = fmt.Sprintf("%s_workflows", user.Username)
|
||||
@@ -4301,10 +4307,78 @@ func loadSpecificWorkflows(resp http.ResponseWriter, request *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
// recalculate authenticators stats
|
||||
err = recalculateAppAuthentications()
|
||||
if err != nil {
|
||||
log.Printf("Authentications recalculation failed: %s", err)
|
||||
}
|
||||
|
||||
resp.WriteHeader(200)
|
||||
resp.Write([]byte(fmt.Sprintf(`{"success": true}`)))
|
||||
}
|
||||
|
||||
func recalculateAppAuthentications() error {
|
||||
// create context
|
||||
ctx := context.Background()
|
||||
|
||||
// form workflows list
|
||||
workflows, err := getAllWorkflows(ctx)
|
||||
if err != nil {
|
||||
log.Printf("Error: Failed getting workflows: %s", err)
|
||||
return err
|
||||
}
|
||||
|
||||
// form authenticators list
|
||||
auths, err := getAllWorkflowAppAuth(ctx)
|
||||
if err != nil {
|
||||
log.Printf("Error: Failed getting auths: %s", err)
|
||||
return err
|
||||
}
|
||||
|
||||
// iterate through auths
|
||||
for _, auth := range auths {
|
||||
// reset calculated values
|
||||
auth.WorkflowCount = 0
|
||||
auth.NodeCount = 0
|
||||
auth.Usage = []AuthenticationUsage{}
|
||||
|
||||
// iterate through workflows to find which uses this auth
|
||||
for _, workflow := range workflows {
|
||||
hasCurrentAuth := false
|
||||
usageItem := AuthenticationUsage{
|
||||
WorkflowId: workflow.ID,
|
||||
Nodes: []string{},
|
||||
}
|
||||
|
||||
// iterate through actions
|
||||
for _, action := range workflow.Actions {
|
||||
if action.AuthenticationId == auth.Id {
|
||||
// this workflow should be added to "usage" field
|
||||
hasCurrentAuth = true
|
||||
|
||||
// add this action to list
|
||||
usageItem.Nodes = append(usageItem.Nodes, action.ID)
|
||||
}
|
||||
}
|
||||
|
||||
// update current auth with found workflow
|
||||
if hasCurrentAuth {
|
||||
auth.WorkflowCount += 1
|
||||
auth.NodeCount += int64(len(usageItem.Nodes))
|
||||
auth.Usage = append(auth.Usage, usageItem)
|
||||
}
|
||||
}
|
||||
|
||||
// update record in database
|
||||
err := setWorkflowAppAuthDatastore(ctx, auth, auth.Id)
|
||||
if err != nil {
|
||||
log.Printf("Failed setting up app auth %s: %s", auth.Id, err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func handleAppHotloadRequest(resp http.ResponseWriter, request *http.Request) {
|
||||
cors := handleCors(resp, request)
|
||||
if cors {
|
||||
|
||||
@@ -1031,7 +1031,7 @@ const Admin = (props) => {
|
||||
console.log("Show apps with this category")
|
||||
}}
|
||||
>
|
||||
Find app ({data.apps.length})
|
||||
Find app ({data.apps === null ? 0 : data.apps.length})
|
||||
</Button>
|
||||
</ListItemText>
|
||||
</ListItem>
|
||||
@@ -1094,7 +1094,7 @@ const Admin = (props) => {
|
||||
style={{minWidth: 150, maxWidth: 150}}
|
||||
/>
|
||||
<ListItemText
|
||||
primary={data.usage.length}
|
||||
primary={data.usage === null ? 0 : data.usage.length}
|
||||
style={{minWidth: 150, maxWidth: 150, overflow: "hidden"}}
|
||||
/>
|
||||
<ListItemText
|
||||
|
||||
Reference in New Issue
Block a user