24 KiB
EMS restful interfaces
1. 状态管理
-
URI:
/api/rest/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/systemState?ne_id=0说明:
** elementTypeValue=all/smf/amf/.. ** all: 表示所有配置的NF(ems前端->后端) ** smf:查询smf网元 ** 参数ne_id指网元标识,指定ne_id条件表示查询该网元系统状态(ems前端->后端需要带该参数) -
Method:
GET
-
Return:
"data": [ { "AMF_0": { "error": { "errorCode": "1", "errorInfo": "Internal server error, NF connnect refused" }, "ipAddress": "192.168.2.188" } }, { "SMF_0": { "ipAddress": "192.168.1.232", "systemState": { "capability": 10000, "cpuUsage": { "nfCpuUsage": 2, "sysCpuUsage": 52 }, "diskSpace": { "partitionInfo": [ { "total": 1920, "used": 0 }, { "total": 393, "used": 13 }, { "total": 48700, "used": 32431 }, { "total": 1965, "used": 0 }, { "total": 5, "used": 0 }, { "total": 1965, "used": 0 }, { "total": 55, "used": 55 }, { "total": 63, "used": 63 }, { "total": 91, "used": 91 }, { "total": 49, "used": 49 }, { "total": 55, "used": 55 }, { "total": 73, "used": 73 }, { "total": 91, "used": 91 }, { "total": 1475, "used": 206 }, { "total": 49, "used": 49 }, { "total": 393, "used": 13 }, { "total": 393, "used": 0 }, { "total": 73, "used": 73 }, { "total": 63, "used": 63 } ], "partitionNum": 19 }, "expiryDate": "2025-02-28", "memUsage": { "nfUsedMem": 163992, "sysMemUsage": 1345, "totalMem": 4025608 }, "serialNum": "13740126", "version": "1.5.3.2" } } }, { "SMF_1": { "ipAddress": "192.168.1.173", "systemState": { "capability": 10000, "cpuUsage": { "nfCpuUsage": 0, "sysCpuUsage": 69 }, "diskSpace": { "partitionInfo": [ { "total": 3966, "used": 0 }, { "total": 797, "used": 0 }, { "total": 200559, "used": 5968 }, { "total": 3987, "used": 0 }, { "total": 5, "used": 0 }, { "total": 3987, "used": 0 }, { "total": 797, "used": 0 } ], "partitionNum": 7 }, "expiryDate": "2024-12-31", "memUsage": { "nfUsedMem": 212136, "sysMemUsage": 720, "totalMem": 8167360 }, "serialNum": "13740272", "version": "1.5.3.3" } } } ] }
2. 数据库管理(内部接口)
2.1 查询(select)
-
URI:
/api/rest/databaseManagement/{apiVersion}/{databaseName}/{tableName}?SQL={SQL}|WHERE={WHERE} -
Method:
GET
-
Params:
参数关键字大小写敏感
-
WHERE
WHERE=id=1 and parent_id=0
说明:
** 表名为tableName带的表名 -
SQL
SQL=select count(*) from sysmenu&SQL=SELECT * FROM menu
说明:
** 支持多个SQL查询 ** SQL只能是查询语句 ** tableName带的表名忽略 ** 特殊字符需要转义,如"%"需转义为"%25"
-
-
Return:
{ "data": [ { "tableName1": [ { "column1": value1, "column2": value2, "column3": value3, ... } ] }, { "tableName2": [ { "column1": value11, "column2": value12, "column3": value13, ... }, { "column1": value21, "column2": value22, "column3": value23, ... } ] } ] } -
Example:
-
WHERE:
/api/rest/databaseManagement/v1/omc_db/menu?WHERE=id=1{ "data": [ { "menu": [ { "href": "111", "icon": "11", "id": 1, "parent_id": 0, "remark": "0", "title": "test" } ] } ] } -
SQL:
/api/rest/databaseManagement/v1/omc_db/menu?SQL=select count(*) from sysmenu&SQL=SELECT * FROM menu{ "data": [ { "sysmenu": [ { "count(*)": 4 } ] }, { "menu": [ { "href": "111", "icon": "11", "id": 1, "parent_id": 0, "remark": "0", "title": "test" }, { "href": "31", "icon": "313", "id": 2, "parent_id": 1, "remark": "0", "title": "test1" } ] } ] }
-
2.2 增加(insert)
-
URI:
/api/rest/databaseManagement/{apiVersion}/{databaseName}/{tableName} -
Method:
POST
-
Body:
参数关键字大小写敏感
{ "menu": [ { "id": 3, "title": "test3", "icon": "113", "href": "1113", "parent_id": 2, "remark": "0" } ] }说明:
** 支持多条插入数据 ** 支持多个表插入数据 ** tableName带的表名忽略 -
Return:
{ "data": { "affected rows": 1 } }
2.3 修改(update)
-
URI:
/api/rest/databaseManagement/{apiVersion}/{databaseName}/{tablename}?WHERE={where} -
Method:
PUT
-
Params:
- WHERE
参数关键字大小写敏感 exp: WHERE=id=1
- WHERE
-
Body:
{ "menu": [ { "title": "test3", "icon": "113", "href": "1113", } ] } -
Return:
{ "data": [ { "tableName1": [ { "column1": value1, "column2": value2, "column3": value3, ... } ] }, { "tableName2": [ { "column1": value11, "column2": value12, "column3": value13, ... }, { "column1": value21, "column2": value22, "column3": value23, ... } ] } ] }
2.4 删除(delete)
-
URI:
/api/rest/databaseManagement/{apiVersion}/{databaseName}/{tablename}?WHERE={where} -
Method:
DELETE
-
Params:
- WHERE
参数关键字大小写敏感 exp: WHERE=id=1
- WHERE
-
Body:
NA
-
Return:
Code: 200/204
3. 配置管理
3.1 参数配置表
-
类型定义(type)
- string
filter指定字符串长度,如:"filter": "6~100" , 字符串的长度范围,如果单个数字表示最大长度
- ipv4
filter忽略
- ipv6
filter忽略
- int
filter指定整型数的范围,如:"filter": "100~999"
- enum
"filter": '{"0": "http", "1": "https"}'
- bool
"filter": '{"0": "false", "1": "true"}'
- regex
filter为正则表达式
- string
-
Example
UDM: system: display: "System" list: - name: "serviceIP" type: "ipv4" value: "172.16.5.140" access: "read-write" filter: '' display: "Service IP" comment: "" - name: "servicePort" type: "int" value: "8080" access: "read-write" filter: "0~65535" display: "Service Port" comment: "0~65535" subsSmfSelection: display: "Subs Smf Selection" array: - name: "index" type: "int" value: "0" access: "read-write" filter: '0~15' display: "Index" comment: "0~15" - name: "name" type: "string" value: 'def_ambr' access: "read-write" filter: '^.{1,32}$' display: "Name" comment: "0~32" - name: "snssai" type: "string" value: '1-000001' access: "read-write" filter: '^\d{1,3}[A-Fa-f0-9]{6}$' display: "Snssai" comment: "" - name: "dnnList" type: "int" value: '0' access: "read-write" filter: '0~3' display: "Dnn List" comment: "" array: - name: "index" type: "int" value: "0" access: "read-write" filter: '0~15' display: "index" comment: "0~15" - name: "dnn" type: "string" value: 'cmnet' access: "read-write" filter: '^.{1,32}$' display: "Dnn" comment: "0~32" - name: "defaultDnnInd" type: "bool" value: 'true' access: "read-write" filter: 'false;true;' display: "default Dnn Indicator" comment: ""完整文件具体请参考 udm_param_config.yaml
3.2 获取参数
-
URI
/api/rest/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/config/{paraName}?ne_id=0&loc={index0}/{paraName1}/{index1}/...说明
apiVersion: "v1" elementTypeValue: udm, smf, amf... 网元类型 udm paraName: system, subsUEAmbr, subsSmfSelection ... 非array的参数,忽略loc -
Params
- loc 多层表的定位信息
- ne_id 网元标识 (ems前端->后端需要带该参数)
-
Method
GET
-
Return
/api/rest/systemManagement/v1/elementType/udm/objectType/config/system{ "data": [ { "serviceIP": "172.16.5.140", "servicePort": "8080", "...": "..." } ] }/api/rest/systemManagement/v1/elementType/udm/objectType/config/subsSmfSelection?loc=1/dnnList{ "data": [ { "index": "0", "dnn": "cmnet", "...": "..." }, { "index": "1", "dnn": "ims", "...": "..." } ] }
3.3 配置参数
-
URI
/api/rest/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/config/{paraName}?ne_id=0&loc={index0}/{paraName1}/{index1} -
Params
- loc 多层表的定位信息
- ne_id 网元标识 (ems前端->后端需要带该参数)
-
Method
POST/PUT/DELETE
说明:
单层表不支持POST/DELETE操作 -
Body
{ "serviceIP": "172.16.5.140", "servicePort": "8080", "...": "..." }说明:
DELETE操作忽略Body
3.4 创建网元
-
URI
/api/rest/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/neInfo -
Params
N/A
-
Method
POST
-
Body
{ }
4 跟踪管理
4.1 订阅管理
-
创建订阅
-
URI
/api/rest/traceManagement/{apiVersion}/subscriptions -
Method
POST
-
Body
{ "id": "1", "filter": "...", "callbackUrl": "https://x.x.x.x:x/api/rest/traceManagement/v1/events" } -
Return
{}
-
-
查询订阅
-
URI 查询单个订阅:
/api/rest/traceManagement/{apiVersion}/subscriptions/{id}查询所有订阅:
/api/rest/traceManagement/{apiVersion}/subscriptions -
Method
GET
-
Body
null
-
Return
{ "data": [ { "id": "1", "filter": "...", "callbackUrl": "https://x.x.x.x:x/api/rest/traceManagement/v1/events" } ] }
-
-
删除订阅
-
URI
/api/rest/traceManagement/{apiVersion}/subscriptions/{id} -
Method
DELETE
-
Body
null
-
4.2 事件上报
-
事件上报
-
URI
/api/rest/traceManagement/{apiVersion}/events -
Method
POST
-
Body
{ "data": [ { "id": ["1", "2"], "key1": "", "key2": "...", "content": "content0......" }, { "id": ["1", "3"], "key1": "", "key2": "...", "content": "content1......" } ] }
-
5 性能管理
5.1 任务管理
-
URI
/api/rest/performanceManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/measureTask?id={taskId1}&id={taskId2} -
Method
POST/PUT/DELETE/PATCH
-
Params
taskId=1&taskId=2
- POST: 增加测量任务,激活任务,不带id参数,id在body
- PUT: 修改测量任务,激活任务,不带id参数,id在body
- DELETE:删除测量任务,不需要带body,带id参数,可带多个
- PATCH: 暂停测量任务,不需要带body,带id参数,可带多个
-
Relation NF
OMC -> NF/NF -> OMC
-
Body
下发测量任务的报文结构
type MeasureTask struct { Tasks []struct { Id int `json:"Id"` StartTime string `json:"StartTime"` EndTime string `json:"EndTime"` Schedule struct { Type string `json:"Type"` // 计划类型:Weekly/Monthly Days []int `json:"Days"` // Weekly: [0,1,...5,6],0~6表示星期日~星期六, Monthly: [1,2,3,...,30,31]一个月的几天 Periods []struct { Start string `json:"Start"` // 零点或者零点加测量粒度的整数倍 00:15:00 End string `json:"End"` // 零点加测量粒度的整数倍 08:45:00, 16:15:00 } `json:"Periods"` } `json:"Schedule"` GranulOption string `json:"GranulOption"` // 测量粒度选项:15M/30M/60M/24H KPISet []struct { Code string `json:"Code"` // 统计编码 如:SMFHA01 KPIs []string `json:"KPIs` // 指标项集合 ["SMF.AttCreatePduSession", "SMF.AttCreatePduSession._Dnn"] } `json:"KPISet"` } `json:"Task"` } -
Return
5.2 测量数据上报
-
URI
/api/rest/performanceManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/measureReport -
Method
POST
-
Body
网元返回测量数据的报文结构
type MeasureReport struct { Id int `json:"Id"` Timestamp string `json:"TimeStamp"` Report struct { Period struct { StartTime string `json:"StartTime"` EndTime string `json:"EndTime"` } `json:"Period"` Datas []struct { Code string `json:"Code"` // 统计编码 如:SMFHA01 KPIs []struct { KPIID string `json:"KPIID"` // 指标项, 如: SMF.AttCreatePduSession._Dnn KPIValues []struct { Name string `json:"Name"` // 单个的写"Total", 或者指标项有多个测量项,如Dnn的名称写对应的Dnn"cmnet"/"ims" Value int `json:"Value"` } `json:"KPIValues"` } `json:"KPIs"` } `json:"Datas"` } `json:"Report"` }
5.3 黄金指标上报
-
URI
/api/rest/performanceManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/kpiReport/{index} -
Method
GET
-
Body
type KpiReport struct { Timestamp string `json:"TimeStamp"` Task struct { Period struct { StartTime string `json:"StartTime"` EndTime string `json:"EndTime"` } `json:"Period"` NE struct { NEName string `json:"NEName"` RmUID string `json:"rmUID"` NeType string `json:"NeType"` KPIs []struct { KPIID string `json:"KPIID"` Value int `json:"Value"` Err string `json:"Err"` } `json:"KPIs"` } `json:"NE"` } `json:"Task"` }
6 故障管理
6.1 告警上报
-
URI
/api/rest/faultManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/alarms -
Method
POST
-
Relation NF
NF->OMC
-
Body
type Alarm struct { AlarmSeq int `json:"alarmSeq"` AlarmId string `json:"alarmId"` NeId string `json:"neId"` AlarmCode int `json:"alarmCode"` AlarmTitle string `json:"alarmTitle"` EventTime string `json:"eventTime"` AlarmType string `json:"alarmType"` OrigSeverity string `json:"origSeverity"` PVFlag string `json:"pvFlag"` NeName string `json:"neName"` NeType string `json:"neType"` ObjectName string `json:"objectName"` LocationInfo string `json:"locationInfo"` Province string `json:"province"` AlarmStatus int `json:"alarmStatus"` SpecificProblem string `json:"specificProblem"` SpecificProblemID string `json:"specificProblemID"` AddInfo string `json:"addInfo"` }
6.2 获取网元告警
-
URI
/api/rest/faultManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/alarms -
Method
GET
-
Relationship
OMC->NF
-
Body
n/a
-
Return
type Alarms struct { Alarms []struct { AlarmSeq int `json:"alarmSeq"` AlarmId string `json:"alarmId"` NeId string `json:"neId"` AlarmCode int `json:"alarmCode"` AlarmTitle string `json:"alarmTitle"` EventTime string `json:"eventTime"` AlarmType string `json:"alarmType"` OrigSeverity string `json:"origSeverity"` PVFlag string `json:"pvFlag"` NeName string `json:"neName"` NeType string `json:"neType"` ObjectName string `json:"objectName"` LocationInfo string `json:"locationInfo"` Province string `json:"province"` AlarmStatus int `json:"alarmStatus"` SpecificProblem string `json:"specificProblem"` SpecificProblemID string `json:"specificProblemID"` AddInfo string `json:"addInfo"` } `json:"Alarms"` }