fix: export files complain duplicate field name error

This commit is contained in:
Qiu Jian
2020-04-29 00:53:44 +08:00
parent 5fe7b53699
commit 5c138b9199
8 changed files with 43 additions and 8 deletions
+5 -1
View File
@@ -38,7 +38,11 @@ func init() {
if err != nil {
return err
}
printList(result, modules.DBInstanceBackups.GetColumns(s))
if len(opts.ExportFile) > 0 {
exportList(result, opts.ExportFile, opts.ExportKeys, opts.ExportTexts, modules.DBInstanceBackups.GetColumns(s))
} else {
printList(result, modules.DBInstanceBackups.GetColumns(s))
}
return nil
})
+6 -1
View File
@@ -41,7 +41,12 @@ func init() {
if err != nil {
return err
}
printList(result, modules.DBInstance.GetColumns(s))
if len(opts.ExportFile) > 0 {
exportList(result, opts.ExportFile, opts.ExportKeys, opts.ExportTexts, modules.DBInstance.GetColumns(s))
} else {
printList(result, modules.DBInstance.GetColumns(s))
}
return nil
})
+5 -1
View File
@@ -55,7 +55,11 @@ func init() {
if err != nil {
return err
}
printList(result, modules.Networks.GetColumns(s))
if len(opts.ExportFile) > 0 {
exportList(result, opts.ExportFile, opts.ExportKeys, opts.ExportTexts, modules.Networks.GetColumns(s))
} else {
printList(result, modules.Networks.GetColumns(s))
}
return nil
})
+5 -1
View File
@@ -47,7 +47,11 @@ func init() {
return err
}
printList(result, modules.Vpcs.GetColumns(s))
if len(opts.ExportFile) > 0 {
exportList(result, opts.ExportFile, opts.ExportKeys, opts.ExportTexts, modules.Vpcs.GetColumns(s))
} else {
printList(result, modules.Vpcs.GetColumns(s))
}
return nil
})
+1 -1
View File
@@ -571,7 +571,7 @@ func (manager *SDBInstanceBackupManager) ListItemExportKeys(ctx context.Context,
}
}
if keys.ContainsAny("dbinstance") {
q, err = manager.SDBInstanceResourceBaseManager.ListItemExportKeys(ctx, q, userCred, keys)
q, err = manager.SDBInstanceResourceBaseManager.ListItemExportKeys(ctx, q, userCred, stringutils2.NewSortedStrings([]string{"dbinstance"}))
if err != nil {
return nil, errors.Wrap(err, "SDBInstanceResourceBaseManager.ListItemExportKeys")
}
+2 -2
View File
@@ -1674,8 +1674,8 @@ func (manager *SDBInstanceManager) ListItemExportKeys(ctx context.Context,
}
}
if keys.ContainsAny(manager.SVpcResourceBaseManager.GetExportKeys()...) {
q, err = manager.SVpcResourceBaseManager.ListItemExportKeys(ctx, q, userCred, keys)
if keys.Contains("vpc") {
q, err = manager.SVpcResourceBaseManager.ListItemExportKeys(ctx, q, userCred, stringutils2.NewSortedStrings([]string{"vpc"}))
if err != nil {
return nil, errors.Wrap(err, "SVpcResourceBaseManager.ListItemExportKeys")
}
+18
View File
@@ -1142,5 +1142,23 @@ func (manager *SVpcManager) ListItemExportKeys(ctx context.Context,
}
}
if keys.Contains("wire_count") {
wires := WireManager.Query("vpc_id").SubQuery()
subq := wires.Query(sqlchemy.COUNT("wire_count"), wires.Field("vpc_id")).GroupBy(wires.Field("vpc_id")).SubQuery()
q = q.Join(subq, sqlchemy.Equals(q.Field("id"), subq.Field("vpc_id")))
q = q.AppendField(subq.Field("wire_count"))
}
if keys.Contains("network_count") {
wires := WireManager.Query("id", "vpc_id").SubQuery()
networks := NetworkManager.Query("wire_id").SubQuery()
subq := networks.Query(sqlchemy.COUNT("network_count"), wires.Field("vpc_id"))
subq = subq.Join(wires, sqlchemy.Equals(networks.Field("wire_id"), wires.Field("id")))
subq = subq.GroupBy(wires.Field("vpc_id"))
subqQ := subq.SubQuery()
q = q.Join(subqQ, sqlchemy.Equals(q.Field("id"), subqQ.Field("vpc_id")))
q = q.AppendField(subqQ.Field("network_count"))
}
return q, nil
}
+1 -1
View File
@@ -284,7 +284,7 @@ func (manager *SWireResourceBaseManager) ListItemExportKeys(ctx context.Context,
q = q.AppendField(subq.Field("name", "wire"))
}
if keys.Contains("zone") {
q, err = manager.SZoneResourceBaseManager.ListItemExportKeys(ctx, q, userCred, keys)
q, err = manager.SZoneResourceBaseManager.ListItemExportKeys(ctx, q, userCred, stringutils2.NewSortedStrings([]string{"zone"}))
if err != nil {
return nil, errors.Wrap(err, "SZoneResourceBaseManager.ListItemExportKeys")
}