(source composetypes.Resources)
| 544 | } |
| 545 | |
| 546 | func 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 | |
| 595 | func convertEndpointSpec(endpointMode string, source []composetypes.ServicePortConfig) *swarm.EndpointSpec { |
| 596 | portConfigs := make([]swarm.PortConfig, 0, len(source)) |
no outgoing calls
searching dependent graphs…