/* 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. */ 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 }