ne service and instance
This commit is contained in:
@@ -329,6 +329,20 @@ udm:
|
||||
filter: "{\"0\":\"IPV4\",\"1\":\"IPV6\",\"2\":\"IPV4V6\",\"3\":\"Ethernet\",\"4\":\"Unstruction\",\"5\":\"IPV4 & IPV6\",\"6\":\"IPV4 & IPV4V6\",\"7\":\"IPV6 & IPV4V6\",\"8\":\"IPV4 & IPV6 & IPV4V6\"}"
|
||||
display: "Allowed PDU Session Types"
|
||||
comment: ""
|
||||
- name: "5qi"
|
||||
type: "int"
|
||||
value: "9"
|
||||
access: "read-write"
|
||||
filter: "0~255"
|
||||
display: "5qi"
|
||||
comment: ""
|
||||
- name: "priorityLevel"
|
||||
type: "int"
|
||||
value: "9"
|
||||
access: "read-write"
|
||||
filter: "1~127"
|
||||
display: "Priority Level"
|
||||
comment: ""
|
||||
- name: "defaultSSCmode"
|
||||
type: "enum"
|
||||
value: "0"
|
||||
@@ -399,20 +413,6 @@ udm:
|
||||
filter: "{\"0\":\"Null\",\"1\":\"Required\",\"2\":\"Preferred\",\"3\":\"Not Needed\"}"
|
||||
display: "User Plane Confidentiality"
|
||||
comment: ""
|
||||
- name: "5qi"
|
||||
type: "int"
|
||||
value: "9"
|
||||
access: "read-write"
|
||||
filter: "0~255"
|
||||
display: "5qi"
|
||||
comment: ""
|
||||
- name: "priorityLevel"
|
||||
type: "int"
|
||||
value: "9"
|
||||
access: "read-write"
|
||||
filter: "1~127"
|
||||
display: "Priority Level"
|
||||
comment: ""
|
||||
- name: "arpPriorityLevel"
|
||||
type: "int"
|
||||
value: "6"
|
||||
@@ -517,6 +517,34 @@ udm:
|
||||
filter: "{\"0\":\"IPV4\",\"1\":\"IPV6\",\"2\":\"IPV4V6\",\"3\":\"IPV4 or IPV6\"}"
|
||||
display: "Pdn Type"
|
||||
comment: ""
|
||||
- name: "qci"
|
||||
type: "int"
|
||||
value: '9'
|
||||
access: "read-write"
|
||||
filter: '1~255'
|
||||
display: "qci"
|
||||
comment: "1~255"
|
||||
- name: "arpPriorityLevel"
|
||||
type: "int"
|
||||
value: '8'
|
||||
access: "read-write"
|
||||
filter: '1~127'
|
||||
display: "ARP Priority"
|
||||
comment: "1~127"
|
||||
- name: "arpPreemptCap"
|
||||
type: "enum"
|
||||
value: '0'
|
||||
access: "read-write"
|
||||
filter: "{\"0\":\"Not Preempt\",\"1\":\"May Preempt\"}"
|
||||
display: "ARP Preemption Capability"
|
||||
comment: ""
|
||||
- name: "arpPreemptVuln"
|
||||
type: "enum"
|
||||
value: '0'
|
||||
access: "read-write"
|
||||
filter: "{\"0\":\"Not Preemptable\",\"1\":\"Preemptable\"}"
|
||||
display: "ARP Preemption Vulnerability"
|
||||
comment: ""
|
||||
- name: "contextIdentifier"
|
||||
type: "int"
|
||||
value: '1'
|
||||
@@ -559,34 +587,6 @@ udm:
|
||||
filter: '4~4'
|
||||
display: "Charging Characteristic"
|
||||
comment: "4~4"
|
||||
- name: "qci"
|
||||
type: "int"
|
||||
value: '9'
|
||||
access: "read-write"
|
||||
filter: '1~255'
|
||||
display: "qci"
|
||||
comment: "1~255"
|
||||
- name: "arpPriorityLevel"
|
||||
type: "int"
|
||||
value: '8'
|
||||
access: "read-write"
|
||||
filter: '1~127'
|
||||
display: "ARP Priority"
|
||||
comment: "1~127"
|
||||
- name: "arpPreemptCap"
|
||||
type: "enum"
|
||||
value: '0'
|
||||
access: "read-write"
|
||||
filter: "{\"0\":\"Not Preempt\",\"1\":\"May Preempt\"}"
|
||||
display: "ARP Preemption Capability"
|
||||
comment: ""
|
||||
- name: "arpPreemptVuln"
|
||||
type: "enum"
|
||||
value: '0'
|
||||
access: "read-write"
|
||||
filter: "{\"0\":\"Not Preemptable\",\"1\":\"Preemptable\"}"
|
||||
display: "ARP Preemption Vulnerability"
|
||||
comment: ""
|
||||
applicationServer:
|
||||
display: "Application Server"
|
||||
array:
|
||||
@@ -633,7 +633,7 @@ udm:
|
||||
display: "Rep Data Size Limit"
|
||||
comment: "0~65535"
|
||||
- name: "includeRegisterRequest"
|
||||
type: "enum"
|
||||
type: "bool"
|
||||
value: 'false'
|
||||
access: "read-write"
|
||||
filter: 'false;true;'
|
||||
|
||||
@@ -28,11 +28,19 @@ var (
|
||||
UriNeInfo = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/neInfo"
|
||||
// NE backup file
|
||||
UriNeCmFile = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/{neType}/neBackup/{fileName}"
|
||||
// service action uri, action: start/stop/restart
|
||||
UriNeService = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/service/{action}"
|
||||
// nf instance action uri, action: start/stop/restart
|
||||
UriNeInstance = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/instance/{action}"
|
||||
|
||||
CustomUriParamOmcNeConfig = config.UriPrefix + "/systemManagement/v1/elementType/%s/objectType/config/omcNeConfig"
|
||||
CustomNeCmUri = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/cm"
|
||||
CustomUriNeInfo = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/neInfo"
|
||||
CustomUriNeCmFile = config.UriPrefix + "/systemManagement/{apiVersion}/{neType}/neBackup/{fileName}"
|
||||
// service action uri, action: start/stop/restart
|
||||
CustomUriNeService = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/service/{action}"
|
||||
// nf instance action uri, action: start/stop/restart
|
||||
CustomUriNeInstance = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/instance/{action}"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -737,3 +745,144 @@ func DeleteNeBackupFile(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
services.ResponseStatusOK204NoContent(w)
|
||||
}
|
||||
|
||||
func PostNeServiceAction(w http.ResponseWriter, r *http.Request) {
|
||||
log.Debug("PostNeServiceAction processing... ")
|
||||
|
||||
_, err := services.CheckFrontValidRequest(w, r)
|
||||
if err != nil {
|
||||
log.Error("Request error:", err)
|
||||
return
|
||||
}
|
||||
|
||||
vars := mux.Vars(r)
|
||||
neType := vars["elementTypeValue"]
|
||||
if neType == "" {
|
||||
log.Error("elementTypeValue is empty")
|
||||
services.ResponseNotFound404UriNotExist(w, r)
|
||||
return
|
||||
}
|
||||
//neTypeUpper := strings.ToUpper(neType)
|
||||
neTypeLower := strings.ToLower(neType)
|
||||
action := vars["action"]
|
||||
|
||||
neId := services.GetUriParamString(r, "ne_id", ",", false, false)
|
||||
|
||||
// neInfo := new(dborm.NeInfo)
|
||||
neInfo, err := dborm.XormGetNeInfo(neType, neId)
|
||||
if err != nil {
|
||||
log.Errorf("Failed to get ne_info:", err)
|
||||
services.ResponseInternalServerError500DatabaseOperationFailed(w)
|
||||
return
|
||||
}
|
||||
log.Debug("neInfo:", neInfo)
|
||||
|
||||
sshHost := fmt.Sprintf("%s@%s", config.GetYamlConfig().NE.User, neInfo.Ip)
|
||||
switch neTypeLower {
|
||||
case "omc":
|
||||
actionCmd := fmt.Sprintf("sudo %s/bin/omcsvc.sh %s", config.GetYamlConfig().NE.OmcDir, action)
|
||||
cmd := exec.Command("ssh", sshHost, actionCmd)
|
||||
out, err := cmd.CombinedOutput()
|
||||
log.Debugf("Exec output: %v", string(out))
|
||||
if err != nil {
|
||||
log.Error("Faile to execute ssh %s omc:", action, err)
|
||||
services.ResponseInternalServerError500ProcessError(w, err)
|
||||
return
|
||||
}
|
||||
case "ims":
|
||||
actionCmd := fmt.Sprintf("sudo ims-%s", action)
|
||||
cmd := exec.Command("ssh", sshHost, actionCmd)
|
||||
out, err := cmd.CombinedOutput()
|
||||
log.Debugf("Exec output: %v", string(out))
|
||||
if err != nil {
|
||||
log.Error("Faile to execute ssh sudo ims-%s command:", action, err)
|
||||
services.ResponseInternalServerError500ProcessError(w, err)
|
||||
return
|
||||
}
|
||||
default:
|
||||
actionCmd := fmt.Sprintf("sudo systemctl %s %s.service", action, neTypeLower)
|
||||
cmd := exec.Command("ssh", sshHost, actionCmd)
|
||||
out, err := cmd.CombinedOutput()
|
||||
log.Debugf("Exec output: %v", string(out))
|
||||
if err != nil {
|
||||
log.Error("Faile to execute ssh sudo systemctl command:", err)
|
||||
services.ResponseInternalServerError500ProcessError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
services.ResponseStatusOK204NoContent(w)
|
||||
}
|
||||
|
||||
func PostNeInstanceAction(w http.ResponseWriter, r *http.Request) {
|
||||
log.Debug("PostNeInstanceAction processing... ")
|
||||
|
||||
_, err := services.CheckFrontValidRequest(w, r)
|
||||
if err != nil {
|
||||
log.Error("Request error:", err)
|
||||
return
|
||||
}
|
||||
|
||||
vars := mux.Vars(r)
|
||||
neType := vars["elementTypeValue"]
|
||||
if neType == "" {
|
||||
log.Error("elementTypeValue is empty")
|
||||
services.ResponseNotFound404UriNotExist(w, r)
|
||||
return
|
||||
}
|
||||
//neTypeUpper := strings.ToUpper(neType)
|
||||
//neTypeLower := strings.ToLower(neType)
|
||||
action := vars["action"]
|
||||
|
||||
neId := services.GetUriParamString(r, "ne_id", ",", false, false)
|
||||
|
||||
// neInfo := new(dborm.NeInfo)
|
||||
neInfo, err := dborm.XormGetNeInfo(neType, neId)
|
||||
if err != nil {
|
||||
log.Errorf("Failed to get ne_info:", err)
|
||||
services.ResponseInternalServerError500DatabaseOperationFailed(w)
|
||||
return
|
||||
}
|
||||
log.Debug("neInfo:", neInfo)
|
||||
|
||||
sshHost := fmt.Sprintf("%s@%s", config.GetYamlConfig().NE.User, neInfo.Ip)
|
||||
switch action {
|
||||
case "poweron":
|
||||
actionCmd := "sudo poweron"
|
||||
cmd := exec.Command("ssh", sshHost, actionCmd)
|
||||
out, err := cmd.CombinedOutput()
|
||||
log.Debugf("Exec output: %v", string(out))
|
||||
if err != nil {
|
||||
log.Error("Faile to execute ssh %s omc:", action, err)
|
||||
services.ResponseInternalServerError500ProcessError(w, err)
|
||||
return
|
||||
}
|
||||
case "poweroff":
|
||||
actionCmd := "sudo poweroff"
|
||||
cmd := exec.Command("ssh", sshHost, actionCmd)
|
||||
out, err := cmd.CombinedOutput()
|
||||
log.Debugf("Exec output: %v", string(out))
|
||||
if err != nil {
|
||||
log.Error("Faile to execute ssh sudo poweroff:", err)
|
||||
services.ResponseInternalServerError500ProcessError(w, err)
|
||||
return
|
||||
}
|
||||
case "reboot":
|
||||
actionCmd := "sudo reboot"
|
||||
cmd := exec.Command("ssh", sshHost, actionCmd)
|
||||
out, err := cmd.CombinedOutput()
|
||||
log.Debugf("Exec output: %v", string(out))
|
||||
if err != nil {
|
||||
log.Error("Faile to execute ssh sudo reboot:", err)
|
||||
services.ResponseInternalServerError500ProcessError(w, err)
|
||||
return
|
||||
}
|
||||
default:
|
||||
log.Error("Faile to execute ssh sudo systemctl command:", err)
|
||||
services.ResponseInternalServerError500ProcessError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
services.ResponseStatusOK204NoContent(w)
|
||||
}
|
||||
|
||||
@@ -19,10 +19,8 @@ import (
|
||||
var (
|
||||
// parameter config management
|
||||
ParamConfigUri = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/config/{paraName}"
|
||||
ParamConfigUrl = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/config/{paraName}"
|
||||
|
||||
CustomParamConfigUri = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/config/{paraName}"
|
||||
CustomParamConfigUrl = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/config/{paraName}"
|
||||
)
|
||||
|
||||
func GetParamConfigFromNF(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
@@ -172,7 +172,10 @@ func init() {
|
||||
Register("POST", cm.CustomUriNeInfo, cm.PostNeInfo, nil)
|
||||
Register("PUT", cm.CustomUriNeInfo, cm.PutNeInfo, nil)
|
||||
Register("DELETE", cm.CustomUriNeInfo, cm.DeleteNeInfo, nil)
|
||||
|
||||
//ne service action handle
|
||||
Register("POST", cm.UriNeService, cm.PostNeServiceAction, nil)
|
||||
//ne service action handle
|
||||
Register("POST", cm.UriNeInstance, cm.PostNeInstanceAction, nil)
|
||||
// Post MML command to NF
|
||||
Register("POST", mml.UriMML, mml.PostMMLToNF, nil)
|
||||
Register("POST", mml.UriMMLDiscard, mml.PostMMLToNF, nil)
|
||||
|
||||
Reference in New Issue
Block a user