80 lines
2.2 KiB
Go
80 lines
2.2 KiB
Go
package restore
|
|
|
|
import (
|
|
"github.com/influxdata/influx-cli/v2/api"
|
|
br "github.com/influxdata/influx-cli/v2/internal/backup_restore"
|
|
)
|
|
|
|
func ConvertBucketManifest(manifest br.ManifestBucketEntry) api.BucketMetadataManifest {
|
|
m := api.BucketMetadataManifest{
|
|
OrganizationID: manifest.OrganizationID,
|
|
OrganizationName: manifest.OrganizationName,
|
|
BucketID: manifest.BucketID,
|
|
BucketName: manifest.BucketName,
|
|
Description: manifest.Description,
|
|
DefaultRetentionPolicy: manifest.DefaultRetentionPolicy,
|
|
RetentionPolicies: make([]api.RetentionPolicyManifest, len(manifest.RetentionPolicies)),
|
|
}
|
|
|
|
for i, rp := range manifest.RetentionPolicies {
|
|
m.RetentionPolicies[i] = ConvertRetentionPolicy(rp)
|
|
}
|
|
|
|
return m
|
|
}
|
|
|
|
func ConvertRetentionPolicy(manifest br.ManifestRetentionPolicy) api.RetentionPolicyManifest {
|
|
m := api.RetentionPolicyManifest{
|
|
Name: manifest.Name,
|
|
ReplicaN: manifest.ReplicaN,
|
|
Duration: manifest.Duration,
|
|
ShardGroupDuration: manifest.ShardGroupDuration,
|
|
ShardGroups: make([]api.ShardGroupManifest, len(manifest.ShardGroups)),
|
|
Subscriptions: make([]api.SubscriptionManifest, len(manifest.Subscriptions)),
|
|
}
|
|
|
|
for i, sg := range manifest.ShardGroups {
|
|
m.ShardGroups[i] = ConvertShardGroup(sg)
|
|
}
|
|
|
|
for i, s := range manifest.Subscriptions {
|
|
m.Subscriptions[i] = api.SubscriptionManifest{
|
|
Name: s.Name,
|
|
Mode: s.Mode,
|
|
Destinations: s.Destinations,
|
|
}
|
|
}
|
|
|
|
return m
|
|
}
|
|
|
|
func ConvertShardGroup(manifest br.ManifestShardGroup) api.ShardGroupManifest {
|
|
m := api.ShardGroupManifest{
|
|
Id: manifest.ID,
|
|
StartTime: manifest.StartTime,
|
|
EndTime: manifest.EndTime,
|
|
DeletedAt: manifest.DeletedAt,
|
|
TruncatedAt: manifest.TruncatedAt,
|
|
Shards: make([]api.ShardManifest, len(manifest.Shards)),
|
|
}
|
|
|
|
for i, sh := range manifest.Shards {
|
|
m.Shards[i] = ConvertShard(sh)
|
|
}
|
|
|
|
return m
|
|
}
|
|
|
|
func ConvertShard(manifest br.ManifestShardEntry) api.ShardManifest {
|
|
m := api.ShardManifest{
|
|
Id: manifest.ID,
|
|
ShardOwners: make([]api.ShardOwner, len(manifest.ShardOwners)),
|
|
}
|
|
|
|
for i, so := range manifest.ShardOwners {
|
|
m.ShardOwners[i] = api.ShardOwner{NodeID: so.NodeID}
|
|
}
|
|
|
|
return m
|
|
}
|