diff --git a/cmd/climc/shell/baremetalagents.go b/cmd/climc/shell/baremetalagents.go index ac02d059b4..6483574841 100644 --- a/cmd/climc/shell/baremetalagents.go +++ b/cmd/climc/shell/baremetalagents.go @@ -26,7 +26,7 @@ func init() { type BaremetalAgentListOptions struct { options.BaseListOptions } - R(&BaremetalAgentListOptions{}, "baremetal-agent-list", "List baremetal agent", func(s *mcclient.ClientSession, args *BaremetalAgentListOptions) error { + R(&BaremetalAgentListOptions{}, "agent-list", "List all agent", func(s *mcclient.ClientSession, args *BaremetalAgentListOptions) error { var params *jsonutils.JSONDict { var err error @@ -47,7 +47,7 @@ func init() { type BaremetalAgentOpsOperations struct { ID string `help:"ID or name of agent"` } - R(&BaremetalAgentOpsOperations{}, "baremetal-agent-enable", "Enable baremetal agent", func(s *mcclient.ClientSession, args *BaremetalAgentOpsOperations) error { + R(&BaremetalAgentOpsOperations{}, "agent-enable", "Enable agent", func(s *mcclient.ClientSession, args *BaremetalAgentOpsOperations) error { result, err := modules.Baremetalagents.PerformAction(s, args.ID, "enable", nil) if err != nil { return err @@ -56,7 +56,7 @@ func init() { return nil }) - R(&BaremetalAgentOpsOperations{}, "baremetal-agent-disable", "Disable baremetal agent", func(s *mcclient.ClientSession, args *BaremetalAgentOpsOperations) error { + R(&BaremetalAgentOpsOperations{}, "agent-disable", "Disable agent", func(s *mcclient.ClientSession, args *BaremetalAgentOpsOperations) error { result, err := modules.Baremetalagents.PerformAction(s, args.ID, "disable", nil) if err != nil { return err @@ -65,7 +65,7 @@ func init() { return nil }) - R(&BaremetalAgentOpsOperations{}, "baremetal-agent-delete", "Delete baremetal agent", func(s *mcclient.ClientSession, args *BaremetalAgentOpsOperations) error { + R(&BaremetalAgentOpsOperations{}, "agent-delete", "Delete agent", func(s *mcclient.ClientSession, args *BaremetalAgentOpsOperations) error { result, err := modules.Baremetalagents.Delete(s, args.ID, nil) if err != nil { return err diff --git a/pkg/cloudcommon/agent/agent.go b/pkg/cloudcommon/agent/agent.go index 74fdd90b6d..0f083f9380 100644 --- a/pkg/cloudcommon/agent/agent.go +++ b/pkg/cloudcommon/agent/agent.go @@ -21,6 +21,7 @@ import ( "yunion.io/x/jsonutils" "yunion.io/x/log" + "yunion.io/x/pkg/util/version" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/mcclient/modules" @@ -256,19 +257,10 @@ func (agent *SBaseAgent) createOrUpdateBaremetalAgent(session *mcclient.ClientSe } } else { cloudBmAgent := ret.Data[0] - accessIP, _ := cloudBmAgent.GetString("access_ip") - managerUri, _ := cloudBmAgent.GetString("manager_uri") - zoneId, _ := cloudBmAgent.GetString("zone_id") agentId, _ := cloudBmAgent.GetString("id") - if naccessIP.String() != accessIP || - agent.GetManagerUri() != managerUri || - zoneId != agent.Zone.Id { - cloudObj, err = agent.updateBaremetalAgent(session, agentId) - if err != nil { - return err - } - } else { - cloudObj = cloudBmAgent + cloudObj, err = agent.updateBaremetalAgent(session, agentId) + if err != nil { + return err } } @@ -308,6 +300,8 @@ func (agent *SBaseAgent) getCreateUpdateInfo() (jsonutils.JSONObject, error) { params.Add(jsonutils.NewString(agent.GetManagerUri()), "manager_uri") params.Add(jsonutils.NewString(agent.Zone.Id), "zone_id") params.Add(jsonutils.NewString(agent.IAgent().GetAgentType()), "agent_type") + params.Add(jsonutils.NewString(version.GetShortString()), "version") + return params, nil } diff --git a/pkg/compute/models/baremetalagents.go b/pkg/compute/models/baremetalagents.go index 1094cc2eaa..f619513bb7 100644 --- a/pkg/compute/models/baremetalagents.go +++ b/pkg/compute/models/baremetalagents.go @@ -42,6 +42,8 @@ type SBaremetalagent struct { 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"` + + Version string `width:"64" charset:"ascii" list:"admin" update:"admin" create:"admin_optional"` // Column(VARCHAR(64, charset='ascii')) } var BaremetalagentManager *SBaremetalagentManager diff --git a/pkg/mcclient/modules/mod_baremetalagents.go b/pkg/mcclient/modules/mod_baremetalagents.go index 57042ca3d6..e585c73dd9 100644 --- a/pkg/mcclient/modules/mod_baremetalagents.go +++ b/pkg/mcclient/modules/mod_baremetalagents.go @@ -22,7 +22,7 @@ func init() { Baremetalagents = NewComputeManager( "baremetalagent", "baremetalagents", - []string{"ID", "Name", "Access_ip", "Manager_URI", "Status", "agent_type"}, + []string{"ID", "Name", "Access_ip", "Manager_URI", "Status", "agent_type", "version"}, []string{}, ) registerCompute(&Baremetalagents)