MCPcopy Create free account
hub / github.com/docker/cli / convertResources

Function convertResources

cli/compose/convert/service.go:546–593  ·  view source on GitHub ↗
(source composetypes.Resources)

Source from the content-addressed store, hash-verified

544}
545
546func convertResources(source composetypes.Resources) (*swarm.ResourceRequirements, error) {
547 resources := &swarm.ResourceRequirements{}
548 var err error
549 if source.Limits != nil {
550 var cpus int64
551 if source.Limits.NanoCPUs != "" {
552 cpus, err = opts.ParseCPUs(source.Limits.NanoCPUs)
553 if err != nil {
554 return nil, err
555 }
556 }
557 resources.Limits = &swarm.Limit{
558 NanoCPUs: cpus,
559 MemoryBytes: int64(source.Limits.MemoryBytes),
560 Pids: source.Limits.Pids,
561 }
562 }
563 if source.Reservations != nil {
564 var cpus int64
565 if source.Reservations.NanoCPUs != "" {
566 cpus, err = opts.ParseCPUs(source.Reservations.NanoCPUs)
567 if err != nil {
568 return nil, err
569 }
570 }
571
572 var generic []swarm.GenericResource
573 for _, res := range source.Reservations.GenericResources {
574 var r swarm.GenericResource
575
576 if res.DiscreteResourceSpec != nil {
577 r.DiscreteResourceSpec = &swarm.DiscreteGenericResource{
578 Kind: res.DiscreteResourceSpec.Kind,
579 Value: res.DiscreteResourceSpec.Value,
580 }
581 }
582
583 generic = append(generic, r)
584 }
585
586 resources.Reservations = &swarm.Resources{
587 NanoCPUs: cpus,
588 MemoryBytes: int64(source.Reservations.MemoryBytes),
589 GenericResources: generic,
590 }
591 }
592 return resources, nil
593}
594
595func convertEndpointSpec(endpointMode string, source []composetypes.ServicePortConfig) *swarm.EndpointSpec {
596 portConfigs := make([]swarm.PortConfig, 0, len(source))

Callers 3

TestConvertResourcesFullFunction · 0.85
ServiceFunction · 0.85

Calls

no outgoing calls

Tested by 2

TestConvertResourcesFullFunction · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…