docker/swarmkit

View on GitHub

Showing 1,820 of 1,820 total issues

Avoid deeply nested control flow statements.
Open

                if !request.IncludeOldObject {
                    eventMessage.OldObject = nil
                }
Severity: Major
Found in manager/watchapi/watch.go - About 45 mins to fix

    Avoid deeply nested control flow statements.
    Open

                        if oldTask, exists := tasksMap[v.Task.ID]; exists {
                            // States ASSIGNED and below are set by the orchestrator/scheduler,
                            // not the agent, so tasks in these states need to be sent to the
                            // agent even if nothing else has changed.
                            if equality.TasksEqualStable(oldTask, v.Task) && v.Task.Status.State > api.TaskStateAssigned {
    Severity: Major
    Found in manager/dispatcher/dispatcher.go - About 45 mins to fix

      Avoid deeply nested control flow statements.
      Open

                          if time.Since(debouncingStarted) > maxLatency {
                              commitDebounceTimer.Stop()
                              commitDebounceTimer = nil
                              commitDebounceTimeout = nil
                              schedule()
      Severity: Major
      Found in manager/scheduler/scheduler.go - About 45 mins to fix

        Function validateConfigRefsSpec has 7 return statements (exceeds 4 allowed).
        Open

        func validateConfigRefsSpec(spec api.TaskSpec) error {
            container := spec.GetContainer()
            if container == nil {
                return nil
            }
        Severity: Major
        Found in manager/controlapi/service.go - About 45 mins to fix

          Method Scheduler.scheduleNTasksOnNodes has 6 arguments (exceeds 4 allowed). Consider refactoring.
          Open

          func (s *Scheduler) scheduleNTasksOnNodes(ctx context.Context, n int, taskGroup map[string]*api.Task, nodes []NodeInfo, schedulingDecisions map[string]schedulingDecision, nodeLess func(a *NodeInfo, b *NodeInfo) bool) int {
          Severity: Minor
          Found in manager/scheduler/scheduler.go - About 45 mins to fix

            Method Server.CreateService has 7 return statements (exceeds 4 allowed).
            Open

            func (s *Server) CreateService(ctx context.Context, request *api.CreateServiceRequest) (*api.CreateServiceResponse, error) {
                if err := validateServiceSpec(request.Spec); err != nil {
                    return nil, err
                }
            
            
            Severity: Major
            Found in manager/controlapi/service.go - About 45 mins to fix

              Method Server.Watch has 7 return statements (exceeds 4 allowed).
              Open

              func (s *Server) Watch(request *api.WatchRequest, stream api.Watch_WatchServer) error {
                  ctx := stream.Context()
              
                  s.mu.Lock()
                  pctx := s.pctx
              Severity: Major
              Found in manager/watchapi/watch.go - About 45 mins to fix

                Method Scheduler.updateTask has a Cognitive Complexity of 23 (exceeds 20 allowed). Consider refactoring.
                Open

                func (s *Scheduler) updateTask(ctx context.Context, t *api.Task) bool {
                    // Ignore all tasks that have not reached PENDING
                    // state.
                    if t.Status.State < api.TaskStatePending {
                        return false
                Severity: Minor
                Found in manager/scheduler/scheduler.go - About 45 mins to fix

                Cognitive Complexity

                Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                A method's cognitive complexity is based on a few simple rules:

                • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                • Code is considered more complex for each "break in the linear flow of the code"
                • Code is considered more complex when "flow breaking structures are nested"

                Further reading

                Function watchNode has 6 arguments (exceeds 4 allowed). Consider refactoring.
                Open

                func watchNode(t *testing.T, watch chan events.Event, expectTimeout bool,
                    fn func(t assert.TestingT, originalNode, updatedNode *api.Node, networks []string) bool,
                    originalNode *api.Node,
                    networks []string) {
                Severity: Minor
                Found in manager/allocator/allocator_test_suite.go - About 45 mins to fix

                  Function validateIPAMConfiguration has 7 return statements (exceeds 4 allowed).
                  Open

                  func validateIPAMConfiguration(ipamConf *api.IPAMConfig) error {
                      if ipamConf == nil {
                          return status.Errorf(codes.InvalidArgument, "ipam configuration: cannot be empty")
                      }
                  
                  
                  Severity: Major
                  Found in manager/controlapi/network.go - About 45 mins to fix

                    Function validateServiceSpec has 7 return statements (exceeds 4 allowed).
                    Open

                    func validateServiceSpec(spec *api.ServiceSpec) error {
                        if spec == nil {
                            return status.Errorf(codes.InvalidArgument, errInvalidArgument.Error())
                        }
                        if err := validateAnnotations(spec.Annotations); err != nil {
                    Severity: Major
                    Found in manager/controlapi/service.go - About 45 mins to fix

                      Avoid deeply nested control flow statements.
                      Open

                                                  if status.NodeID == nodeID {
                                                      if assignments.addOrUpdateVolume(readTx, vol) {
                                                          oneModification()
                                                      }
                                                  }
                      Severity: Major
                      Found in manager/dispatcher/dispatcher.go - About 45 mins to fix

                        Avoid deeply nested control flow statements.
                        Open

                                            if atomic.LoadUint32(&n.signalledLeadership) == 1 {
                                                atomic.StoreUint32(&n.signalledLeadership, 0)
                                                n.leadershipBroadcast.Publish(IsFollower)
                                            }
                        Severity: Major
                        Found in manager/state/raft/raft.go - About 45 mins to fix

                          Method Node.reportNewAddress has 7 return statements (exceeds 4 allowed).
                          Open

                          func (n *Node) reportNewAddress(ctx context.Context, id uint64) error {
                              // too early
                              if !n.IsMember() {
                                  return nil
                              }
                          Severity: Major
                          Found in manager/state/raft/raft.go - About 45 mins to fix

                            Similar blocks of code found in 102 locations. Consider refactoring.
                            Open

                            func (m *NetworkAttachment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
                                if deterministic {
                                    return xxx_messageInfo_NetworkAttachment.Marshal(b, m, deterministic)
                                } else {
                                    b = b[:cap(b)]
                            Severity: Major
                            Found in api/objects.pb.go and 101 other locations - About 45 mins to fix
                            api/ca.pb.go on lines 50..61
                            api/ca.pb.go on lines 87..98
                            api/ca.pb.go on lines 131..142
                            api/ca.pb.go on lines 168..179
                            api/ca.pb.go on lines 203..214
                            api/ca.pb.go on lines 239..250
                            api/ca.pb.go on lines 274..285
                            api/ca.pb.go on lines 311..322
                            api/dispatcher.pb.go on lines 112..123
                            api/dispatcher.pb.go on lines 202..213
                            api/dispatcher.pb.go on lines 239..250
                            api/dispatcher.pb.go on lines 277..288
                            api/dispatcher.pb.go on lines 316..327
                            api/dispatcher.pb.go on lines 355..366
                            api/dispatcher.pb.go on lines 390..401
                            api/dispatcher.pb.go on lines 427..438
                            api/dispatcher.pb.go on lines 476..487
                            api/dispatcher.pb.go on lines 511..522
                            api/dispatcher.pb.go on lines 547..558
                            api/dispatcher.pb.go on lines 585..596
                            api/dispatcher.pb.go on lines 621..632
                            api/dispatcher.pb.go on lines 662..673
                            api/dispatcher.pb.go on lines 768..779
                            api/dispatcher.pb.go on lines 816..827
                            api/health.pb.go on lines 77..88
                            api/health.pb.go on lines 113..124
                            api/logbroker.pb.go on lines 105..116
                            api/logbroker.pb.go on lines 148..159
                            api/logbroker.pb.go on lines 187..198
                            api/logbroker.pb.go on lines 225..236
                            api/logbroker.pb.go on lines 273..284
                            api/logbroker.pb.go on lines 311..322
                            api/logbroker.pb.go on lines 347..358
                            api/logbroker.pb.go on lines 384..395
                            api/logbroker.pb.go on lines 432..443
                            api/logbroker.pb.go on lines 477..488
                            api/logbroker.pb.go on lines 512..523
                            api/objects.pb.go on lines 51..62
                            api/objects.pb.go on lines 123..134
                            api/objects.pb.go on lines 190..201
                            api/objects.pb.go on lines 235..246
                            api/objects.pb.go on lines 283..294
                            api/objects.pb.go on lines 382..393
                            api/objects.pb.go on lines 486..497
                            api/objects.pb.go on lines 558..569
                            api/objects.pb.go on lines 602..613
                            api/objects.pb.go on lines 644..655
                            api/objects.pb.go on lines 692..703
                            api/objects.pb.go on lines 733..744
                            api/objects.pb.go on lines 790..801
                            api/raft.pb.go on lines 90..101
                            api/raft.pb.go on lines 127..138
                            api/raft.pb.go on lines 169..180
                            api/raft.pb.go on lines 205..216
                            api/raft.pb.go on lines 240..251
                            api/raft.pb.go on lines 276..287
                            api/raft.pb.go on lines 311..322
                            api/raft.pb.go on lines 348..359
                            api/raft.pb.go on lines 384..395
                            api/raft.pb.go on lines 421..432
                            api/raft.pb.go on lines 458..469
                            api/raft.pb.go on lines 498..509
                            api/raft.pb.go on lines 547..558
                            api/resource.pb.go on lines 51..62
                            api/resource.pb.go on lines 87..98
                            api/resource.pb.go on lines 123..134
                            api/resource.pb.go on lines 158..169
                            api/snapshot.pb.go on lines 73..84
                            api/snapshot.pb.go on lines 111..122
                            api/snapshot.pb.go on lines 149..160
                            api/specs.pb.go on lines 211..222
                            api/specs.pb.go on lines 274..285
                            api/specs.pb.go on lines 380..391
                            api/specs.pb.go on lines 416..427
                            api/specs.pb.go on lines 461..472
                            api/specs.pb.go on lines 498..509
                            api/specs.pb.go on lines 565..576
                            api/specs.pb.go on lines 659..670
                            api/specs.pb.go on lines 696..707
                            api/specs.pb.go on lines 736..747
                            api/specs.pb.go on lines 891..902
                            api/specs.pb.go on lines 932..943
                            api/specs.pb.go on lines 977..988
                            api/specs.pb.go on lines 1015..1026
                            api/specs.pb.go on lines 1056..1067
                            api/specs.pb.go on lines 1119..1130
                            api/specs.pb.go on lines 1205..1216
                            api/specs.pb.go on lines 1252..1263
                            api/specs.pb.go on lines 1299..1310
                            api/specs.pb.go on lines 1376..1387
                            api/watch.pb.go on lines 95..106
                            api/watch.pb.go on lines 275..286
                            api/watch.pb.go on lines 313..324
                            api/watch.pb.go on lines 370..381
                            api/watch.pb.go on lines 633..644
                            api/watch.pb.go on lines 677..688
                            api/watch.pb.go on lines 719..730
                            api/watch.pb.go on lines 764..775
                            protobuf/plugin/plugin.pb.go on lines 58..69
                            protobuf/plugin/plugin.pb.go on lines 94..105
                            protobuf/plugin/plugin.pb.go on lines 135..146

                            Duplicated Code

                            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                            Tuning

                            This issue has a mass of 115.

                            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                            Refactorings

                            Further Reading

                            Similar blocks of code found in 102 locations. Consider refactoring.
                            Open

                            func (m *SessionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
                                if deterministic {
                                    return xxx_messageInfo_SessionRequest.Marshal(b, m, deterministic)
                                } else {
                                    b = b[:cap(b)]
                            Severity: Major
                            Found in api/dispatcher.pb.go and 101 other locations - About 45 mins to fix
                            api/ca.pb.go on lines 50..61
                            api/ca.pb.go on lines 87..98
                            api/ca.pb.go on lines 131..142
                            api/ca.pb.go on lines 168..179
                            api/ca.pb.go on lines 203..214
                            api/ca.pb.go on lines 239..250
                            api/ca.pb.go on lines 274..285
                            api/ca.pb.go on lines 311..322
                            api/dispatcher.pb.go on lines 202..213
                            api/dispatcher.pb.go on lines 239..250
                            api/dispatcher.pb.go on lines 277..288
                            api/dispatcher.pb.go on lines 316..327
                            api/dispatcher.pb.go on lines 355..366
                            api/dispatcher.pb.go on lines 390..401
                            api/dispatcher.pb.go on lines 427..438
                            api/dispatcher.pb.go on lines 476..487
                            api/dispatcher.pb.go on lines 511..522
                            api/dispatcher.pb.go on lines 547..558
                            api/dispatcher.pb.go on lines 585..596
                            api/dispatcher.pb.go on lines 621..632
                            api/dispatcher.pb.go on lines 662..673
                            api/dispatcher.pb.go on lines 768..779
                            api/dispatcher.pb.go on lines 816..827
                            api/health.pb.go on lines 77..88
                            api/health.pb.go on lines 113..124
                            api/logbroker.pb.go on lines 105..116
                            api/logbroker.pb.go on lines 148..159
                            api/logbroker.pb.go on lines 187..198
                            api/logbroker.pb.go on lines 225..236
                            api/logbroker.pb.go on lines 273..284
                            api/logbroker.pb.go on lines 311..322
                            api/logbroker.pb.go on lines 347..358
                            api/logbroker.pb.go on lines 384..395
                            api/logbroker.pb.go on lines 432..443
                            api/logbroker.pb.go on lines 477..488
                            api/logbroker.pb.go on lines 512..523
                            api/objects.pb.go on lines 51..62
                            api/objects.pb.go on lines 123..134
                            api/objects.pb.go on lines 190..201
                            api/objects.pb.go on lines 235..246
                            api/objects.pb.go on lines 283..294
                            api/objects.pb.go on lines 382..393
                            api/objects.pb.go on lines 430..441
                            api/objects.pb.go on lines 486..497
                            api/objects.pb.go on lines 558..569
                            api/objects.pb.go on lines 602..613
                            api/objects.pb.go on lines 644..655
                            api/objects.pb.go on lines 692..703
                            api/objects.pb.go on lines 733..744
                            api/objects.pb.go on lines 790..801
                            api/raft.pb.go on lines 90..101
                            api/raft.pb.go on lines 127..138
                            api/raft.pb.go on lines 169..180
                            api/raft.pb.go on lines 205..216
                            api/raft.pb.go on lines 240..251
                            api/raft.pb.go on lines 276..287
                            api/raft.pb.go on lines 311..322
                            api/raft.pb.go on lines 348..359
                            api/raft.pb.go on lines 384..395
                            api/raft.pb.go on lines 421..432
                            api/raft.pb.go on lines 458..469
                            api/raft.pb.go on lines 498..509
                            api/raft.pb.go on lines 547..558
                            api/resource.pb.go on lines 51..62
                            api/resource.pb.go on lines 87..98
                            api/resource.pb.go on lines 123..134
                            api/resource.pb.go on lines 158..169
                            api/snapshot.pb.go on lines 73..84
                            api/snapshot.pb.go on lines 111..122
                            api/snapshot.pb.go on lines 149..160
                            api/specs.pb.go on lines 211..222
                            api/specs.pb.go on lines 274..285
                            api/specs.pb.go on lines 380..391
                            api/specs.pb.go on lines 416..427
                            api/specs.pb.go on lines 461..472
                            api/specs.pb.go on lines 498..509
                            api/specs.pb.go on lines 565..576
                            api/specs.pb.go on lines 659..670
                            api/specs.pb.go on lines 696..707
                            api/specs.pb.go on lines 736..747
                            api/specs.pb.go on lines 891..902
                            api/specs.pb.go on lines 932..943
                            api/specs.pb.go on lines 977..988
                            api/specs.pb.go on lines 1015..1026
                            api/specs.pb.go on lines 1056..1067
                            api/specs.pb.go on lines 1119..1130
                            api/specs.pb.go on lines 1205..1216
                            api/specs.pb.go on lines 1252..1263
                            api/specs.pb.go on lines 1299..1310
                            api/specs.pb.go on lines 1376..1387
                            api/watch.pb.go on lines 95..106
                            api/watch.pb.go on lines 275..286
                            api/watch.pb.go on lines 313..324
                            api/watch.pb.go on lines 370..381
                            api/watch.pb.go on lines 633..644
                            api/watch.pb.go on lines 677..688
                            api/watch.pb.go on lines 719..730
                            api/watch.pb.go on lines 764..775
                            protobuf/plugin/plugin.pb.go on lines 58..69
                            protobuf/plugin/plugin.pb.go on lines 94..105
                            protobuf/plugin/plugin.pb.go on lines 135..146

                            Duplicated Code

                            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                            Tuning

                            This issue has a mass of 115.

                            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                            Refactorings

                            Further Reading

                            Similar blocks of code found in 102 locations. Consider refactoring.
                            Open

                            func (m *AssignmentsMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
                                if deterministic {
                                    return xxx_messageInfo_AssignmentsMessage.Marshal(b, m, deterministic)
                                } else {
                                    b = b[:cap(b)]
                            Severity: Major
                            Found in api/dispatcher.pb.go and 101 other locations - About 45 mins to fix
                            api/ca.pb.go on lines 50..61
                            api/ca.pb.go on lines 87..98
                            api/ca.pb.go on lines 131..142
                            api/ca.pb.go on lines 168..179
                            api/ca.pb.go on lines 203..214
                            api/ca.pb.go on lines 239..250
                            api/ca.pb.go on lines 274..285
                            api/ca.pb.go on lines 311..322
                            api/dispatcher.pb.go on lines 112..123
                            api/dispatcher.pb.go on lines 202..213
                            api/dispatcher.pb.go on lines 239..250
                            api/dispatcher.pb.go on lines 277..288
                            api/dispatcher.pb.go on lines 316..327
                            api/dispatcher.pb.go on lines 355..366
                            api/dispatcher.pb.go on lines 390..401
                            api/dispatcher.pb.go on lines 427..438
                            api/dispatcher.pb.go on lines 476..487
                            api/dispatcher.pb.go on lines 511..522
                            api/dispatcher.pb.go on lines 547..558
                            api/dispatcher.pb.go on lines 585..596
                            api/dispatcher.pb.go on lines 621..632
                            api/dispatcher.pb.go on lines 662..673
                            api/dispatcher.pb.go on lines 768..779
                            api/health.pb.go on lines 77..88
                            api/health.pb.go on lines 113..124
                            api/logbroker.pb.go on lines 105..116
                            api/logbroker.pb.go on lines 148..159
                            api/logbroker.pb.go on lines 187..198
                            api/logbroker.pb.go on lines 225..236
                            api/logbroker.pb.go on lines 273..284
                            api/logbroker.pb.go on lines 311..322
                            api/logbroker.pb.go on lines 347..358
                            api/logbroker.pb.go on lines 384..395
                            api/logbroker.pb.go on lines 432..443
                            api/logbroker.pb.go on lines 477..488
                            api/logbroker.pb.go on lines 512..523
                            api/objects.pb.go on lines 51..62
                            api/objects.pb.go on lines 123..134
                            api/objects.pb.go on lines 190..201
                            api/objects.pb.go on lines 235..246
                            api/objects.pb.go on lines 283..294
                            api/objects.pb.go on lines 382..393
                            api/objects.pb.go on lines 430..441
                            api/objects.pb.go on lines 486..497
                            api/objects.pb.go on lines 558..569
                            api/objects.pb.go on lines 602..613
                            api/objects.pb.go on lines 644..655
                            api/objects.pb.go on lines 692..703
                            api/objects.pb.go on lines 733..744
                            api/objects.pb.go on lines 790..801
                            api/raft.pb.go on lines 90..101
                            api/raft.pb.go on lines 127..138
                            api/raft.pb.go on lines 169..180
                            api/raft.pb.go on lines 205..216
                            api/raft.pb.go on lines 240..251
                            api/raft.pb.go on lines 276..287
                            api/raft.pb.go on lines 311..322
                            api/raft.pb.go on lines 348..359
                            api/raft.pb.go on lines 384..395
                            api/raft.pb.go on lines 421..432
                            api/raft.pb.go on lines 458..469
                            api/raft.pb.go on lines 498..509
                            api/raft.pb.go on lines 547..558
                            api/resource.pb.go on lines 51..62
                            api/resource.pb.go on lines 87..98
                            api/resource.pb.go on lines 123..134
                            api/resource.pb.go on lines 158..169
                            api/snapshot.pb.go on lines 73..84
                            api/snapshot.pb.go on lines 111..122
                            api/snapshot.pb.go on lines 149..160
                            api/specs.pb.go on lines 211..222
                            api/specs.pb.go on lines 274..285
                            api/specs.pb.go on lines 380..391
                            api/specs.pb.go on lines 416..427
                            api/specs.pb.go on lines 461..472
                            api/specs.pb.go on lines 498..509
                            api/specs.pb.go on lines 565..576
                            api/specs.pb.go on lines 659..670
                            api/specs.pb.go on lines 696..707
                            api/specs.pb.go on lines 736..747
                            api/specs.pb.go on lines 891..902
                            api/specs.pb.go on lines 932..943
                            api/specs.pb.go on lines 977..988
                            api/specs.pb.go on lines 1015..1026
                            api/specs.pb.go on lines 1056..1067
                            api/specs.pb.go on lines 1119..1130
                            api/specs.pb.go on lines 1205..1216
                            api/specs.pb.go on lines 1252..1263
                            api/specs.pb.go on lines 1299..1310
                            api/specs.pb.go on lines 1376..1387
                            api/watch.pb.go on lines 95..106
                            api/watch.pb.go on lines 275..286
                            api/watch.pb.go on lines 313..324
                            api/watch.pb.go on lines 370..381
                            api/watch.pb.go on lines 633..644
                            api/watch.pb.go on lines 677..688
                            api/watch.pb.go on lines 719..730
                            api/watch.pb.go on lines 764..775
                            protobuf/plugin/plugin.pb.go on lines 58..69
                            protobuf/plugin/plugin.pb.go on lines 94..105
                            protobuf/plugin/plugin.pb.go on lines 135..146

                            Duplicated Code

                            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                            Tuning

                            This issue has a mass of 115.

                            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                            Refactorings

                            Further Reading

                            Similar blocks of code found in 102 locations. Consider refactoring.
                            Open

                            func (m *Cluster) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
                                if deterministic {
                                    return xxx_messageInfo_Cluster.Marshal(b, m, deterministic)
                                } else {
                                    b = b[:cap(b)]
                            Severity: Major
                            Found in api/objects.pb.go and 101 other locations - About 45 mins to fix
                            api/ca.pb.go on lines 50..61
                            api/ca.pb.go on lines 87..98
                            api/ca.pb.go on lines 131..142
                            api/ca.pb.go on lines 168..179
                            api/ca.pb.go on lines 203..214
                            api/ca.pb.go on lines 239..250
                            api/ca.pb.go on lines 274..285
                            api/ca.pb.go on lines 311..322
                            api/dispatcher.pb.go on lines 112..123
                            api/dispatcher.pb.go on lines 202..213
                            api/dispatcher.pb.go on lines 239..250
                            api/dispatcher.pb.go on lines 277..288
                            api/dispatcher.pb.go on lines 316..327
                            api/dispatcher.pb.go on lines 355..366
                            api/dispatcher.pb.go on lines 390..401
                            api/dispatcher.pb.go on lines 427..438
                            api/dispatcher.pb.go on lines 476..487
                            api/dispatcher.pb.go on lines 511..522
                            api/dispatcher.pb.go on lines 547..558
                            api/dispatcher.pb.go on lines 585..596
                            api/dispatcher.pb.go on lines 621..632
                            api/dispatcher.pb.go on lines 662..673
                            api/dispatcher.pb.go on lines 768..779
                            api/dispatcher.pb.go on lines 816..827
                            api/health.pb.go on lines 77..88
                            api/health.pb.go on lines 113..124
                            api/logbroker.pb.go on lines 105..116
                            api/logbroker.pb.go on lines 148..159
                            api/logbroker.pb.go on lines 187..198
                            api/logbroker.pb.go on lines 225..236
                            api/logbroker.pb.go on lines 273..284
                            api/logbroker.pb.go on lines 311..322
                            api/logbroker.pb.go on lines 347..358
                            api/logbroker.pb.go on lines 384..395
                            api/logbroker.pb.go on lines 432..443
                            api/logbroker.pb.go on lines 477..488
                            api/logbroker.pb.go on lines 512..523
                            api/objects.pb.go on lines 51..62
                            api/objects.pb.go on lines 123..134
                            api/objects.pb.go on lines 190..201
                            api/objects.pb.go on lines 235..246
                            api/objects.pb.go on lines 283..294
                            api/objects.pb.go on lines 382..393
                            api/objects.pb.go on lines 430..441
                            api/objects.pb.go on lines 486..497
                            api/objects.pb.go on lines 602..613
                            api/objects.pb.go on lines 644..655
                            api/objects.pb.go on lines 692..703
                            api/objects.pb.go on lines 733..744
                            api/objects.pb.go on lines 790..801
                            api/raft.pb.go on lines 90..101
                            api/raft.pb.go on lines 127..138
                            api/raft.pb.go on lines 169..180
                            api/raft.pb.go on lines 205..216
                            api/raft.pb.go on lines 240..251
                            api/raft.pb.go on lines 276..287
                            api/raft.pb.go on lines 311..322
                            api/raft.pb.go on lines 348..359
                            api/raft.pb.go on lines 384..395
                            api/raft.pb.go on lines 421..432
                            api/raft.pb.go on lines 458..469
                            api/raft.pb.go on lines 498..509
                            api/raft.pb.go on lines 547..558
                            api/resource.pb.go on lines 51..62
                            api/resource.pb.go on lines 87..98
                            api/resource.pb.go on lines 123..134
                            api/resource.pb.go on lines 158..169
                            api/snapshot.pb.go on lines 73..84
                            api/snapshot.pb.go on lines 111..122
                            api/snapshot.pb.go on lines 149..160
                            api/specs.pb.go on lines 211..222
                            api/specs.pb.go on lines 274..285
                            api/specs.pb.go on lines 380..391
                            api/specs.pb.go on lines 416..427
                            api/specs.pb.go on lines 461..472
                            api/specs.pb.go on lines 498..509
                            api/specs.pb.go on lines 565..576
                            api/specs.pb.go on lines 659..670
                            api/specs.pb.go on lines 696..707
                            api/specs.pb.go on lines 736..747
                            api/specs.pb.go on lines 891..902
                            api/specs.pb.go on lines 932..943
                            api/specs.pb.go on lines 977..988
                            api/specs.pb.go on lines 1015..1026
                            api/specs.pb.go on lines 1056..1067
                            api/specs.pb.go on lines 1119..1130
                            api/specs.pb.go on lines 1205..1216
                            api/specs.pb.go on lines 1252..1263
                            api/specs.pb.go on lines 1299..1310
                            api/specs.pb.go on lines 1376..1387
                            api/watch.pb.go on lines 95..106
                            api/watch.pb.go on lines 275..286
                            api/watch.pb.go on lines 313..324
                            api/watch.pb.go on lines 370..381
                            api/watch.pb.go on lines 633..644
                            api/watch.pb.go on lines 677..688
                            api/watch.pb.go on lines 719..730
                            api/watch.pb.go on lines 764..775
                            protobuf/plugin/plugin.pb.go on lines 58..69
                            protobuf/plugin/plugin.pb.go on lines 94..105
                            protobuf/plugin/plugin.pb.go on lines 135..146

                            Duplicated Code

                            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                            Tuning

                            This issue has a mass of 115.

                            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                            Refactorings

                            Further Reading

                            Similar blocks of code found in 102 locations. Consider refactoring.
                            Open

                            func (m *DetachNetworkRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
                                if deterministic {
                                    return xxx_messageInfo_DetachNetworkRequest.Marshal(b, m, deterministic)
                                } else {
                                    b = b[:cap(b)]
                            Severity: Major
                            Found in api/resource.pb.go and 101 other locations - About 45 mins to fix
                            api/ca.pb.go on lines 50..61
                            api/ca.pb.go on lines 87..98
                            api/ca.pb.go on lines 131..142
                            api/ca.pb.go on lines 168..179
                            api/ca.pb.go on lines 203..214
                            api/ca.pb.go on lines 239..250
                            api/ca.pb.go on lines 274..285
                            api/ca.pb.go on lines 311..322
                            api/dispatcher.pb.go on lines 112..123
                            api/dispatcher.pb.go on lines 202..213
                            api/dispatcher.pb.go on lines 239..250
                            api/dispatcher.pb.go on lines 277..288
                            api/dispatcher.pb.go on lines 316..327
                            api/dispatcher.pb.go on lines 355..366
                            api/dispatcher.pb.go on lines 390..401
                            api/dispatcher.pb.go on lines 427..438
                            api/dispatcher.pb.go on lines 476..487
                            api/dispatcher.pb.go on lines 511..522
                            api/dispatcher.pb.go on lines 547..558
                            api/dispatcher.pb.go on lines 585..596
                            api/dispatcher.pb.go on lines 621..632
                            api/dispatcher.pb.go on lines 662..673
                            api/dispatcher.pb.go on lines 768..779
                            api/dispatcher.pb.go on lines 816..827
                            api/health.pb.go on lines 77..88
                            api/health.pb.go on lines 113..124
                            api/logbroker.pb.go on lines 105..116
                            api/logbroker.pb.go on lines 148..159
                            api/logbroker.pb.go on lines 187..198
                            api/logbroker.pb.go on lines 225..236
                            api/logbroker.pb.go on lines 273..284
                            api/logbroker.pb.go on lines 311..322
                            api/logbroker.pb.go on lines 347..358
                            api/logbroker.pb.go on lines 384..395
                            api/logbroker.pb.go on lines 432..443
                            api/logbroker.pb.go on lines 477..488
                            api/logbroker.pb.go on lines 512..523
                            api/objects.pb.go on lines 51..62
                            api/objects.pb.go on lines 123..134
                            api/objects.pb.go on lines 190..201
                            api/objects.pb.go on lines 235..246
                            api/objects.pb.go on lines 283..294
                            api/objects.pb.go on lines 382..393
                            api/objects.pb.go on lines 430..441
                            api/objects.pb.go on lines 486..497
                            api/objects.pb.go on lines 558..569
                            api/objects.pb.go on lines 602..613
                            api/objects.pb.go on lines 644..655
                            api/objects.pb.go on lines 692..703
                            api/objects.pb.go on lines 733..744
                            api/objects.pb.go on lines 790..801
                            api/raft.pb.go on lines 90..101
                            api/raft.pb.go on lines 127..138
                            api/raft.pb.go on lines 169..180
                            api/raft.pb.go on lines 205..216
                            api/raft.pb.go on lines 240..251
                            api/raft.pb.go on lines 276..287
                            api/raft.pb.go on lines 311..322
                            api/raft.pb.go on lines 348..359
                            api/raft.pb.go on lines 384..395
                            api/raft.pb.go on lines 421..432
                            api/raft.pb.go on lines 458..469
                            api/raft.pb.go on lines 498..509
                            api/raft.pb.go on lines 547..558
                            api/resource.pb.go on lines 51..62
                            api/resource.pb.go on lines 87..98
                            api/resource.pb.go on lines 158..169
                            api/snapshot.pb.go on lines 73..84
                            api/snapshot.pb.go on lines 111..122
                            api/snapshot.pb.go on lines 149..160
                            api/specs.pb.go on lines 211..222
                            api/specs.pb.go on lines 274..285
                            api/specs.pb.go on lines 380..391
                            api/specs.pb.go on lines 416..427
                            api/specs.pb.go on lines 461..472
                            api/specs.pb.go on lines 498..509
                            api/specs.pb.go on lines 565..576
                            api/specs.pb.go on lines 659..670
                            api/specs.pb.go on lines 696..707
                            api/specs.pb.go on lines 736..747
                            api/specs.pb.go on lines 891..902
                            api/specs.pb.go on lines 932..943
                            api/specs.pb.go on lines 977..988
                            api/specs.pb.go on lines 1015..1026
                            api/specs.pb.go on lines 1056..1067
                            api/specs.pb.go on lines 1119..1130
                            api/specs.pb.go on lines 1205..1216
                            api/specs.pb.go on lines 1252..1263
                            api/specs.pb.go on lines 1299..1310
                            api/specs.pb.go on lines 1376..1387
                            api/watch.pb.go on lines 95..106
                            api/watch.pb.go on lines 275..286
                            api/watch.pb.go on lines 313..324
                            api/watch.pb.go on lines 370..381
                            api/watch.pb.go on lines 633..644
                            api/watch.pb.go on lines 677..688
                            api/watch.pb.go on lines 719..730
                            api/watch.pb.go on lines 764..775
                            protobuf/plugin/plugin.pb.go on lines 58..69
                            protobuf/plugin/plugin.pb.go on lines 94..105
                            protobuf/plugin/plugin.pb.go on lines 135..146

                            Duplicated Code

                            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                            Tuning

                            This issue has a mass of 115.

                            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                            Refactorings

                            Further Reading

                            Similar blocks of code found in 102 locations. Consider refactoring.
                            Open

                            func (m *UpdateVolumeStatusRequest_VolumeStatusUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
                                if deterministic {
                                    return xxx_messageInfo_UpdateVolumeStatusRequest_VolumeStatusUpdate.Marshal(b, m, deterministic)
                                } else {
                                    b = b[:cap(b)]
                            Severity: Major
                            Found in api/dispatcher.pb.go and 101 other locations - About 45 mins to fix
                            api/ca.pb.go on lines 50..61
                            api/ca.pb.go on lines 87..98
                            api/ca.pb.go on lines 131..142
                            api/ca.pb.go on lines 168..179
                            api/ca.pb.go on lines 203..214
                            api/ca.pb.go on lines 239..250
                            api/ca.pb.go on lines 274..285
                            api/ca.pb.go on lines 311..322
                            api/dispatcher.pb.go on lines 112..123
                            api/dispatcher.pb.go on lines 202..213
                            api/dispatcher.pb.go on lines 239..250
                            api/dispatcher.pb.go on lines 277..288
                            api/dispatcher.pb.go on lines 316..327
                            api/dispatcher.pb.go on lines 355..366
                            api/dispatcher.pb.go on lines 390..401
                            api/dispatcher.pb.go on lines 427..438
                            api/dispatcher.pb.go on lines 511..522
                            api/dispatcher.pb.go on lines 547..558
                            api/dispatcher.pb.go on lines 585..596
                            api/dispatcher.pb.go on lines 621..632
                            api/dispatcher.pb.go on lines 662..673
                            api/dispatcher.pb.go on lines 768..779
                            api/dispatcher.pb.go on lines 816..827
                            api/health.pb.go on lines 77..88
                            api/health.pb.go on lines 113..124
                            api/logbroker.pb.go on lines 105..116
                            api/logbroker.pb.go on lines 148..159
                            api/logbroker.pb.go on lines 187..198
                            api/logbroker.pb.go on lines 225..236
                            api/logbroker.pb.go on lines 273..284
                            api/logbroker.pb.go on lines 311..322
                            api/logbroker.pb.go on lines 347..358
                            api/logbroker.pb.go on lines 384..395
                            api/logbroker.pb.go on lines 432..443
                            api/logbroker.pb.go on lines 477..488
                            api/logbroker.pb.go on lines 512..523
                            api/objects.pb.go on lines 51..62
                            api/objects.pb.go on lines 123..134
                            api/objects.pb.go on lines 190..201
                            api/objects.pb.go on lines 235..246
                            api/objects.pb.go on lines 283..294
                            api/objects.pb.go on lines 382..393
                            api/objects.pb.go on lines 430..441
                            api/objects.pb.go on lines 486..497
                            api/objects.pb.go on lines 558..569
                            api/objects.pb.go on lines 602..613
                            api/objects.pb.go on lines 644..655
                            api/objects.pb.go on lines 692..703
                            api/objects.pb.go on lines 733..744
                            api/objects.pb.go on lines 790..801
                            api/raft.pb.go on lines 90..101
                            api/raft.pb.go on lines 127..138
                            api/raft.pb.go on lines 169..180
                            api/raft.pb.go on lines 205..216
                            api/raft.pb.go on lines 240..251
                            api/raft.pb.go on lines 276..287
                            api/raft.pb.go on lines 311..322
                            api/raft.pb.go on lines 348..359
                            api/raft.pb.go on lines 384..395
                            api/raft.pb.go on lines 421..432
                            api/raft.pb.go on lines 458..469
                            api/raft.pb.go on lines 498..509
                            api/raft.pb.go on lines 547..558
                            api/resource.pb.go on lines 51..62
                            api/resource.pb.go on lines 87..98
                            api/resource.pb.go on lines 123..134
                            api/resource.pb.go on lines 158..169
                            api/snapshot.pb.go on lines 73..84
                            api/snapshot.pb.go on lines 111..122
                            api/snapshot.pb.go on lines 149..160
                            api/specs.pb.go on lines 211..222
                            api/specs.pb.go on lines 274..285
                            api/specs.pb.go on lines 380..391
                            api/specs.pb.go on lines 416..427
                            api/specs.pb.go on lines 461..472
                            api/specs.pb.go on lines 498..509
                            api/specs.pb.go on lines 565..576
                            api/specs.pb.go on lines 659..670
                            api/specs.pb.go on lines 696..707
                            api/specs.pb.go on lines 736..747
                            api/specs.pb.go on lines 891..902
                            api/specs.pb.go on lines 932..943
                            api/specs.pb.go on lines 977..988
                            api/specs.pb.go on lines 1015..1026
                            api/specs.pb.go on lines 1056..1067
                            api/specs.pb.go on lines 1119..1130
                            api/specs.pb.go on lines 1205..1216
                            api/specs.pb.go on lines 1252..1263
                            api/specs.pb.go on lines 1299..1310
                            api/specs.pb.go on lines 1376..1387
                            api/watch.pb.go on lines 95..106
                            api/watch.pb.go on lines 275..286
                            api/watch.pb.go on lines 313..324
                            api/watch.pb.go on lines 370..381
                            api/watch.pb.go on lines 633..644
                            api/watch.pb.go on lines 677..688
                            api/watch.pb.go on lines 719..730
                            api/watch.pb.go on lines 764..775
                            protobuf/plugin/plugin.pb.go on lines 58..69
                            protobuf/plugin/plugin.pb.go on lines 94..105
                            protobuf/plugin/plugin.pb.go on lines 135..146

                            Duplicated Code

                            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                            Tuning

                            This issue has a mass of 115.

                            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                            Refactorings

                            Further Reading

                            Severity
                            Category
                            Status
                            Source
                            Language