diff --git a/pkg/compute/hostdrivers/esxi.go b/pkg/compute/hostdrivers/esxi.go index 1374f7bde8..de521f08a6 100644 --- a/pkg/compute/hostdrivers/esxi.go +++ b/pkg/compute/hostdrivers/esxi.go @@ -228,7 +228,7 @@ func (self *SESXiHostDriver) RequestSaveUploadImageOnHost(ctx context.Context, h ImageId string StorageId string StoragecacheId string - Compress bool `json:",allowempty"` + Compress bool `json:",allowfalse"` } spec := specStruct{} diff --git a/pkg/compute/models/baremetalagents.go b/pkg/compute/models/baremetalagents.go index 47a9f4dbfa..0a48d57e4f 100644 --- a/pkg/compute/models/baremetalagents.go +++ b/pkg/compute/models/baremetalagents.go @@ -28,6 +28,8 @@ type SBaremetalagent struct { AccessIp string `width:"16" charset:"ascii" nullable:"false" list:"admin" update:"admin" create:"admin_required"` ManagerUri string `width:"256" charset:"ascii" nullable:"true" list:"admin" update:"admin" create:"admin_required"` ZoneId string `width:"128" charset:"ascii" nullable:"false" list:"admin" update:"admin" create:"admin_required"` + + AgentType string `width:"32" charset:"ascii" nullable:"true" default:"baremetal" list:"admin" update:"admin" create:"admin_optional"` } var BaremetalagentManager *SBaremetalagentManager @@ -94,11 +96,11 @@ func (manager *SBaremetalagentManager) ValidateCreateData(ctx context.Context, u if count > 0 { return nil, httperrors.NewDuplicateResourceError("Duplicate manager_uri %s", mangerUri) } - accessIp, _ := data.GetString("access_ip") - count = manager.Query().Equals("access_ip", accessIp).Count() - if count > 0 { - return nil, httperrors.NewDuplicateResourceError("Duplicate access_ip %s", accessIp) - } + //accessIp, _ := data.GetString("access_ip") + //count = manager.Query().Equals("access_ip", accessIp).Count() + //if count > 0 { + // return nil, httperrors.NewDuplicateResourceError("Duplicate access_ip %s", accessIp) + //} return manager.SStandaloneResourceBaseManager.ValidateCreateData(ctx, userCred, ownerProjId, query, data) } @@ -137,7 +139,7 @@ func (self *SBaremetalagent) AllowPerformOnline(ctx context.Context, userCred mc } func (self *SBaremetalagent) PerformOnline(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data jsonutils.JSONObject) (jsonutils.JSONObject, error) { - if self.Status != BAREMETAL_AGENT_OFFLINE { + if self.Status == BAREMETAL_AGENT_OFFLINE { self.GetModelManager().TableSpec().Update(self, func() error { self.Status = BAREMETAL_AGENT_ENABLED return nil @@ -152,7 +154,7 @@ func (self *SBaremetalagent) AllowPerformOffline(ctx context.Context, userCred m } func (self *SBaremetalagent) PerformOffline(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data jsonutils.JSONObject) (jsonutils.JSONObject, error) { - if self.Status != BAREMETAL_AGENT_ENABLED { + if self.Status == BAREMETAL_AGENT_ENABLED { self.GetModelManager().TableSpec().Update(self, func() error { self.Status = BAREMETAL_AGENT_OFFLINE return nil diff --git a/pkg/image/models/images.go b/pkg/image/models/images.go index 11eb98a88a..3e79889715 100644 --- a/pkg/image/models/images.go +++ b/pkg/image/models/images.go @@ -461,6 +461,7 @@ func (self *SImage) ValidateUpdateData(ctx context.Context, userCred mcclient.To } self.OnSaveSuccess(ctx, userCred, "update upload success") data.Remove("status") + self.StartImageConvertTask(ctx, userCred, "", true) } else { copyFrom := appParams.Request.Header.Get(modules.IMAGE_META_COPY_FROM) if len(copyFrom) > 0 { diff --git a/pkg/mcclient/modules/mod_baremetalagents.go b/pkg/mcclient/modules/mod_baremetalagents.go index 7050e8f65d..0932b90e13 100644 --- a/pkg/mcclient/modules/mod_baremetalagents.go +++ b/pkg/mcclient/modules/mod_baremetalagents.go @@ -8,7 +8,7 @@ func init() { Baremetalagents = NewComputeManager( "baremetalagent", "baremetalagents", - []string{"ID", "Name", "Access_ip", "Manager_URI", "Status"}, + []string{"ID", "Name", "Access_ip", "Manager_URI", "Status", "agent_type"}, []string{}, ) registerCompute(&Baremetalagents)