diff --git a/crontask/gencmxml.go b/crontask/gencmxml.go index b7253d82..f0975af0 100644 --- a/crontask/gencmxml.go +++ b/crontask/gencmxml.go @@ -129,16 +129,6 @@ func (t *TaskFunc) GenNFXmlFile(neType string) error { continue } } - // for _, valueMaps := range dataMap { - // if len(valueMaps.([]map[string]interface{})) > 0 { - // valueMap = valueMaps.([]map[string]interface{})[0] - // // err = json.Unmarshal([]byte(valueMaps.([]map[string]interface{})[0]), &valueMap) - // // if err != nil { - // // log.Error("Failed to json.Unmarshal:", err) - // // continue - // // } - // } - // } log.Trace("valueMap:", valueMap) rmUID := ne.RmUID @@ -161,31 +151,6 @@ func (t *TaskFunc) GenNFXmlFile(neType string) error { //objects.FieldName.N = append(objects.FieldName.N, cmschema.N{IAttr: i, Value: p}) objectData.FieldName.N = append(objectData.FieldName.N, cmschema.N{IAttr: i, Value: p}) } - // var v string - // switch p { - // case "Id": - // v = ne.RmUID - // case "UserLabel": - // v = ne.NeName - // case "VendorName": - // v = ne.VendorName - // case "SwVersion": - // v = cmResult.CmVersion - // case "PatchInfo": - // v = "-" - // case "AdministrativeState": - // v = AdminStateUnlocked - // case "OperationalState": - // v = OperationStateEnabled - // case "VnfInstanceId": - // v = "" //vnfInstanceID - // default: - // if sortResult[p] == "" { - // v = "-" - // } else { - // v = fmt.Sprintf("%s", sortResult[p]) - // } - // } var v string if valueMap[p] == nil || valueMap[p] == "" { v = "-" @@ -213,17 +178,22 @@ func (t *TaskFunc) GenNFXmlFile(neType string) error { log.Error("Failed to WriteFile xml file:", err) continue } - // err := os.Create(tmpXmlfile) - // if err != nil { - // log.Error("Failed to WriteFile xml file:", err) - // continue - // } - err = os.Rename(tmpXmlfile, xmlfile) if err != nil { log.Error("Failed to Rename xml file:", err) continue } + zipFile := xmlfile + ".zip" + err = global.ZipOneFile(xmlfile, zipFile, false) + if err != nil { + log.Error("Failed to ZipOneFile:", err) + continue + } + err = os.Remove(xmlfile) + if err != nil { + log.Error("Failed to delete file:", err) + continue + } } return nil diff --git a/lib/global/kits.go b/lib/global/kits.go index b0191c74..17932331 100644 --- a/lib/global/kits.go +++ b/lib/global/kits.go @@ -1,6 +1,7 @@ package global import ( + "archive/zip" "bytes" "crypto/md5" "encoding/hex" @@ -477,3 +478,41 @@ func ToMap(in interface{}, tagName string) (map[string]interface{}, error) { } return out, nil } + +func ZipOneFile(srcFile, dstZip string, pathFlag bool) error { + zipFile, err := os.Create(dstZip) + if err != nil { + return err + } + defer zipFile.Close() + + zipWriter := zip.NewWriter(zipFile) + defer zipWriter.Close() + + fileToCompress, err := os.Open(srcFile) + if err != nil { + return err + } + defer fileToCompress.Close() + + var fileInZip io.Writer + if pathFlag { + fileInZip, err = zipWriter.Create(srcFile) + if err != nil { + return err + } + } else { + // 获取文件的基本名称 + fileName := filepath.Base(fileToCompress.Name()) + fileInZip, err = zipWriter.Create(fileName) + if err != nil { + return err + } + } + + _, err = io.Copy(fileInZip, fileToCompress) + if err != nil { + return err + } + return nil +}