| /* |
| * 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. |
| */ |
| |
| package database |
| |
| import ( |
| "net" |
| "context" |
| |
| "voltha-go-controller/internal/pkg/of" |
| "github.com/opencord/voltha-lib-go/v7/pkg/db/kvstore" |
| ) |
| |
| var dbObj DBIntf |
| |
| // DBIntf defines db related methods |
| type DBIntf interface { |
| Get(ctx context.Context, key string) (string, error) |
| Put(ctx context.Context, fullKeyPath string, value string) error |
| Del(ctx context.Context, path string) error |
| List(ctx context.Context, key string) (map[string]*kvstore.KVPair, error) |
| DeleteAll(ctx context.Context, path string) error |
| DeleteAllUnderHashKey(ctx context.Context, hashKeyPrefix string) error |
| GetOlt(ctx context.Context, deviceID string) (string, error) |
| PutOlt(ctx context.Context, deviceID string, value string) error |
| DelOlt(ctx context.Context, deviceID string) error |
| GetFlow(ctx context.Context, deviceID string, flowID uint64) (string, error) |
| GetFlows(ctx context.Context, deviceID string) (map[string]*kvstore.KVPair, error) |
| PutFlow(ctx context.Context, deviceID string, flowID uint64, value string) error |
| DelFlow(ctx context.Context, deviceID string, flowID uint64) error |
| PutGroup(ctx context.Context, deviceID string, groupID uint32, value string) error |
| GetGroup(ctx context.Context, deviceID string, groupID uint32) (string, error) |
| GetGroups(ctx context.Context, deviceID string) (map[string]*kvstore.KVPair, error) |
| DelGroup(ctx context.Context, deviceID string, groupID uint32) error |
| DelAllGroup(ctx context.Context, deviceID string) error |
| DelAllPorts(ctx context.Context, deviceID string) error |
| DelPort(ctx context.Context, deviceID string, portID uint32) error |
| PutPort(ctx context.Context, deviceID string, portID uint32, value string) error |
| GetPort(ctx context.Context, deviceID string, portID uint32) (string, error) |
| GetPorts(ctx context.Context, deviceID string) (map[string]*kvstore.KVPair, error) |
| PutDeviceMeter(ctx context.Context, deviceID string, meterID uint32, value string) error |
| GetDeviceMeter(ctx context.Context, deviceID string, meterID uint32) (string, error) |
| GetDeviceMeters(ctx context.Context, deviceID string) (map[string]*kvstore.KVPair, error) |
| DelDeviceMeter(ctx context.Context, deviceID string, meterID uint32) error |
| GetService(ctx context.Context, name string) (string, error) |
| GetServices(ctx context.Context) (map[string]*kvstore.KVPair, error) |
| PutService(ctx context.Context, name string, value string) error |
| DelService(ctx context.Context, name string) error |
| GetVnets(ctx context.Context) (map[string]*kvstore.KVPair, error) |
| GetVnet(ctx context.Context, name string) (string, error) |
| PutVnet(ctx context.Context, name string, value string) error |
| DelVnet(ctx context.Context, name string) error |
| GetVpvs(ctx context.Context) (map[string]*kvstore.KVPair, error) |
| GetVpv(ctx context.Context, port string, SVlan uint16, CVlan uint16, UniVlan uint16) (string, error) |
| PutVpv(ctx context.Context, port string, SVlan uint16, CVlan uint16, UniVlan uint16, value string) error |
| DelVpv(ctx context.Context, port string, SVlan uint16, CVlan uint16, UniVlan uint16) error |
| GetMvlans(ctx context.Context) (map[string]*kvstore.KVPair, error) |
| GetMvlan(ctx context.Context, mvlan uint16) (string, error) |
| PutMvlan(ctx context.Context, mvlan uint16, value string) error |
| DelMvlan(ctx context.Context, mvlan uint16) error |
| DelIGMPCfg(ctx context.Context) error |
| GetHealth(ctx context.Context) (string, error) |
| PutHealth(ctx context.Context, value string) error |
| DelHealth(ctx context.Context) error |
| GetMeters(ctx context.Context) (map[string]*kvstore.KVPair, error) |
| GetMeter(ctx context.Context, name string) (string, error) |
| PutMeter(ctx context.Context, name string, value string) error |
| DelMeter(ctx context.Context, name string) error |
| DelAllMeter(ctx context.Context, device string) error |
| GetIgmpGroups(ctx context.Context) (map[string]*kvstore.KVPair, error) |
| GetIgmpGroup(ctx context.Context, id string) (string, error) |
| PutIgmpGroup(ctx context.Context, id string, value string) error |
| DelIgmpGroup(ctx context.Context, id string) error |
| GetAllIgmpDevices(ctx context.Context) (map[string]*kvstore.KVPair, error) |
| GetPrevIgmpDevices(ctx context.Context, mvlan of.VlanType, gid string) (map[string]*kvstore.KVPair, error) |
| GetIgmpDevices(ctx context.Context, mvlan of.VlanType, gid string, gip net.IP) (map[string]*kvstore.KVPair, error) |
| GetIgmpDevice(ctx context.Context, mvlan of.VlanType, gid string, gip net.IP, device string) (string, error) |
| PutIgmpDevice(ctx context.Context, mvlan of.VlanType, gid string, gip net.IP, device string, value string) error |
| DelIgmpDevice(ctx context.Context, mvlan of.VlanType, gid string, gip net.IP, device string) error |
| GetAllIgmpChannels(ctx context.Context) (map[string]*kvstore.KVPair, error) |
| GetPrevIgmpChannels(ctx context.Context, gname string, device string) (map[string]*kvstore.KVPair, error) |
| GetIgmpChannels(ctx context.Context, mvlan of.VlanType, gname string, device string) (map[string]*kvstore.KVPair, error) |
| GetIgmpChannel(ctx context.Context, mvlan of.VlanType, gName string, device string, gip net.IP) (string, error) |
| PutIgmpChannel(ctx context.Context, mvlan of.VlanType, gName string, device string, gip net.IP, value string) error |
| DelIgmpChannel(ctx context.Context, mvlan of.VlanType, gName string, device string, gip net.IP) error |
| GetAllIgmpRcvrs(ctx context.Context) (map[string]*kvstore.KVPair, error) |
| GetPrevIgmpRcvrs(ctx context.Context, gip net.IP, device string) (map[string]*kvstore.KVPair, error) |
| GetIgmpRcvrs(ctx context.Context, mvlan of.VlanType, gip net.IP, device string) (map[string]*kvstore.KVPair, error) |
| GetIgmpRcvr(ctx context.Context, mvlan of.VlanType, gip net.IP, device string, rcvr string) (string, error) |
| PutIgmpRcvr(ctx context.Context, mvlan of.VlanType, gip net.IP, device string, rcvr string, value string) error |
| DelIgmpRcvr(ctx context.Context, mvlan of.VlanType, gip net.IP, device string, rcvr string) error |
| DelAllIgmpRcvr(ctx context.Context, mvlan of.VlanType, gip net.IP, device string) error |
| DelAllRoutesForDevice(ctx context.Context, device string) error |
| DelNbDevicePort(ctx context.Context, device string, ponPortID uint32) |
| GetAllNbPorts(ctx context.Context, deviceID string) (map[string]*kvstore.KVPair, error) |
| GetMigrationInfo(ctx context.Context) (string, error) |
| PutMigrationInfo(ctx context.Context, value string) error |
| DelMigrationInfo(ctx context.Context) error |
| GetAllPonCounters(ctx context.Context, device string) (map[string]*kvstore.KVPair, error) |
| GetPonCounter(ctx context.Context, device string, ponID string) (string, error) |
| PutPonCounter(ctx context.Context, device string, ponID string, value string) error |
| DelPonCounter(ctx context.Context, device string, ponID string) error |
| GetAllPonChannelCounters(ctx context.Context, device string, ponID string) (map[string]*kvstore.KVPair, error) |
| GetPonChannelCounter(ctx context.Context, device string, ponID string, channel string) (string, error) |
| PutNbDevicePort(ctx context.Context, device string, ponPortID uint32, value string) |
| PutPonChannelCounter(ctx context.Context, device string, ponID string, channel string, value string) error |
| DelPonChannelCounter(ctx context.Context, device string, ponID string, channel string) error |
| DelAllPONCounters(ctx context.Context, device string) error |
| DelPONCounters(ctx context.Context, device string, ponID string) |
| GetAllServiceChannelCounters(ctx context.Context, serviceName string) (map[string]*kvstore.KVPair, error) |
| GetServiceChannelCounter(ctx context.Context, serviceName string, channel string) (string, error) |
| PutServiceChannelCounter(ctx context.Context, serviceName string, channel string, value string) error |
| DelServiceChannelCounter(ctx context.Context, serviceName string, channel string) error |
| DelAllServiceChannelCounter(ctx context.Context, serviceName string) error |
| PutOltIgmpCounters(ctx context.Context, device string, value string) error |
| GetOltIgmpCounter(ctx context.Context, device string) (string, error) |
| PutFlowHash(ctx context.Context, deviceID string, value string) error |
| GetFlowHash(ctx context.Context, deviceID string) (string, error) |
| OltExists(ctx context.Context, deviceID string) bool |
| GetIgmpProfiles(ctx context.Context) (map[string]*kvstore.KVPair, error) |
| GetIgmpProfile(ctx context.Context, name string) (string, error) |
| PutIgmpProfile(ctx context.Context, name string, value string) error |
| DelIgmpProfile(ctx context.Context, name string) error |
| GetMcastConfigs(ctx context.Context) (map[string]*kvstore.KVPair, error) |
| GetMcastConfig(ctx context.Context, name string) (string, error) |
| PutMcastConfig(ctx context.Context, name string, value string) error |
| DelMcastConfig(ctx context.Context, name string) error |
| PutPortAlarmProfile(ctx context.Context, portAlarmProfileID string, value string) |
| GetPortAlarmProfile(ctx context.Context, portAlarmProfileID string) (map[string]*kvstore.KVPair, error) |
| DelPortAlarmProfile(ctx context.Context, portAlarmProfileID string) |
| PutPortAlarmData(ctx context.Context, deviceID string, portID uint32, value string) |
| GetPortAlarmData(ctx context.Context, deviceID string, portID uint32) (string, error) |
| DelPortAlarmData(ctx context.Context, deviceID string, portID uint32) |
| GetAllPortAlarmData(ctx context.Context, deviceID string) (map[string]*kvstore.KVPair, error) |
| PutSubAlarmData(ctx context.Context, deviceID string, portName string, value string) |
| GetSubAlarmData(ctx context.Context, deviceID string, portName string) (string, error) |
| DelSubAlarmData(ctx context.Context, deviceID string, portName string) |
| GetAllSubAlarmData(ctx context.Context, deviceID string) (map[string]*kvstore.KVPair, error) |
| PutMigrateServicesReq(ctx context.Context, deviceID string, vlan string, value string) error |
| GetMigrateServicesReq(ctx context.Context, deviceID string, vlan string) (string, error) |
| GetAllMigrateServicesReq(ctx context.Context, deviceID string) (map[string]*kvstore.KVPair, error) |
| DelMigrateServicesReq(ctx context.Context, deviceID string, vlan string) error |
| DelAllMigrateServicesReq(ctx context.Context, deviceID string) error |
| PutOltFlowService(ctx context.Context, value string) error |
| GetOltFlowService(ctx context.Context) (string, error) |
| } |
| |
| //GetDatabase - returns databse operation based on configuration |
| func GetDatabase() DBIntf { |
| return dbObj |
| } |
| |
| //SetDatabase - sets the DB object based on the type |
| func SetDatabase(df DBIntf) { |
| dbObj = df |
| } |