mirror of
https://github.com/josmo/drone-rancher.git
synced 2026-06-16 14:50:35 +08:00
115 lines
2.7 KiB
Go
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
|
|
}
|