Fixed issues with using access token incorrectly
This commit is contained in:
parent
a9ca2de3fc
commit
88f31d7e26
3 changed files with 61 additions and 3 deletions
|
|
@ -32,6 +32,22 @@ var generateCmd = &cobra.Command{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// make sure that we have a token present before trying to make request
|
||||||
|
if config.AccessToken == "" {
|
||||||
|
// TODO: make request to check if request will need token
|
||||||
|
|
||||||
|
// check if OCHAMI_ACCESS_TOKEN env var is set if no access token is provided and use that instead
|
||||||
|
accessToken := os.Getenv("ACCESS_TOKEN")
|
||||||
|
if accessToken != "" {
|
||||||
|
config.AccessToken = accessToken
|
||||||
|
} else {
|
||||||
|
// TODO: try and fetch token first if it is needed
|
||||||
|
if verbose {
|
||||||
|
fmt.Printf("No token found. Attempting to generate config without one...\n")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// use config plugins if none supplied via CLI
|
// use config plugins if none supplied via CLI
|
||||||
if len(pluginPaths) <= 0 {
|
if len(pluginPaths) <= 0 {
|
||||||
pluginPaths = append(pluginPaths, config.PluginDirs...)
|
pluginPaths = append(pluginPaths, config.PluginDirs...)
|
||||||
|
|
|
||||||
16
cmd/serve.go
16
cmd/serve.go
|
|
@ -19,6 +19,22 @@ var serveCmd = &cobra.Command{
|
||||||
Use: "serve",
|
Use: "serve",
|
||||||
Short: "Start configurator as a server and listen for requests",
|
Short: "Start configurator as a server and listen for requests",
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
|
// make sure that we have a token present before trying to make request
|
||||||
|
if config.AccessToken == "" {
|
||||||
|
// TODO: make request to check if request will need token
|
||||||
|
|
||||||
|
// check if OCHAMI_ACCESS_TOKEN env var is set if no access token is provided and use that instead
|
||||||
|
accessToken := os.Getenv("ACCESS_TOKEN")
|
||||||
|
if accessToken != "" {
|
||||||
|
config.AccessToken = accessToken
|
||||||
|
} else {
|
||||||
|
// TODO: try and fetch token first if it is needed
|
||||||
|
if verbose {
|
||||||
|
fmt.Printf("No token found. Attempting to generate config without one...\n")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// use config plugins if none supplied via CLI
|
// use config plugins if none supplied via CLI
|
||||||
if len(pluginPaths) <= 0 {
|
if len(pluginPaths) <= 0 {
|
||||||
pluginPaths = append(pluginPaths, config.PluginDirs...)
|
pluginPaths = append(pluginPaths, config.PluginDirs...)
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,21 @@ func (client *SmdClient) FetchComponents(opts ...util.Option) ([]Component, erro
|
||||||
return nil, fmt.Errorf("failed to make HTTP request: %v", err)
|
return nil, fmt.Errorf("failed to make HTTP request: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// make sure our response is actually JSON
|
||||||
|
if !json.Valid(b) {
|
||||||
|
return nil, fmt.Errorf("expected valid JSON response: %v", string(b))
|
||||||
|
}
|
||||||
|
|
||||||
// unmarshal response body JSON and extract in object
|
// unmarshal response body JSON and extract in object
|
||||||
|
var tmp map[string]any
|
||||||
|
err = json.Unmarshal(b, &tmp)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to unmarshal response: %v", err)
|
||||||
|
}
|
||||||
|
b, err = json.Marshal(tmp["RedfishEndpoints"].([]any))
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to marshal JSON: %v", err)
|
||||||
|
}
|
||||||
err = json.Unmarshal(b, &comps)
|
err = json.Unmarshal(b, &comps)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to unmarshal response: %v", err)
|
return nil, fmt.Errorf("failed to unmarshal response: %v", err)
|
||||||
|
|
@ -96,15 +110,27 @@ func (client *SmdClient) FetchRedfishEndpoints(opts ...util.Option) ([]RedfishEn
|
||||||
var (
|
var (
|
||||||
params = util.GetParams(opts...)
|
params = util.GetParams(opts...)
|
||||||
verbose = util.Get[bool](params, "verbose")
|
verbose = util.Get[bool](params, "verbose")
|
||||||
rfs = []RedfishEndpoint{}
|
eps = []RedfishEndpoint{}
|
||||||
)
|
)
|
||||||
|
|
||||||
b, err := client.makeRequest("/Inventory/RedfishEndpoints")
|
b, err := client.makeRequest("/Inventory/RedfishEndpoints")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to make HTTP resquest: %v", err)
|
return nil, fmt.Errorf("failed to make HTTP resquest: %v", err)
|
||||||
}
|
}
|
||||||
|
if !json.Valid(b) {
|
||||||
|
return nil, fmt.Errorf("expected valid JSON response: %v", string(b))
|
||||||
|
}
|
||||||
|
var tmp map[string]any
|
||||||
|
err = json.Unmarshal(b, &tmp)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to unmarshal response: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
err = json.Unmarshal(b, &rfs)
|
b, err = json.Marshal(tmp["RedfishEndpoints"].([]any))
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to marshal JSON: %v", err)
|
||||||
|
}
|
||||||
|
err = json.Unmarshal(b, &eps)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to unmarshal response: %v", err)
|
return nil, fmt.Errorf("failed to unmarshal response: %v", err)
|
||||||
}
|
}
|
||||||
|
|
@ -115,7 +141,7 @@ func (client *SmdClient) FetchRedfishEndpoints(opts ...util.Option) ([]RedfishEn
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return rfs, nil
|
return eps, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (client *SmdClient) makeRequest(endpoint string) ([]byte, error) {
|
func (client *SmdClient) makeRequest(endpoint string) ([]byte, error) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue