This is an automated email from the ASF dual-hosted git repository. rohit pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cloudstack-cloudmonkey.git
commit 1a06716e10b732f0c28b38535fe57a33f021653b Author: Rohit Yadav <ro...@apache.org> AuthorDate: Sun Apr 22 20:57:19 2018 +0530 cache: add API response keys in API cache for filter options Signed-off-by: Rohit Yadav <ro...@apache.org> --- config/cache.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/config/cache.go b/config/cache.go index a037a95..8fc9089 100644 --- a/config/cache.go +++ b/config/cache.go @@ -26,6 +26,8 @@ import ( "unicode" ) +const FAKE = "fake" + // APIArg are the args passable to an API type APIArg struct { Name string @@ -46,7 +48,7 @@ type API struct { Related []string Async bool Description string - ResponseName string + ResponseKeys []string } var apiCache map[string]*API @@ -138,10 +140,24 @@ func (c *Config) UpdateCache(response map[string]interface{}) interface{} { }) } + // Add filter arg + apiArgs = append(apiArgs, &APIArg{ + Name: "filter=", + Type: FAKE, + Description: "cloudmonkey specific response key filtering", + }) + sort.Slice(apiArgs, func(i, j int) bool { return apiArgs[i].Name < apiArgs[j].Name }) + var responseKeys []string + for _, respNode := range api["response"].([]interface{}) { + if resp, ok := respNode.(map[string]interface{}); ok { + responseKeys = append(responseKeys, fmt.Sprintf("%v,", resp["name"])) + } + } + var requiredArgs []string for _, arg := range apiArgs { if arg.Required { @@ -157,6 +173,7 @@ func (c *Config) UpdateCache(response map[string]interface{}) interface{} { RequiredArgs: requiredArgs, Async: isAsync, Description: description, + ResponseKeys: responseKeys, } } return count -- To stop receiving notification emails like this one, please contact ro...@apache.org.