mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Merge pull request #15925 from wanyaoqi/fix/deploy-content
fix(host,baremetal): deploy content action not marshaled
This commit is contained in:
@@ -2872,13 +2872,19 @@ func (s *SBaremetalServer) SyncPartitionSize(term *ssh.Client, parts []*disktool
|
||||
|
||||
func (s *SBaremetalServer) DoDeploy(tool *disktool.SSHPartitionTool, term *ssh.Client, data jsonutils.JSONObject, isInit bool) (jsonutils.JSONObject, error) {
|
||||
publicKey := deployapi.GetKeys(data)
|
||||
deploys, _ := data.GetArray("deploys")
|
||||
password, _ := data.GetString("password")
|
||||
resetPassword := jsonutils.QueryBoolean(data, "reset_password", false)
|
||||
if resetPassword && len(password) == 0 {
|
||||
password = seclib.RandomPassword(12)
|
||||
}
|
||||
deployInfo := deployapi.NewDeployInfo(publicKey, deployapi.JsonDeploysToStructs(deploys),
|
||||
deployArray := make([]*deployapi.DeployContent, 0)
|
||||
if data.Contains("deploys") {
|
||||
err := data.Unmarshal(&deployArray, "deploys")
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "unmarshal to array of deployapi.DeployContent")
|
||||
}
|
||||
}
|
||||
deployInfo := deployapi.NewDeployInfo(publicKey, deployArray,
|
||||
password, isInit, true, o.Options.LinuxDefaultRootUser, o.Options.WindowsDefaultAdminUser, false, "",
|
||||
false, "",
|
||||
)
|
||||
|
||||
@@ -696,7 +696,13 @@ func (m *SGuestManager) startDeploy(
|
||||
return nil, nil
|
||||
}
|
||||
publicKey := deployapi.GetKeys(deployParams.Body)
|
||||
deploys, _ := deployParams.Body.GetArray("deploys")
|
||||
deployArray := make([]*deployapi.DeployContent, 0)
|
||||
if deployParams.Body.Contains("deploys") {
|
||||
err := deployParams.Body.Unmarshal(&deployArray, "deploys")
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "unmarshal to array of deployapi.DeployContent")
|
||||
}
|
||||
}
|
||||
password, _ := deployParams.Body.GetString("password")
|
||||
resetPassword := jsonutils.QueryBoolean(deployParams.Body, "reset_password", false)
|
||||
if resetPassword && len(password) == 0 {
|
||||
@@ -712,7 +718,7 @@ func (m *SGuestManager) startDeploy(
|
||||
|
||||
guestInfo, err := guest.DeployFs(ctx, deployParams.UserCred,
|
||||
deployapi.NewDeployInfo(
|
||||
publicKey, deployapi.JsonDeploysToStructs(deploys),
|
||||
publicKey, deployArray,
|
||||
password, deployParams.IsInit, false,
|
||||
options.HostOptions.LinuxDefaultRootUser, options.HostOptions.WindowsDefaultAdminUser,
|
||||
enableCloudInit, loginAccount, deployTelegraf, telegrafConfig,
|
||||
|
||||
@@ -57,23 +57,6 @@ func NewDeployInfo(
|
||||
return depInfo
|
||||
}
|
||||
|
||||
func JsonDeploysToStructs(jdeploys []jsonutils.JSONObject) []*DeployContent {
|
||||
ret := []*DeployContent{}
|
||||
for i := 0; i < len(jdeploys); i++ {
|
||||
d := new(DeployContent)
|
||||
path, err := jdeploys[i].GetString("path")
|
||||
if err == nil {
|
||||
d.Path = path
|
||||
}
|
||||
content, err := jdeploys[i].GetString("content")
|
||||
if err == nil {
|
||||
d.Content = content
|
||||
}
|
||||
ret = append(ret, d)
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
||||
func GetKeys(data jsonutils.JSONObject) *SSHKeys {
|
||||
var ret = new(SSHKeys)
|
||||
ret.PublicKey, _ = data.GetString("public_key")
|
||||
|
||||
Reference in New Issue
Block a user