skipped 121 lines 122 122 return errors.New("load image pull port failed") 123 123 } 124 124 } 125 + creation.Vars["registry_port"] = fmt.Sprint(registery.RegistryPort) 125 126 playbook := c.loadPlayBookName(dp, creation.Vars) 126 127 task := model.TaskLogDetail{ 127 128 ID: dp.ID, skipped 6 lines 134 135 return fmt.Errorf("save tasklog failed, err: %v", err) 135 136 } 136 137 137 - admCluster, writer, err := c.loadAdmCluster(cluster, dp, creation.Vars, constant.StatusEnabled) 138 - if err != nil { 139 - return err 140 - } 141 - admCluster.Kobe.SetVar("registry_port", fmt.Sprint(registery.RegistryPort)) 142 138 if err := db.DB.Model(&model.ClusterStorageProvisioner{}).Where("id = ?", dp.ID). 143 139 Updates(map[string]interface{}{"status": constant.StatusInitializing, "message": ""}).Error; err != nil { 144 140 return err 145 141 } 146 - client, err := clusterUtil.NewClusterClient(&cluster) 147 - if err != nil { 148 - _ = c.taskLogService.EndDetail(&task, "provisioner", constant.TaskLogStatusFailed, err.Error()) 149 - c.errHandlerProvisioner(dp, constant.StatusDisabled, err) 150 - } 151 142 152 143 //playbook 153 - go c.docreate(admCluster , writer , task, dp, client ) 144 + go c.docreate(& cluster , task, dp, creation . Vars ) 154 145 return nil 155 146 } 156 147 157 - func (c clusterStorageProvisionerService) docreate(admCluster *adm .AnsibleHelper , writer io . Writer , task model.TaskLogDetail, dp model.ClusterStorageProvisioner, client * kubernetes . Clientset ) { 148 + func (c clusterStorageProvisionerService) docreate(cluster *model .Cluster , task model.TaskLogDetail, dp model.ClusterStorageProvisioner, vars map [ string ] interface { } ) { 149 + admCluster, writer, err := c.loadAdmCluster(*cluster, dp, vars, constant.StatusEnabled) 150 + if err != nil { 151 + _ = c.taskLogService.EndDetail(&task, dp.Name, "provisioner", constant.TaskLogStatusFailed, err.Error()) 152 + c.errHandlerProvisioner(dp, constant.StatusFailed, err) 153 + return 154 + } 155 + 156 + client, err := clusterUtil.NewClusterClient(cluster) 157 + if err != nil { 158 + _ = c.taskLogService.EndDetail(&task, dp.Name, "provisioner", constant.TaskLogStatusFailed, err.Error()) 159 + c.errHandlerProvisioner(dp, constant.StatusFailed, err) 160 + return 161 + } 162 + 158 163 playbook := strings.ReplaceAll(task.Task, " (enable)", "") 159 164 if err := phases.RunPlaybookAndGetResult(admCluster.Kobe, playbook, "", writer); err != nil { 160 - _ = c.taskLogService.EndDetail(&task, "provisioner", constant.TaskLogStatusFailed, err.Error()) 165 + _ = c.taskLogService.EndDetail(&task, dp . Name , "provisioner", constant.TaskLogStatusFailed, err.Error()) 161 166 c.errHandlerProvisioner(dp, constant.StatusFailed, err) 162 167 return 163 168 } 164 - _ = c.taskLogService.EndDetail(&task, "provisioner", constant.TaskLogStatusSuccess, "") 169 + _ = c.taskLogService.EndDetail(&task, dp . Name , "provisioner", constant.TaskLogStatusSuccess, "") 165 170 dp.Status = constant.StatusWaiting 166 171 if err := db.DB.Save(&dp).Error; err != nil { 167 172 logger.Log.Errorf("save storage provisioner status err: %s", err.Error()) skipped 35 lines 203 208 return fmt.Errorf("save tasklog failed, err: %v", err) 204 209 } 205 210 206 - admCluster, writer, err := c.loadAdmCluster(cluster, provisioner, Vars, constant.StatusDisabled) 207 - if err != nil { 208 - return err 209 - } 210 211 if err := db.DB.Model(&model.ClusterStorageProvisioner{}).Where("id = ?", provisioner.ID). 211 212 Updates(map[string]interface{}{"status": constant.StatusTerminating, "message": ""}).Error; err != nil { 212 213 return err 213 214 } 214 215 215 - go c.dodelete(admCluster , writer , task, provisioner) 216 + go c.dodelete(& cluster , task, provisioner, Vars ) 216 217 217 218 return nil 218 219 } 219 220 220 - func (c clusterStorageProvisionerService) dodelete(admCluster *adm . AnsibleHelper , writer io .Writer , task model.TaskLogDetail, provisioner model.ClusterStorageProvisioner) { 221 + func (c clusterStorageProvisionerService) dodelete(cluster *model .Cluster , task model.TaskLogDetail, provisioner model.ClusterStorageProvisioner, vars map [ string ] interface { } ) { 222 + admCluster, writer, err := c.loadAdmCluster(*cluster, provisioner, vars, constant.StatusDisabled) 223 + if err != nil { 224 + _ = c.taskLogService.EndDetail(&task, provisioner.Name, "provisioner", constant.TaskLogStatusFailed, err.Error()) 225 + c.errHandlerProvisioner(provisioner, constant.StatusFailed, err) 226 + return 227 + } 228 + 221 229 playbook := strings.ReplaceAll(task.Task, " (disable)", "") 222 230 if err := phases.RunPlaybookAndGetResult(admCluster.Kobe, playbook, "", writer); err != nil { 223 - _ = c.taskLogService.EndDetail(&task, "provisioner", constant.TaskLogStatusFailed, err.Error()) 231 + _ = c.taskLogService.EndDetail(&task, provisioner . Name , "provisioner", constant.TaskLogStatusFailed, err.Error()) 224 232 c.errHandlerProvisioner(provisioner, constant.StatusFailed, err) 225 233 return 226 234 } 227 - _ = c.taskLogService.EndDetail(&task, "provisioner", constant.TaskLogStatusSuccess, "") 235 + _ = c.taskLogService.EndDetail(&task, provisioner . Name , "provisioner", constant.TaskLogStatusSuccess, "") 228 236 _ = db.DB.Where("id = ?", provisioner.ID).Delete(&model.ClusterStorageProvisioner{}) 229 237 } 230 238 skipped 152 lines 383 391 if err != nil { 384 392 return admCluster, writer, err 385 393 } 386 - if err := db.DB.Model(&model.ClusterStorageProvisioner{}).Where("id = ?", provisioner.ID).Updates(map[string]interface{}{ 387 - "status": constant.StatusTerminating, 388 - "message": "", 389 - }).Error; err != nil { 390 - return admCluster, writer, err 391 - } 392 394 393 395 switch provisioner.Type { 394 396 case "nfs": 395 397 admCluster.Kobe.SetVar(facts.EnableNfsFactName, operation) 396 398 case "gfs": 397 399 admCluster.Kobe.SetVar(facts.EnableGfsFactName, operation) 398 - case "external_ceph_block": 400 + case "external-ceph-block": 401 + fmt.Println(facts.EnableCephBlockFactName, operation) 399 402 admCluster.Kobe.SetVar(facts.EnableCephBlockFactName, operation) 400 - case "external_cephfs": 403 + case "external-cephfs": 401 404 admCluster.Kobe.SetVar(facts.EnableCephFsFactName, operation) 402 405 case "cinder": 403 406 admCluster.Kobe.SetVar(facts.EnableCinderFactName, operation) skipped 10 lines