mirror of
https://github.com/davidallendj/magellan.git
synced 2025-12-20 03:27:03 -07:00
refactor: improvements to CLI and update pkg
This commit is contained in:
parent
2fca8f9166
commit
c950532e88
8 changed files with 86 additions and 87 deletions
|
|
@ -12,7 +12,7 @@ import (
|
|||
|
||||
var (
|
||||
host string
|
||||
firmwareUrl string
|
||||
firmwareUri string
|
||||
firmwareVersion string
|
||||
component string
|
||||
transferProtocol string
|
||||
|
|
@ -24,12 +24,16 @@ var (
|
|||
// using Redfish. It also provides a simple way to check the status of
|
||||
// an update in-progress.
|
||||
var updateCmd = &cobra.Command{
|
||||
Use: "update hosts...",
|
||||
Use: "update hosts...",
|
||||
Example: ` // perform an firmware update
|
||||
magellan update 172.16.0.108:443 -i -u $bmc_username -p $bmc_password \
|
||||
--firmware-url http://172.16.0.200:8005/firmware/bios/image.RBU \
|
||||
--component BIOS
|
||||
|
||||
// check update status
|
||||
magellan update 172.16.0.108:443 -i -u $bmc_username -p $bmc_password --status`,
|
||||
Short: "Update BMC node firmware",
|
||||
Long: "Perform an firmware update using Redfish by providing a remote firmware URL and component.\n\n" +
|
||||
"Examples:\n" +
|
||||
" magellan update 172.16.0.108:443 --insecure --username bmc_username --password bmc_password --firmware-url http://172.16.0.200:8005/firmware/bios/image.RBU --component BIOS\n" +
|
||||
" magellan update 172.16.0.108:443 --insecure --status --username bmc_username --password bmc_password",
|
||||
Long: "Perform an firmware update using Redfish by providing a remote firmware URL and component.",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
// check that we have at least one host
|
||||
if len(args) <= 0 {
|
||||
|
|
@ -41,9 +45,7 @@ var updateCmd = &cobra.Command{
|
|||
for _, arg := range args {
|
||||
if showStatus {
|
||||
err := magellan.GetUpdateStatus(&magellan.UpdateParams{
|
||||
FirmwarePath: firmwareUrl,
|
||||
FirmwareVersion: firmwareVersion,
|
||||
Component: component,
|
||||
FirmwareURI: firmwareUri,
|
||||
TransferProtocol: transferProtocol,
|
||||
Insecure: Insecure,
|
||||
CollectParams: magellan.CollectParams{
|
||||
|
|
@ -61,9 +63,7 @@ var updateCmd = &cobra.Command{
|
|||
|
||||
// initiate a remote update
|
||||
err := magellan.UpdateFirmwareRemote(&magellan.UpdateParams{
|
||||
FirmwarePath: firmwareUrl,
|
||||
FirmwareVersion: firmwareVersion,
|
||||
Component: component,
|
||||
FirmwareURI: firmwareUri,
|
||||
TransferProtocol: strings.ToUpper(transferProtocol),
|
||||
Insecure: Insecure,
|
||||
CollectParams: magellan.CollectParams{
|
||||
|
|
@ -81,21 +81,15 @@ var updateCmd = &cobra.Command{
|
|||
}
|
||||
|
||||
func init() {
|
||||
updateCmd.Flags().StringVar(&username, "username", "", "Set the BMC user")
|
||||
updateCmd.Flags().StringVar(&password, "password", "", "Set the BMC password")
|
||||
updateCmd.Flags().StringVarP(&username, "username", "u", "", "Set the BMC user")
|
||||
updateCmd.Flags().StringVarP(&password, "password", "p", "", "Set the BMC password")
|
||||
updateCmd.Flags().StringVar(&transferProtocol, "scheme", "https", "Set the transfer protocol")
|
||||
updateCmd.Flags().StringVar(&firmwareUrl, "firmware-url", "", "Set the path to the firmware")
|
||||
updateCmd.Flags().StringVar(&firmwareVersion, "firmware-version", "", "Set the version of firmware to be installed")
|
||||
updateCmd.Flags().StringVar(&component, "component", "", "Set the component to upgrade (BMC|BIOS)")
|
||||
updateCmd.Flags().StringVar(&firmwareUri, "firmware-uri", "", "Set the URI to retrieve the firmware")
|
||||
updateCmd.Flags().BoolVar(&showStatus, "status", false, "Get the status of the update")
|
||||
updateCmd.Flags().BoolVar(&Insecure, "insecure", false, "Allow insecure connections to the server")
|
||||
updateCmd.Flags().BoolVarP(&Insecure, "insecure", "i", false, "Allow insecure connections to the server")
|
||||
|
||||
checkBindFlagError(viper.BindPFlag("update.username", updateCmd.Flags().Lookup("username")))
|
||||
checkBindFlagError(viper.BindPFlag("update.password", updateCmd.Flags().Lookup("password")))
|
||||
checkBindFlagError(viper.BindPFlag("update.scheme", updateCmd.Flags().Lookup("scheme")))
|
||||
checkBindFlagError(viper.BindPFlag("update.firmware-url", updateCmd.Flags().Lookup("firmware-url")))
|
||||
checkBindFlagError(viper.BindPFlag("update.firmware-version", updateCmd.Flags().Lookup("firmware-version")))
|
||||
checkBindFlagError(viper.BindPFlag("update.component", updateCmd.Flags().Lookup("component")))
|
||||
checkBindFlagError(viper.BindPFlag("update.firmware-uri", updateCmd.Flags().Lookup("firmware-uri")))
|
||||
checkBindFlagError(viper.BindPFlag("update.status", updateCmd.Flags().Lookup("status")))
|
||||
checkBindFlagError(viper.BindPFlag("update.insecure", updateCmd.Flags().Lookup("insecure")))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue