Merge pull request #15925 from wanyaoqi/fix/deploy-content

fix(host,baremetal): deploy content action not marshaled
This commit is contained in:
Zexi Li
2023-02-13 15:36:26 +08:00
committed by GitHub
3 changed files with 16 additions and 21 deletions
+8 -2
View File
@@ -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, "",
)
+8 -2
View File
@@ -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,
-17
View File
@@ -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")