2020-04-01 09:55:42 -05:00
|
|
|
/*
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
https://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
*/
|
|
|
|
|
2020-03-27 14:09:32 -07:00
|
|
|
package document
|
|
|
|
|
|
|
|
// GetBMHNetworkData retrieves the associated network data string
|
|
|
|
// for the bmh document supplied from the bundle supplied
|
|
|
|
func GetBMHNetworkData(bmh Document, bundle Bundle) (string, error) {
|
|
|
|
// try and find these documents in our bundle
|
|
|
|
selector, err := NewNetworkDataSelector(bmh)
|
|
|
|
if err != nil {
|
|
|
|
return "", err
|
|
|
|
}
|
|
|
|
doc, err := bundle.SelectOne(selector)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
return "", err
|
|
|
|
}
|
|
|
|
|
|
|
|
networkData, err := GetSecretDataKey(doc, "networkData")
|
|
|
|
if err != nil {
|
|
|
|
return "", err
|
|
|
|
}
|
|
|
|
return networkData, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// GetBMHBMCAddress returns the bmc address for a particular the document supplied
|
|
|
|
func GetBMHBMCAddress(bmh Document) (string, error) {
|
|
|
|
bmcAddress, err := bmh.GetString("spec.bmc.address")
|
|
|
|
if err != nil {
|
|
|
|
return "", err
|
|
|
|
}
|
|
|
|
return bmcAddress, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// GetBMHBMCCredentials returns the BMC credentials for the bmh document supplied from
|
|
|
|
// the supplied bundle
|
|
|
|
func GetBMHBMCCredentials(bmh Document, bundle Bundle) (username string, password string, err error) {
|
|
|
|
// extract the secret document name
|
|
|
|
bmcCredentialsName, err := bmh.GetString("spec.bmc.credentialsName")
|
|
|
|
if err != nil {
|
|
|
|
return "", "", err
|
|
|
|
}
|
|
|
|
|
|
|
|
// find the secret within the bundle supplied
|
|
|
|
selector := NewBMCCredentialsSelector(bmcCredentialsName)
|
|
|
|
doc, err := bundle.SelectOne(selector)
|
|
|
|
if err != nil {
|
|
|
|
return "", "", err
|
|
|
|
}
|
|
|
|
|
|
|
|
username, err = GetSecretDataKey(doc, "username")
|
|
|
|
if err != nil {
|
|
|
|
return "", "", err
|
|
|
|
}
|
|
|
|
password, err = GetSecretDataKey(doc, "password")
|
|
|
|
if err != nil {
|
|
|
|
return "", "", err
|
|
|
|
}
|
|
|
|
|
|
|
|
// extract the username and password from them
|
|
|
|
return username, password, nil
|
|
|
|
}
|