More methods on TPExporter

This commit is contained in:
DanB
2014-10-19 20:40:55 +02:00
parent a1bce1f234
commit 8a0011eda2

View File

@@ -30,7 +30,11 @@ import (
"github.com/cgrates/cgrates/utils"
)
var TPExportFormats = []string{utils.DRYRUN, utils.CSV}
var (
TPExportFormats = []string{utils.DRYRUN, utils.CSV}
exportedFiles = []string{utils.TIMINGS_CSV, utils.DESTINATIONS_CSV, utils.RATES_CSV, utils.DESTINATION_RATES_CSV, utils.RATING_PLANS_CSV, utils.RATING_PROFILES_CSV,
utils.SHARED_GROUPS_CSV, utils.ACTIONS_CSV, utils.ACTION_PLANS_CSV, utils.ACTION_TRIGGERS_CSV, utils.ACCOUNT_ACTIONS_CSV, utils.DERIVED_CHARGERS_CSV, utils.CDR_STATS_CSV}
)
func NewTPExporter(storDb LoadStorage, tpID, dir, fileFormat, sep string, dryRunBuff *bytes.Buffer) (*TPExporter, error) {
if !utils.IsSliceMember(TPExportFormats, fileFormat) {
@@ -88,6 +92,9 @@ func (self *TPExporter) Run() error {
// Some export did not end up well, remove the files here
func (self *TPExporter) removeFiles() error {
for _, fileName := range exportedFiles {
os.Remove(path.Join(self.dirPath, fileName))
}
return nil
}
@@ -117,15 +124,30 @@ func (self *TPExporter) writeOut(fileName string, tpData []utils.ExportedData) e
}
func (self *TPExporter) exportTimings() error {
//fileName := exportedFiles[0] // Define it out of group so we make sure it is cleaned up by removeFiles
return nil
}
func (self *TPExporter) exportDestinations() error {
fileName := exportedFiles[1]
storData, err := self.storDb.GetTpDestinations(self.tpID, "")
if err != nil {
return nil
}
exportedData := make([]utils.ExportedData, len(storData))
idx := 0
for _, dst := range storData {
exportedData[idx] = &utils.TPDestination{TPid: self.tpID, DestinationId: dst.Id, Prefixes: dst.Prefixes}
idx += 1
}
if err := self.writeOut(fileName, exportedData); err != nil {
return err
}
return nil
}
func (self *TPExporter) exportRates() error {
fileName := utils.RATES_CSV
fileName := exportedFiles[2]
storData, err := self.storDb.GetTpRates(self.tpID, "")
if err != nil {
return nil
@@ -143,7 +165,7 @@ func (self *TPExporter) exportRates() error {
}
func (self *TPExporter) exportDestinationRates() error {
fileName := utils.DESTINATION_RATES_CSV
fileName := exportedFiles[3]
storData, err := self.storDb.GetTpDestinationRates(self.tpID, "", nil)
if err != nil {
return nil
@@ -161,11 +183,25 @@ func (self *TPExporter) exportDestinationRates() error {
}
func (self *TPExporter) exportRatingPlans() error {
fileName := exportedFiles[4]
storData, err := self.storDb.GetTpRatingPlans(self.tpID, "", nil)
if err != nil {
return nil
}
exportedData := make([]utils.ExportedData, len(storData))
idx := 0
for rpId, rpBinding := range storData {
exportedData[idx] = &utils.TPRatingPlan{TPid: self.tpID, RatingPlanId: rpId, RatingPlanBindings: rpBinding}
idx += 1
}
if err := self.writeOut(fileName, exportedData); err != nil {
return err
}
return nil
}
func (self *TPExporter) exportRatingProfiles() error {
fileName := utils.RATING_PROFILES_CSV
fileName := exportedFiles[5]
storData, err := self.storDb.GetTpRatingProfiles(&utils.TPRatingProfile{TPid: self.tpID})
if err != nil {
return nil
@@ -183,23 +219,79 @@ func (self *TPExporter) exportRatingProfiles() error {
}
func (self *TPExporter) exportSharedGroups() error {
fileName := exportedFiles[6]
storData, err := self.storDb.GetTpSharedGroups(self.tpID, "")
if err != nil {
return nil
}
exportedData := make([]utils.ExportedData, len(storData))
idx := 0
for sgId, sg := range storData {
exportedData[idx] = &utils.TPSharedGroups{TPid: self.tpID, SharedGroupsId: sgId, SharedGroups: sg}
idx += 1
}
if err := self.writeOut(fileName, exportedData); err != nil {
return err
}
return nil
}
func (self *TPExporter) exportActions() error {
fileName := exportedFiles[7]
storData, err := self.storDb.GetTpActions(self.tpID, "")
if err != nil {
return nil
}
exportedData := make([]utils.ExportedData, len(storData))
idx := 0
for actsId, acts := range storData {
exportedData[idx] = &utils.TPActions{TPid: self.tpID, ActionsId: actsId, Actions: acts}
idx += 1
}
if err := self.writeOut(fileName, exportedData); err != nil {
return err
}
return nil
}
func (self *TPExporter) exportActionPlans() error {
fileName := exportedFiles[8]
storData, err := self.storDb.GetTPActionTimings(self.tpID, "")
if err != nil {
return nil
}
exportedData := make([]utils.ExportedData, len(storData))
idx := 0
for apId, ats := range storData {
exportedData[idx] = &utils.TPActionPlan{TPid: self.tpID, Id: apId, ActionPlan: ats}
idx += 1
}
if err := self.writeOut(fileName, exportedData); err != nil {
return err
}
return nil
}
func (self *TPExporter) exportActionTriggers() error {
fileName := exportedFiles[9]
storData, err := self.storDb.GetTpActionTriggers(self.tpID, "")
if err != nil {
return nil
}
exportedData := make([]utils.ExportedData, len(storData))
idx := 0
for atId, ats := range storData {
exportedData[idx] = &utils.TPActionTriggers{TPid: self.tpID, ActionTriggersId: atId, ActionTriggers: ats}
idx += 1
}
if err := self.writeOut(fileName, exportedData); err != nil {
return err
}
return nil
}
func (self *TPExporter) exportAccountActions() error {
fileName := utils.ACCOUNT_ACTIONS_CSV
fileName := exportedFiles[10]
storData, err := self.storDb.GetTpAccountActions(&utils.TPAccountActions{TPid: self.tpID})
if err != nil {
return nil
@@ -217,7 +309,7 @@ func (self *TPExporter) exportAccountActions() error {
}
func (self *TPExporter) exportDerivedChargers() error {
fileName := utils.DERIVED_CHARGERS_CSV
fileName := exportedFiles[11]
storData, err := self.storDb.GetTpDerivedChargers(&utils.TPDerivedChargers{TPid: self.tpID})
if err != nil {
return nil
@@ -235,5 +327,19 @@ func (self *TPExporter) exportDerivedChargers() error {
}
func (self *TPExporter) exportCdrStats() error {
fileName := exportedFiles[12]
storData, err := self.storDb.GetTpCdrStats(self.tpID, "")
if err != nil {
return nil
}
exportedData := make([]utils.ExportedData, len(storData))
idx := 0
for cdrstId, cdrsts := range storData {
exportedData[idx] = &utils.TPCdrStats{TPid: self.tpID, CdrStatsId: cdrstId, CdrStats: cdrsts}
idx += 1
}
if err := self.writeOut(fileName, exportedData); err != nil {
return err
}
return nil
}