blob: 6d7b4a7d6a8cc175b7e6a316a85b7a13ebcfcd84 [file] [log] [blame]
/*
* Copyright 2022-present Open Networking Foundation
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// This implementation of database assumes that it is working for
// Open ONU adapter. Thus, it assumes some base path for all the
// database operations. For all database operations, the key passed is
// added to the database base path.
package database
import "fmt"
const (
// PresentVersion represnts the Present version
// Modify this as we give Major version releases
PresentVersion = "v1"
// PreviousVersion represnts the Previous version
PreviousVersion = "v1"
)
//These are present path where different database elements are store in database
//In case any of these paths change, update the present and previous version
const (
BasePath string = "service/vgc/%s/"
ServicePath string = "services/"
DevicePath string = "devices/%s/"
DevicePortPath string = DevicePath + "ports/"
DeviceFlowPath string = DevicePath + "flows/"
DeviceGroupPath string = DevicePath + "groups/"
DeviceMeterPath string = DevicePath + "meters/"
VnetPath string = "vnets/"
VpvPath string = "vpvs/"
MvlanPath string = "mvlans/"
MeterPath string = "meters/"
IgmpConfPath string = "igmp/conf/"
IgmpGroupPath string = "igmp/groups/"
IgmpDevicePath string = "igmp/devices/"
IgmpChannelPath string = "igmp/channels/"
IgmpPortPath string = "igmp/ports/"
IgmpProfPath string = "igmp/prof/"
McastConfigPath string = "igmp/mcastconfig/"
MigrationInfoPath string = "data/migration/"
LogLevelPath string = "log-level/"
HealthPath string = "health/"
PonCounterPath string = "pon-counter/"
OltIgmpCounterPath string = "olt-igmp-counter/"
ChannelCounterPath string = "channel-counter/"
ServiceCounterPath string = "service-counter/"
NbDevicePath string = "nb-device/"
DeviceFlowHashPath string = DevicePath + "flowhash"
PortAlarmProfilePath string = "port-alarm-profile/"
PortAlarmDataPath string = DevicePortPath + "portalarmdata/"
SubAlarmDataPath string = DevicePath + "sub-alarm-data/"
ServicesMigrateReqPath string = DevicePath + "migrateServicesReq/"
OltFlowServicePath string = "olt-flow-service/"
DeviceConfigPath string = "device-config/"
)
//PresentVersionMap - map of present version for all database tables
var PresentVersionMap = map[string]string{
ServicePath: "v3",
DevicePath: "v1",
DevicePortPath: "v1",
DeviceFlowPath: "v1",
DeviceGroupPath: "v1",
DeviceMeterPath: "v1",
VnetPath: "v3",
VpvPath: "v3",
MvlanPath: "v3",
MeterPath: "v1",
IgmpConfPath: "v2",
IgmpGroupPath: "v1",
IgmpDevicePath: "v1",
IgmpChannelPath: "v1",
IgmpPortPath: "v1",
IgmpProfPath: "v1",
McastConfigPath: "v1",
MigrationInfoPath: "v1",
LogLevelPath: "v1",
HealthPath: "v1",
PonCounterPath: "v1",
OltIgmpCounterPath: "v1",
ChannelCounterPath: "v1",
ServiceCounterPath: "v1",
NbDevicePath: "v1",
DeviceFlowHashPath: "v1",
PortAlarmProfilePath: "v1",
PortAlarmDataPath: "v1",
SubAlarmDataPath: "v1",
ServicesMigrateReqPath: "v1",
OltFlowServicePath: "v1",
DeviceConfigPath: "v1",
}
//PreviousVersionMap - map of previous version for all database tables
var PreviousVersionMap = map[string]string{
ServicePath: "v2",
DevicePath: "v1",
DevicePortPath: "v1",
DeviceFlowPath: "v1",
DeviceGroupPath: "v1",
DeviceMeterPath: "v1",
VnetPath: "v2",
VpvPath: "v2",
MvlanPath: "v2",
MeterPath: "v1",
IgmpConfPath: "v1",
IgmpGroupPath: "v1",
IgmpDevicePath: "v1",
IgmpChannelPath: "v1",
IgmpPortPath: "v1",
IgmpProfPath: "v1",
McastConfigPath: "v1",
MigrationInfoPath: "v1",
LogLevelPath: "v1",
HealthPath: "v1",
PonCounterPath: "v1",
OltIgmpCounterPath: "v1",
ChannelCounterPath: "v1",
ServiceCounterPath: "v1",
NbDevicePath: "v1",
DeviceFlowHashPath: "v1",
PortAlarmProfilePath: "v1",
PortAlarmDataPath: "v1",
SubAlarmDataPath: "v1",
ServicesMigrateReqPath: "v1",
OltFlowServicePath: "v1",
DeviceConfigPath: "v1",
}
//DBVersionMap - Version of tables present in DB
var DBVersionMap = PreviousVersionMap
// GetModuleKeypath returns the DB keypath for particular module along with version
func GetModuleKeypath(key, ver string) string {
return fmt.Sprintf(BasePath, ver) + key
}
// GetKeyPath returns the base path for the given key along with version
func GetKeyPath(key string) string {
return fmt.Sprintf(BasePath, PresentVersionMap[key]) + key
}