func (m *M1000e) ReseatBlade(position int) (bool, error) {
	output, err := m.sshClient.Run(fmt.Sprintf("serveraction -m server-%d reseat -f", position))
	if err != nil {
		return false, fmt.Errorf("output: %q: %w", output, err)
	}
	if strings.Contains(output, "successful") {
		return true, nil
	}
	return false, fmt.Errorf(output)
}
ReseatBlade reboots the machine via bmc
package m1000e
import (
	"fmt"
	"net/url"
	"strconv"
	"strings"
	"github.com/bmc-toolbox/bmclib/errors"
	"github.com/bmc-toolbox/bmclib/internal"
)
func (m *M1000e) PowerCycle() (bool, error) {
	output, err := m.sshClient.Run("racadm racreset")
	if err != nil {
		return false, fmt.Errorf("output: %q: %w", output, err)
	}
	if strings.Contains(output, "successful") {
		return true, nil
	}
	return false, fmt.Errorf(output)
}
func (m *M1000e) PowerOn() (bool, error) {
	output, err := m.sshClient.Run("chassisaction powerup")
	if err != nil {
		return false, fmt.Errorf("output: %q: %w", output, err)
	}
	if strings.Contains(output, "successful") {
		return true, nil
	}
	return false, fmt.Errorf(output)
}
func (m *M1000e) PowerOff() (bool, error) {
	output, err := m.sshClient.Run("chassisaction powerdown")
	if err != nil {
		return false, fmt.Errorf("output: %q: %w", output, err)
	}
	if strings.Contains(output, "successful") {
		return true, nil
	}
	return false, fmt.Errorf(output)
}
func (m *M1000e) IsOn() (bool, error) {
	output, err := m.sshClient.Run("getsysinfo")
	if err != nil {
		return false, fmt.Errorf("output: %q: %w", output, err)
	}
	if strings.Contains(output, " = ON") {
		return true, nil
	}
	return false, err
}
func (m *M1000e) FindBladePosition(serial string) (int, error) {
	output, err := m.sshClient.Run("getsvctag")
	if err != nil {
		return -1, fmt.Errorf("output: %q: %w", output, err)
	}
	for _, line := range strings.Split(output, "\n") {
		line = strings.Replace(line, "Server-", "", -1)
		data := strings.FieldsFunc(line, internal.IsntLetterOrNumber)
		for _, field := range data {
			if strings.EqualFold(serial, field) {
				return strconv.Atoi(data[0])
			}
		}
	}
	return -1, fmt.Errorf("unable to find the blade in this chassis")
}
func (m *M1000e) PowerCycleBlade(position int) (bool, error) {
	output, err := m.sshClient.Run(fmt.Sprintf("serveraction -m server-%d hardreset", position))
	if err != nil {
		if strings.Contains(output, "is already powered OFF") {
			return m.PowerOnBlade(position)
		}
		return false, fmt.Errorf("output: %q: %w", output, err)
	}
	if strings.Contains(output, "successful") {
		return true, nil
	}
	return false, fmt.Errorf(output)
}