VOL-1967 move api-server to separate repository
Current with voltha-go acf0adaf2d91ae72b55192cc8a939e0485918d16
Change-Id: I000ea6be0789e20c922bd671562b58a7120892ae
diff --git a/arouter.json b/arouter.json
new file mode 100644
index 0000000..debfcd7
--- /dev/null
+++ b/arouter.json
@@ -0,0 +1,290 @@
+{
+ "servers": [
+ {
+ "name": "grpc_command",
+ "port": 55555,
+ "address": "localhost",
+ "type": "grpc",
+ "routers": [
+ {
+ "_TODO": "Suport a router list, remove the package and service from the router",
+ "package": "voltha",
+ "service": "VolthaService",
+ "router": "vcore"
+ }
+ ]
+ }
+ ],
+ "routers": [
+ {
+ "name": "vcore",
+ "package": "voltha",
+ "service": "VolthaService",
+ "proto_descriptor": "vendor/github.com/opencord/voltha-protos/go/voltha.pb",
+ "routes": [
+ {
+ "name": "dev_manager",
+ "type": "rpc_affinity_message",
+ "association": "round_robin",
+ "routing_field": "id",
+ "backend_cluster": "vcore",
+ "_COMMENT": "Methods are naturally southbound affinity binding unless otherwise specified below",
+ "methods": [
+ "CreateDevice",
+ "GetCoreInstance",
+ "EnableLogicalDevicePort",
+ "DisableLogicalDevicePort",
+ "EnableDevice",
+ "DisableDevice",
+ "RebootDevice",
+ "DeleteDevice",
+ "DownloadImage",
+ "CancelImageDownload",
+ "ActivateImageUpdate",
+ "RevertImageUpdate",
+ "UpdateDevicePmConfigs",
+ "CreateAlarmFilter",
+ "UpdateAlarmFilter",
+ "DeleteAlarmFilter",
+ "SelfTest"
+ ],
+ "_COMMENT": "If a method is northbound affinity binding then association is used to route",
+ "_COMMENT": "but affinity is not set southbound but only based on the response",
+ "_COMMENT": "Methods here MUST be specified above, this overrides thier default beahvior",
+ "nb_binding_methods": [
+ "CreateDevice"
+ ],
+ "_TODO": "Overrides not implemented yet, config ignored",
+ "overrides": [
+ {
+ "methods": [
+ "abc",
+ "def"
+ ],
+ "routing_field": "id"
+ },
+ {
+ "methods": [
+ "ghi",
+ "jkl"
+ ]
+ },
+ {
+ "method": "mno",
+ "routing_field": "id"
+ },
+ {
+ "method": "pqr"
+ }
+ ]
+ },
+ {
+ "name": "logger",
+ "proto_descriptor": "voltha.pb",
+ "type": "source",
+ "routing_field": "component_name",
+ "backend_cluster": "ro_vcore",
+ "methods": [
+ "UpdateLogLevel",
+ "GetLogLevels"
+ ]
+ },
+ {
+ "name": "read_only",
+ "type": "round_robin",
+ "association": "round_robin",
+ "backend_cluster": "ro_vcore",
+ "methods": [
+ "ListDevicePorts",
+ "ListDevicePmConfigs",
+ "GetImages",
+ "GetImageDownloadStatus",
+ "GetImageDownload",
+ "ListImageDownloads",
+ "ListDeviceFlows",
+ "ListDeviceFlowGroups",
+ "ListLogicalDeviceFlows",
+ "ListLogicalDeviceFlowGroups",
+ "ListDevices",
+ "GetDevice",
+ "ListLogicalDevices",
+ "GetLogicalDevices",
+ "GetDeviceType",
+ "GetDeviceGroup",
+ "GetLogicalDevice",
+ "GetAlarmFilter",
+ "ListLogicalDevicePorts",
+ "GetLogicalDevicePort"
+ ]
+ },
+ {
+ "name": "dev_manager_ofagent",
+ "type": "binding",
+ "_association": "round_robin",
+ "binding": {
+ "type": "header",
+ "field": "voltha_backend_name",
+ "method": "Subscribe",
+ "association": "round_robin"
+ },
+ "backend_cluster": "vcore",
+ "methods": [
+ "StreamPacketsOut",
+ "ReceivePacketsIn",
+ "ReceiveChangeEvents",
+ "Subscribe",
+ "UpdateLogicalDeviceFlowTable",
+ "UpdateLogicalDeviceFlowGroupTable",
+ "GetLogicalDevice",
+ "GetLogicalDevicePort",
+ "EnableLogicalDevicePort",
+ "DisableLogicalDevicePort",
+ "ListLogicalDevices",
+ "ListLogicalDeviceFlows",
+ "ListLogicalDeviceFlowGroups",
+ "ListLogicalDevicePorts"
+ ],
+ "_TODO": "Overrides not implemented yet, config ignored",
+ "overrides": [
+ {
+ "methods": [
+ "abc",
+ "def"
+ ],
+ "routing_field": "id"
+ },
+ {
+ "methods": [
+ "ghi",
+ "jkl"
+ ]
+ },
+ {
+ "method": "mno",
+ "routing_field": "id"
+ },
+ {
+ "method": "pqr"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "backend_clusters": [
+ {
+ "name": "vcore",
+ "backends": [
+ {
+ "name": "vcore1",
+ "type": "active_active",
+ "association": {
+ "strategy": "serial_number",
+ "location": "header",
+ "_TODO": "The key below needs to be implemented, currently hard coded",
+ "key": "voltha_serial_number"
+ },
+ "connections": [
+ {
+ "name": "vcore11",
+ "addr": "voltha-rw-core-11.voltha.svc.cluster.local",
+ "port": "50057"
+ },
+ {
+ "name": "vcore12",
+ "addr": "voltha-rw-core-12.voltha.svc.cluster.local",
+ "port": "50057"
+ }
+ ]
+ },
+ {
+ "name": "vcore2",
+ "type": "active_active",
+ "association": {
+ "strategy": "serial_number",
+ "location": "header",
+ "_TODO": "The key below needs to be implemented, currently hard coded",
+ "key": "voltha_serial_number"
+ },
+ "connections": [
+ {
+ "name": "vcore21",
+ "addr": "voltha-rw-core-21.voltha.svc.cluster.local",
+ "port": "50057"
+ },
+ {
+ "name": "vcore22",
+ "addr": "voltha-rw-core-22.voltha.svc.cluster.local",
+ "port": "50057"
+ }
+ ]
+ },
+ {
+ "name": "vcore3",
+ "type": "active_active",
+ "association": {
+ "strategy": "serial_number",
+ "location": "header",
+ "_TODO": "The key below needs to be implemented, currently hard coded",
+ "key": "voltha_serial_number"
+ },
+ "connections": [
+ {
+ "name": "vcore31",
+ "addr": "voltha-rw-core-31.voltha.svc.cluster.local",
+ "port": "50057"
+ },
+ {
+ "name": "vcore32",
+ "addr": "voltha-rw-core-32.voltha.svc.cluster.local",
+ "port": "50057"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ro_vcore",
+ "backends": [
+ {
+ "name": "ro_vcore1",
+ "type": "server",
+ "connections": [
+ {
+ "name": "ro_vcore11",
+ "addr": "voltha-ro-core-0.voltha-ro-core.voltha.svc.cluster.local",
+ "port": "50057"
+ }
+ ]
+ },
+ {
+ "name": "ro_vcore2",
+ "type": "server",
+ "connections": [
+ {
+ "name": "ro_vcore21",
+ "addr": "voltha-ro-core-1.voltha-ro-core.voltha.svc.cluster.local",
+ "port": "50057"
+ }
+ ]
+ },
+ {
+ "name": "ro_vcore3",
+ "type": "server",
+ "connections": [
+ {
+ "name": "ro_vcore31",
+ "addr": "voltha-ro-core-2.voltha-ro-core.voltha.svc.cluster.local",
+ "port": "50057"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "api": {
+ "_comment": "If this isn't defined then no api is available for dynamic configuration and queries",
+ "address": "localhost",
+ "port": 55554
+ }
+}