secret.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package convert // import "github.com/docker/docker/daemon/cluster/convert"
  2. import (
  3. swarmtypes "github.com/docker/docker/api/types/swarm"
  4. types "github.com/docker/docker/api/types/swarm"
  5. gogotypes "github.com/gogo/protobuf/types"
  6. swarmapi "github.com/moby/swarmkit/v2/api"
  7. )
  8. // SecretFromGRPC converts a grpc Secret to a Secret.
  9. func SecretFromGRPC(s *swarmapi.Secret) swarmtypes.Secret {
  10. secret := swarmtypes.Secret{
  11. ID: s.ID,
  12. Spec: swarmtypes.SecretSpec{
  13. Annotations: annotationsFromGRPC(s.Spec.Annotations),
  14. Data: s.Spec.Data,
  15. Driver: driverFromGRPC(s.Spec.Driver),
  16. },
  17. }
  18. secret.Version.Index = s.Meta.Version.Index
  19. // Meta
  20. secret.CreatedAt, _ = gogotypes.TimestampFromProto(s.Meta.CreatedAt)
  21. secret.UpdatedAt, _ = gogotypes.TimestampFromProto(s.Meta.UpdatedAt)
  22. if s.Spec.Templating != nil {
  23. secret.Spec.Templating = &types.Driver{
  24. Name: s.Spec.Templating.Name,
  25. Options: s.Spec.Templating.Options,
  26. }
  27. }
  28. return secret
  29. }
  30. // SecretSpecToGRPC converts Secret to a grpc Secret.
  31. func SecretSpecToGRPC(s swarmtypes.SecretSpec) swarmapi.SecretSpec {
  32. spec := swarmapi.SecretSpec{
  33. Annotations: swarmapi.Annotations{
  34. Name: s.Name,
  35. Labels: s.Labels,
  36. },
  37. Data: s.Data,
  38. Driver: driverToGRPC(s.Driver),
  39. }
  40. if s.Templating != nil {
  41. spec.Templating = &swarmapi.Driver{
  42. Name: s.Templating.Name,
  43. Options: s.Templating.Options,
  44. }
  45. }
  46. return spec
  47. }
  48. // SecretReferencesFromGRPC converts a slice of grpc SecretReference to SecretReference
  49. func SecretReferencesFromGRPC(s []*swarmapi.SecretReference) []*swarmtypes.SecretReference {
  50. refs := []*swarmtypes.SecretReference{}
  51. for _, r := range s {
  52. ref := &swarmtypes.SecretReference{
  53. SecretID: r.SecretID,
  54. SecretName: r.SecretName,
  55. }
  56. if t, ok := r.Target.(*swarmapi.SecretReference_File); ok {
  57. ref.File = &swarmtypes.SecretReferenceFileTarget{
  58. Name: t.File.Name,
  59. UID: t.File.UID,
  60. GID: t.File.GID,
  61. Mode: t.File.Mode,
  62. }
  63. }
  64. refs = append(refs, ref)
  65. }
  66. return refs
  67. }