palourde/uchiwa

View on GitHub

Showing 56 of 81 total issues

File server.go has 1078 lines of code (exceeds 500 allowed). Consider refactoring.
Open

package uchiwa

import (
    "compress/gzip"
    "crypto/tls"
Severity: Major
Found in uchiwa/server.go - About 1 day to fix

    Method Uchiwa.aggregateHandler has a Cognitive Complexity of 50 (exceeds 20 allowed). Consider refactoring.
    Open

    func (u *Uchiwa) aggregateHandler(w http.ResponseWriter, r *http.Request) {
        if r.Method != http.MethodGet && r.Method != http.MethodHead && r.Method != http.MethodDelete {
            http.Error(w, "", http.StatusBadRequest)
            return
        }
    Severity: Minor
    Found in uchiwa/server.go - About 5 hrs 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 rawMetricsToAggregatedCoordinates has a Cognitive Complexity of 44 (exceeds 20 allowed). Consider refactoring.
    Open

    func rawMetricsToAggregatedCoordinates(rawMetrics []*structs.SERawMetric) *structs.SEMetric {
        // Find the oldest data point in the last position
        var oldest float64
        for _, metrics := range rawMetrics {
            count := len(metrics.Points)
    Severity: Minor
    Found in uchiwa/daemon/metrics.go - About 4 hrs 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

    Method Uchiwa.aggregateHandler has 116 lines of code (exceeds 50 allowed). Consider refactoring.
    Open

    func (u *Uchiwa) aggregateHandler(w http.ResponseWriter, r *http.Request) {
        if r.Method != http.MethodGet && r.Method != http.MethodHead && r.Method != http.MethodDelete {
            http.Error(w, "", http.StatusBadRequest)
            return
        }
    Severity: Major
    Found in uchiwa/server.go - About 3 hrs to fix

      Function IsCheckSilenced has a Cognitive Complexity of 37 (exceeds 20 allowed). Consider refactoring.
      Open

      func IsCheckSilenced(check, client map[string]interface{}, dc string, silenced []interface{}) (bool, []string) {
          var isSilenced bool
          var commonSubscriptions, isSilencedBy, subscribers, subscriptions []string
      
          if dc == "" || len(silenced) == 0 {
      Severity: Minor
      Found in uchiwa/helpers/helpers.go - About 3 hrs 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 findClientEvents has a Cognitive Complexity of 36 (exceeds 20 allowed). Consider refactoring.
      Open

      func findClientEvents(client map[string]interface{}, events *[]interface{}) map[string]interface{} {
          if len(*events) == 0 {
              client["status"] = 0
          } else {
              var criticals, warnings int
      Severity: Minor
      Found in uchiwa/daemon/clients.go - About 2 hrs 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

      Method Uchiwa.clientHandler has 94 lines of code (exceeds 50 allowed). Consider refactoring.
      Open

      func (u *Uchiwa) clientHandler(w http.ResponseWriter, r *http.Request) {
          // We only support DELETE & GET requests
          if r.Method != http.MethodDelete && r.Method != http.MethodGet && r.Method != http.MethodHead {
              http.Error(w, "", http.StatusBadRequest)
              return
      Severity: Major
      Found in uchiwa/server.go - About 2 hrs to fix

        Method Uchiwa.silencedHandler has a Cognitive Complexity of 35 (exceeds 20 allowed). Consider refactoring.
        Open

        func (u *Uchiwa) silencedHandler(w http.ResponseWriter, r *http.Request) {
            token := authentication.GetJWTFromContext(r)
        
            if r.Method == http.MethodGet || r.Method == http.MethodHead {
                // GET on /silenced
        Severity: Minor
        Found in uchiwa/server.go - About 2 hrs 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

        Method Uchiwa.clientHandler has a Cognitive Complexity of 34 (exceeds 20 allowed). Consider refactoring.
        Open

        func (u *Uchiwa) clientHandler(w http.ResponseWriter, r *http.Request) {
            // We only support DELETE & GET requests
            if r.Method != http.MethodDelete && r.Method != http.MethodGet && r.Method != http.MethodHead {
                http.Error(w, "", http.StatusBadRequest)
                return
        Severity: Minor
        Found in uchiwa/server.go - About 2 hrs 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

        Uchiwa has 23 methods (exceeds 20 allowed). Consider refactoring.
        Open

        func (u *Uchiwa) aggregateHandler(w http.ResponseWriter, r *http.Request) {
            if r.Method != http.MethodGet && r.Method != http.MethodHead && r.Method != http.MethodDelete {
                http.Error(w, "", http.StatusBadRequest)
                return
            }
        Severity: Minor
        Found in uchiwa/server.go - About 2 hrs to fix

          Function initUchiwa has a Cognitive Complexity of 32 (exceeds 20 allowed). Consider refactoring.
          Open

          func initUchiwa(global GlobalConfig) GlobalConfig {
          
              // Set the proper authentication driver
              if global.Github.Server != "" {
                  global.Auth.Driver = "github"
          Severity: Minor
          Found in uchiwa/config/config.go - About 2 hrs 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

          Method DatacenterFetcher.Fetch has 77 lines of code (exceeds 50 allowed). Consider refactoring.
          Open

          func (f *DatacenterFetcher) Fetch() {
              defer f.wg.Done()
          
              logger.Infof("updating the datacenter %s", f.datacenter.Name)
          
          
          Severity: Major
          Found in uchiwa/daemon/daemon.go - About 2 hrs to fix

            Function IsCheckSilenced has 77 lines of code (exceeds 50 allowed). Consider refactoring.
            Open

            func IsCheckSilenced(check, client map[string]interface{}, dc string, silenced []interface{}) (bool, []string) {
                var isSilenced bool
                var commonSubscriptions, isSilencedBy, subscribers, subscriptions []string
            
                if dc == "" || len(silenced) == 0 {
            Severity: Major
            Found in uchiwa/helpers/helpers.go - About 2 hrs to fix

              Function exports has 50 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

              module.exports = function (grunt) {
                grunt.loadNpmTasks("grunt-cache-breaker");
              
                grunt.initConfig({
                  cachebreaker: {
              Severity: Minor
              Found in Gruntfile.js - About 2 hrs to fix

                Method Uchiwa.aggregateHandler has 22 return statements (exceeds 4 allowed).
                Open

                func (u *Uchiwa) aggregateHandler(w http.ResponseWriter, r *http.Request) {
                    if r.Method != http.MethodGet && r.Method != http.MethodHead && r.Method != http.MethodDelete {
                        http.Error(w, "", http.StatusBadRequest)
                        return
                    }
                Severity: Major
                Found in uchiwa/server.go - About 2 hrs to fix

                  Method API.doRequest has 71 lines of code (exceeds 50 allowed). Consider refactoring.
                  Open

                  func (api *API) doRequest(req *http.Request) ([]byte, *http.Response, error) {
                      if api.User != "" && api.Pass != "" {
                          req.SetBasicAuth(api.User, api.Pass)
                      }
                  
                  
                  Severity: Minor
                  Found in uchiwa/sensu/request.go - About 1 hr to fix

                    Method Uchiwa.checkHandler has 70 lines of code (exceeds 50 allowed). Consider refactoring.
                    Open

                    func (u *Uchiwa) checkHandler(w http.ResponseWriter, r *http.Request) {
                        // We only support DELETE & GET requests
                        if r.Method != http.MethodGet && r.Method != http.MethodHead {
                            http.Error(w, "", http.StatusBadRequest)
                            return
                    Severity: Minor
                    Found in uchiwa/server.go - About 1 hr to fix

                      Function GetEvent has a Cognitive Complexity of 29 (exceeds 20 allowed). Consider refactoring.
                      Open

                      func GetEvent(check, client, dc string, events *[]interface{}) (map[string]interface{}, error) {
                          if check == "" || client == "" || dc == "" || len(*events) == 0 {
                              return nil, errors.New("No parameters should be empty")
                          }
                      
                      
                      Severity: Minor
                      Found in uchiwa/helpers/helpers.go - About 1 hr 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

                      Method Uchiwa.silencedHandler has 68 lines of code (exceeds 50 allowed). Consider refactoring.
                      Open

                      func (u *Uchiwa) silencedHandler(w http.ResponseWriter, r *http.Request) {
                          token := authentication.GetJWTFromContext(r)
                      
                          if r.Method == http.MethodGet || r.Method == http.MethodHead {
                              // GET on /silenced
                      Severity: Minor
                      Found in uchiwa/server.go - About 1 hr to fix

                        Method Uchiwa.resultsHandler has 67 lines of code (exceeds 50 allowed). Consider refactoring.
                        Open

                        func (u *Uchiwa) resultsHandler(w http.ResponseWriter, r *http.Request) {
                            if r.Method != http.MethodDelete {
                                http.Error(w, "", http.StatusBadRequest)
                                return
                            }
                        Severity: Minor
                        Found in uchiwa/server.go - About 1 hr to fix
                          Severity
                          Category
                          Status
                          Source
                          Language