package models

import (
	"encoding/json"
	"errors"
)

// 解析SSH登录参数
func (this *NodeLogin) DecodeSSHParams() (*NodeLoginSSHParams, error) {
	if this.Type != NodeLoginTypeSSH {
		return nil, errors.New("invalid login type '" + this.Type + "'")
	}

	if len(this.Params) == 0 || this.Params == "null" {
		return nil, errors.New("'params' should not be empty")
	}

	params := &NodeLoginSSHParams{}
	err := json.Unmarshal([]byte(this.Params), params)
	if err != nil {
		return nil, err
	}

	return params, nil
}
