Files
2017-02-14 13:59:07 -08:00

115 lines
2.7 KiB
Go

package main
import (
"encoding/json"
"io/ioutil"
"os"
yaml "gopkg.in/yaml.v2"
"github.com/rancher/go-rancher/client"
)
const (
apiOutputDir = "./output"
apiInputDir = "./input"
postAPI = "POST"
)
var (
blacklistTypes map[string]bool
blacklistCollectionResources map[string]bool
blacklistActions map[string]bool
blacklistResourceActions map[string]bool
resourceDescriptionsMap map[string]string
)
func init() {
blacklistTypes = make(map[string]bool)
blacklistTypes["schema"] = true
blacklistTypes["resource"] = true
blacklistTypes["collection"] = true
blacklistCollectionResources = make(map[string]bool)
resourceDescriptionsMap = make(map[string]string)
}
func readCattleSchema() (client.Schemas, error) {
var schemas client.Schemas
schemaBytes, err := ioutil.ReadFile(apiInputDir + "/schemas.json")
if err != nil {
return schemas, err
}
if err = json.Unmarshal(schemaBytes, &schemas); err != nil {
return schemas, err
}
return schemas, nil
}
func readBlacklistFiles() error {
//Create list of blacklist collections (collections that will not show up on navbar or have actions)
composeBytes, err := ioutil.ReadFile(apiInputDir + "/schema-check/blacklist_collections.yml")
if err != nil {
return err
}
if err = yaml.Unmarshal(composeBytes, &blacklistCollectionResources); err != nil {
return err
}
//Create list of blacklist actions (list of ALL actions to be hidden for ALL resources)
composeBytes, err = ioutil.ReadFile(apiInputDir + "/schema-check//blacklist_actions.yml")
if err != nil {
return err
}
if err = yaml.Unmarshal(composeBytes, &blacklistActions); err != nil {
return err
}
//Create list of blacklist actions specific to a resource (list of actions to be hidden for certain resources)
composeBytes, err = ioutil.ReadFile(apiInputDir + "/schema-check//blacklist_resource_actions.yml")
if err != nil {
return err
}
if err = yaml.Unmarshal(composeBytes, &blacklistResourceActions); err != nil {
return err
}
return nil
}
func isBlacklistCollection(resourceName string) bool {
if blacklistCollectionResources[resourceName] {
return true
}
return false
}
func isBlacklistAction(resourceName string, actionName string) bool {
if blacklistActions[actionName] || blacklistResourceActions[resourceName+"-"+actionName] {
return true
}
return false
}
func readGenDescFile(structure map[string]string) error {
//read yaml file to load the common desc
composeBytes, err := ioutil.ReadFile("./input/generic_descriptions.yml")
if err != nil {
return err
}
return yaml.Unmarshal(composeBytes, &structure)
}
func setupDirectory(dir string) error {
if _, err := os.Stat(dir); os.IsNotExist(err) {
return os.MkdirAll(dir, 0755)
}
return nil
}