diff --git a/features/cm/ne.go b/features/cm/ne.go index 88cf3d5d..a92b935d 100644 --- a/features/cm/ne.go +++ b/features/cm/ne.go @@ -50,8 +50,21 @@ const ( NEStatusMaintain = 3 ) -func init() { +var client = resty.New() +func init() { + /* + client. + SetTimeout(10 * time.Second). + SetRetryCount(1). + SetRetryWaitTime(1 * time.Second). + SetRetryMaxWaitTime(2 * time.Second). + SetRetryAfter(func(client *resty.Client, resp *resty.Response) (time.Duration, error) { + return 0, errors.New("quota exceeded") + }) + */ + client. + SetTimeout(time.Duration(1 * time.Second)) } func GetNeInfo(w http.ResponseWriter, r *http.Request) { @@ -76,7 +89,7 @@ func GetNeInfo(w http.ResponseWriter, r *http.Request) { neInfo, err := dborm.XormGetNeInfo(neType, neId) if err != nil { log.Error("dborm.XormGetNeInfo is failed:", err) - services.ResponseInternalServerError500DatabaseOperationFailed(w) + services.ResponseInternalServerError500ProcessError(w, err) return } @@ -163,7 +176,6 @@ func PostNeInfo(w http.ResponseWriter, r *http.Request) { Dn: neInfo.Dn, } body, _ = json.Marshal(omcNeConfig) - client := resty.New() response, err := client.R(). EnableTrace(). SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}). @@ -239,7 +251,7 @@ func PutNeInfo(w http.ResponseWriter, r *http.Request) { affected, err := dborm.XormUpdateNeInfo(neInfo) if err != nil { log.Error("Failed to update Ne info:", err) - services.ResponseInternalServerError500DatabaseOperationFailed(w) + services.ResponseInternalServerError500ProcessError(w, err) return } @@ -265,7 +277,6 @@ func PutNeInfo(w http.ResponseWriter, r *http.Request) { Dn: neInfo.Dn, } body, _ = json.Marshal(omcNeConfig) - client := resty.New() response, err := client.R(). EnableTrace(). SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}). @@ -286,7 +297,7 @@ func PutNeInfo(w http.ResponseWriter, r *http.Request) { affected, err := dborm.XormUpdateNeInfo(neInfo) if err != nil { log.Error("Failed to dborm.XormUpdateNeInfo:", err) - services.ResponseInternalServerError500DatabaseOperationFailed(w) + services.ResponseInternalServerError500ProcessError(w, err) return } else if affected <= 0 { log.Infof("Not record affected to insert ne_info") @@ -336,7 +347,7 @@ func DeleteNeInfo(w http.ResponseWriter, r *http.Request) { neInfo, err = dborm.XormGetNeInfo(neInfo.NeType, neInfo.NeId) if err != nil || neInfo == nil { log.Error("Failed to delete Ne info:", err) - services.ResponseInternalServerError500DatabaseOperationFailed(w) + services.ResponseInternalServerError500ProcessError(w, err) return } log.Debug("NE info:", neInfo) @@ -346,7 +357,7 @@ func DeleteNeInfo(w http.ResponseWriter, r *http.Request) { affected, err := dborm.XormDeleteNeInfo(neInfo) if err != nil { log.Error("Failed to delete Ne info:", err) - services.ResponseInternalServerError500DatabaseOperationFailed(w) + services.ResponseInternalServerError500ProcessError(w, err) return } @@ -368,7 +379,6 @@ func IsActiveNF(neInfo *dborm.NeInfo) bool { requestURI := fmt.Sprintf(config.UriPrefix+"/systemManagement/v1/elementType/%s/objectType/systemState", strings.ToLower(neInfo.NeType)) - client := resty.New() response, err := client.R(). EnableTrace(). SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}). @@ -376,6 +386,7 @@ func IsActiveNF(neInfo *dborm.NeInfo) bool { Get(hostUri + requestURI) if err != nil { log.Error("Failed to Get:", err) + return false } switch response.StatusCode() { @@ -410,7 +421,7 @@ func ExportCmFromNF(w http.ResponseWriter, r *http.Request) { neInfo, err := dborm.XormGetNeInfo(neType, neId) if err != nil { log.Errorf("Failed to get ne_info:", err) - services.ResponseInternalServerError500DatabaseOperationFailed(w) + services.ResponseInternalServerError500ProcessError(w, err) return } log.Debug("neInfo:", neInfo) @@ -576,7 +587,7 @@ func ImportCmToNF(w http.ResponseWriter, r *http.Request) { neInfo, err := dborm.XormGetNeInfo(neType, neId) if err != nil { log.Errorf("Failed to get ne_info:", err) - services.ResponseInternalServerError500DatabaseOperationFailed(w) + services.ResponseInternalServerError500ProcessError(w, err) return } log.Debug("neInfo:", neInfo) @@ -817,7 +828,7 @@ func PostNeServiceAction(w http.ResponseWriter, r *http.Request) { neInfo, err := dborm.XormGetNeInfo(neType, neId) if err != nil { log.Error("Failed to get ne_info:", err) - services.ResponseInternalServerError500DatabaseOperationFailed(w) + services.ResponseInternalServerError500ProcessError(w, err) return } log.Debug("neInfo:", neInfo) @@ -903,7 +914,7 @@ func PostNeInstanceAction(w http.ResponseWriter, r *http.Request) { neInfo, err := dborm.XormGetNeInfo(neType, neId) if err != nil { log.Errorf("Failed to get ne_info:", err) - services.ResponseInternalServerError500DatabaseOperationFailed(w) + services.ResponseInternalServerError500ProcessError(w, err) return } log.Debug("neInfo:", neInfo) diff --git a/lib/dborm/dborm.go b/lib/dborm/dborm.go index a909d870..bc6586cb 100644 --- a/lib/dborm/dborm.go +++ b/lib/dborm/dborm.go @@ -200,12 +200,12 @@ func XormGetNeInfo(neType string, neId string) (*NeInfo, error) { log.Debug("XormGetNeInfo processing... ") neInfo := new(NeInfo) - has, err := xEngine.Where("status='0' and ne_type=? and ne_id=?", strings.ToUpper(neType), neId).Get(neInfo) + has, err := xEngine.Where("status in ('0','3') and ne_type=? and ne_id=?", strings.ToUpper(neType), neId).Get(neInfo) if err != nil { log.Error("Failed to get table ne_info from database:", err) return nil, err - } else if has == false { - log.Infof("Not found ne_info from database, status='0', neType=%s, neId=%s", neType, neId) + } else if !has { + log.Infof("Not found ne_info from database, status in ('0','3'), neType=%s, neId=%s", neType, neId) return nil, nil } @@ -217,11 +217,11 @@ func XormGetNeInfoByRmUID(neType string, rmUID string) (*NeInfo, error) { log.Debug("XormGetNeInfoByRmUID processing... ") neInfo := new(NeInfo) - has, err := xEngine.Where("status='0' and ne_type=? and rm_uid=?", strings.ToUpper(neType), rmUID).Get(neInfo) + has, err := xEngine.Where("status in ('0','3') and ne_type=? and rm_uid=?", strings.ToUpper(neType), rmUID).Get(neInfo) if err != nil { log.Error("Failed to get table ne_info from database:", err) return nil, err - } else if has == false { + } else if !has { log.Infof("Not found ne_info from database, status='0', neType=%s, neId=%s", neType, rmUID) return nil, nil } @@ -234,7 +234,7 @@ func XormGetAllNeInfo(nes *[]NeInfo) (*[]NeInfo, error) { log.Debug("XormGetAllNeInfo processing... ") ne := new(NeInfo) - rows, err := xEngine.Table("ne_info").Where("status='0'").Rows(ne) + rows, err := xEngine.Table("ne_info").Where("status in ('0','3')").Rows(ne) if err != nil { log.Error("Failed to get table ne_info from database:", err) return nil, err @@ -256,7 +256,7 @@ func XormGetNeInfoByNeType(neType string, nes *[]NeInfo) error { log.Debug("XormGetNeInfoByNeType processing... ") ne := new(NeInfo) - rows, err := xEngine.Table("ne_info").Where("status='0' and ne_type=?", neType).Rows(ne) + rows, err := xEngine.Table("ne_info").Where("status in ('0','3') and ne_type=?", neType).Rows(ne) if err != nil { log.Error("Failed to get table ne_info from database:", err) return err @@ -283,7 +283,7 @@ func XormInsertNeInfo(neInfo *NeInfo) (int64, error) { xSession := xEngine.NewSession() defer xSession.Close() ex, _ := xEngine.Table("ne_info").Where("status = '1' and ne_type = ? and ne_id = ?", neInfo.NeType, neInfo.NeId).Exist() - if ex == true { + if ex { neInfo.Status = 0 affected, err = xSession.Where("ne_type = ? and ne_id = ?", neInfo.NeType, neInfo.NeId).Update(neInfo) } else {