| package convert // import "github.com/docker/docker/daemon/cluster/convert" | |
| import ( | |
| swarmtypes "github.com/docker/docker/api/types/swarm" | |
| types "github.com/docker/docker/api/types/swarm" | |
| gogotypes "github.com/gogo/protobuf/types" | |
| swarmapi "github.com/moby/swarmkit/v2/api" | |
| ) | |
| // ConfigFromGRPC converts a grpc Config to a Config. | |
| func ConfigFromGRPC(s *swarmapi.Config) swarmtypes.Config { | |
| config := swarmtypes.Config{ | |
| ID: s.ID, | |
| Spec: swarmtypes.ConfigSpec{ | |
| Annotations: annotationsFromGRPC(s.Spec.Annotations), | |
| Data: s.Spec.Data, | |
| }, | |
| } | |
| config.Version.Index = s.Meta.Version.Index | |
| // Meta | |
| config.CreatedAt, _ = gogotypes.TimestampFromProto(s.Meta.CreatedAt) | |
| config.UpdatedAt, _ = gogotypes.TimestampFromProto(s.Meta.UpdatedAt) | |
| if s.Spec.Templating != nil { | |
| config.Spec.Templating = &types.Driver{ | |
| Name: s.Spec.Templating.Name, | |
| Options: s.Spec.Templating.Options, | |
| } | |
| } | |
| return config | |
| } | |
| // ConfigSpecToGRPC converts Config to a grpc Config. | |
| func ConfigSpecToGRPC(s swarmtypes.ConfigSpec) swarmapi.ConfigSpec { | |
| spec := swarmapi.ConfigSpec{ | |
| Annotations: swarmapi.Annotations{ | |
| Name: s.Name, | |
| Labels: s.Labels, | |
| }, | |
| Data: s.Data, | |
| } | |
| if s.Templating != nil { | |
| spec.Templating = &swarmapi.Driver{ | |
| Name: s.Templating.Name, | |
| Options: s.Templating.Options, | |
| } | |
| } | |
| return spec | |
| } | |
| // ConfigReferencesFromGRPC converts a slice of grpc ConfigReference to ConfigReference | |
| func ConfigReferencesFromGRPC(s []*swarmapi.ConfigReference) []*swarmtypes.ConfigReference { | |
| refs := []*swarmtypes.ConfigReference{} | |
| for _, r := range s { | |
| ref := &swarmtypes.ConfigReference{ | |
| ConfigID: r.ConfigID, | |
| ConfigName: r.ConfigName, | |
| } | |
| if t, ok := r.Target.(*swarmapi.ConfigReference_File); ok { | |
| ref.File = &swarmtypes.ConfigReferenceFileTarget{ | |
| Name: t.File.Name, | |
| UID: t.File.UID, | |
| GID: t.File.GID, | |
| Mode: t.File.Mode, | |
| } | |
| } | |
| refs = append(refs, ref) | |
| } | |
| return refs | |
| } |