Merge pull request #5312 from wanyaoqi/bugfix/wyq/fix-bm-register

fix bm register get remote address
This commit is contained in:
Zexi Li
2020-02-28 23:57:10 +08:00
committed by GitHub
2 changed files with 17 additions and 9 deletions
+8 -4
View File
@@ -156,11 +156,15 @@ func bmRegisterMiddleware(h bmRegisterFunc) appsrv.FilterHandler {
newCtx.ResponseError(httperrors.NewMissingParameterError("hostname"))
return
}
remoteIp, _, err := net.SplitHostPort(r.RemoteAddr)
if err != nil {
newCtx.ResponseError(httperrors.NewInternalServerError("Parse ip error %s", err))
return
remoteIp, _ := newCtx.Data().GetString("ssh_ip")
if len(remoteIp) == 0 {
remoteIp, _, err = net.SplitHostPort(r.RemoteAddr)
if err != nil {
newCtx.ResponseError(httperrors.NewInternalServerError("Parse ip error %s", err))
return
}
}
sshPort, err := newCtx.Data().Int("ssh_port")
if err != nil {
newCtx.ResponseError(httperrors.NewMissingParameterError("ssh_port"))
+9 -5
View File
@@ -44,10 +44,14 @@ func addHandler(method, prefix string, f appsrv.FilterHandler, app *appsrv.Appli
}
func getBmAgentUrl(ctx context.Context, w http.ResponseWriter, r *http.Request) {
ipAddr, _, err := net.SplitHostPort(r.RemoteAddr)
if err != nil {
httperrors.NewInternalServerError("Parse remote ip error %s", err)
return
var err error
ipAddr := r.URL.Query().Get("ssh_ip")
if len(ipAddr) == 0 {
ipAddr, _, err = net.SplitHostPort(r.RemoteAddr)
if err != nil {
httperrors.NewInternalServerError("Parse remote ip error %s", err)
return
}
}
n, _ := models.NetworkManager.GetOnPremiseNetworkOfIP(ipAddr, "", tristate.None)
@@ -71,7 +75,7 @@ func getBmPrepareScript(ctx context.Context, w http.ResponseWriter, r *http.Requ
httperrors.NotAcceptableError(w, "Baremetal package not prepared")
return
}
regionUrl, err := auth.GetServiceURL("compute_v2", options.Options.Region, "", "")
regionUrl, err := auth.GetPublicServiceURL("compute_v2", options.Options.Region, "")
if err != nil {
log.Errorln(err)
httperrors.InternalServerError(w, err.Error())