cloudfoundry-incubator/stratos

View on GitHub

Showing 1,111 of 1,370 total issues

Method Analyzer.Start has a Cognitive Complexity of 10 (exceeds 8 allowed). Consider refactoring.
Open

func (a *Analyzer) Start() {

    // Reports folder

    // Init reports directory
Severity: Minor
Found in src/jetstream/plugins/analysis/container/main.go - About 35 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

Method KubernetesSpecification.GetHelmConfiguration has 5 return statements (exceeds 4 allowed).
Open

func (c *KubernetesSpecification) GetHelmConfiguration(endpointGUID, userID, namespace string) (*action.Configuration, *HelmConfiguration, error) {
    // Need to get a config object for the target endpoint
    var p = c.portalProxy

    hc := &HelmConfiguration{}
Severity: Major
Found in src/jetstream/plugins/kubernetes/helm_client.go - About 35 mins to fix

    Method HelmReleaseGraph.ProcessService has a Cognitive Complexity of 10 (exceeds 8 allowed). Consider refactoring.
    Open

    func (r *HelmReleaseGraph) ProcessService(id string, res KubeResource, spec v1.ServiceSpec) {
        if len(spec.Selector) > 0 {
            // Find all Pods that match this selector
            for _, item := range r.Release.Resources {
                switch o := item.Resource.(type) {
    Severity: Minor
    Found in src/jetstream/plugins/kubernetes/helm/graph.go - About 35 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

    Method cnsiTokenBackup.createBackup has 5 return statements (exceeds 4 allowed).
    Open

    func (ctb *cnsiTokenBackup) createBackup(data *BackupRequest) (*BackupContent, error) {
        log.Debug("createBackup")
        allEndpoints, err := ctb.p.ListEndpoints()
        if err != nil {
            return nil, interfaces.NewHTTPShadowError(http.StatusBadGateway, "Failed to fetch endpoints", "Failed to fetch endpoints: %+v", err)
    Severity: Major
    Found in src/jetstream/plugins/backup/backup_restore.go - About 35 mins to fix

      Function fetchManifest has 5 return statements (exceeds 4 allowed).
      Open

      func fetchManifest(repoPath string, stratosProject StratosProject, clientWebSocket *websocket.Conn) (Applications, string, error) {
      
          var manifest Applications
      
          // Can be either manifest.yml or manifest.yaml
      Severity: Major
      Found in src/jetstream/plugins/cfapppush/deploy.go - About 35 mins to fix

        Method Monocular.fetchChartsFromArtifactHub has 5 return statements (exceeds 4 allowed).
        Open

        func (m *Monocular) fetchChartsFromArtifactHub(c echo.Context, endpointID string) error {
            cacheFolder := path.Join(m.CacheFolder, endpointID)
            indexFile := path.Join(cacheFolder, "hub_index.json")
            if ok := useCachedFile(indexFile); ok {
                // Just send the cached file
        Severity: Major
        Found in src/jetstream/plugins/monocular/artifacthub.go - About 35 mins to fix

          Function getScriptFolder has 5 return statements (exceeds 4 allowed).
          Open

          func getScriptFolder() string {
              fallbackPath, err := os.Getwd()
              if err != nil {
                  fallbackPath = "."
              }
          Severity: Major
          Found in src/jetstream/plugins/analysis/container/main.go - About 35 mins to fix

            Method MetricsSpecification.createMetadata has a Cognitive Complexity of 10 (exceeds 8 allowed). Consider refactoring.
            Open

            func (m *MetricsSpecification) createMetadata(metricEndpoint *url.URL, httpClient http.Client, auth *MetricsAuth) (string, error) {
                basicMetricRequest := fmt.Sprintf("%s/api/v1/query?query=firehose_total_metrics_received", metricEndpoint)
                req, err := http.NewRequest("GET", basicMetricRequest, nil)
                if err != nil {
                    msg := "Failed to create request for the Metrics Endpoint: %v"
            Severity: Minor
            Found in src/jetstream/plugins/metrics/main.go - About 35 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

            Method Analysis.deleteReports has a Cognitive Complexity of 10 (exceeds 8 allowed). Consider refactoring.
            Open

            func (c *Analysis) deleteReports(ec echo.Context) error {
                log.Debug("deleteReports")
                var p = c.portalProxy
            
                // Need to get a config object for the target endpoint
            Severity: Minor
            Found in src/jetstream/plugins/analysis/list.go - About 35 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

            Method PushConnectionWrapper.Make has a Cognitive Complexity of 10 (exceeds 8 allowed). Consider refactoring.
            Open

            func (cw PushConnectionWrapper) Make(request *cloudcontroller.Request, passedResponse *cloudcontroller.Response) error {
                // Check to see if the token is about to expire, if it is, refresh it first
                token, found := cw.portalProxy.GetCNSITokenRecord(cw.config.EndpointID, cw.config.UserID)
                if found {
                    // Aways update the access token, in case someone else refreshed it
            Severity: Minor
            Found in src/jetstream/plugins/cfapppush/connection_wrapper.go - About 35 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

            Method Monocular.getChartURL has 5 return statements (exceeds 4 allowed).
            Open

            func (m *Monocular) getChartURL(repoURL, name, version string) (string, error) {
                httpClient := m.portalProxy.GetHttpClient(true)
            
                helmIndexURL := joinURL(repoURL, "index.yaml")
                resp, err := httpClient.Get(helmIndexURL)
            Severity: Major
            Found in src/jetstream/plugins/monocular/artifacthub.go - About 35 mins to fix

              Method AzureKubeAuth.FetchToken has 5 return statements (exceeds 4 allowed).
              Open

              func (p *AzureKubeAuth) FetchToken(cnsiRecord interfaces.CNSIRecord, ec echo.Context) (*interfaces.TokenRecord, *interfaces.CNSIRecord, error) {
                  req := ec.Request()
              
                  // Need to extract the parameters from the request body
                  defer req.Body.Close()
              Severity: Major
              Found in src/jetstream/plugins/kubernetes/auth/azure.go - About 35 mins to fix

                Method Analysis.doRunReport has a Cognitive Complexity of 10 (exceeds 8 allowed). Consider refactoring.
                Open

                func (c *Analysis) doRunReport(ec echo.Context, analyzer, endpointID, userID string, dbStore store.AnalysisStore, report *store.AnalysisRecord) error {
                
                    // Get Kube Config
                    k8s := c.portalProxy.GetPlugin("kubernetes")
                    if k8s == nil {
                Severity: Minor
                Found in src/jetstream/plugins/analysis/run.go - About 35 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 getKubeDashboardPod has 5 return statements (exceeds 4 allowed).
                Open

                func getKubeDashboardPod(p interfaces.PortalProxy, cnsiGUID, userGUID string, labelSelector string) (*v1.Pod, error) {
                    log.Debug("kubeDashboardStatus request")
                
                    response, err := p.DoProxySingleRequest(cnsiGUID, userGUID, "GET", "/api/v1/pods?labelSelector="+labelSelector, nil, nil)
                    if err != nil || response.StatusCode != 200 {
                Severity: Major
                Found in src/jetstream/plugins/kubernetes/dashboard/common.go - About 35 mins to fix

                  Method Monocular.artifactHubCacheChartFiles has 5 return statements (exceeds 4 allowed).
                  Open

                  func (m *Monocular) artifactHubCacheChartFiles(endpointID, repoName, repoURL, name, version, digest string) (string, error) {
                  
                      // First look to see if there is a digest file
                      cacheFolder := path.Join(m.CacheFolder, endpointID, fmt.Sprintf("%s_%s_%s", repoName, name, version))
                      if hasDigestFile(cacheFolder, digest) {
                  Severity: Major
                  Found in src/jetstream/plugins/monocular/artifacthub.go - About 35 mins to fix

                    Method SemanticVersion.LessThan has 5 return statements (exceeds 4 allowed).
                    Open

                    func (s *SemanticVersion) LessThan(d *SemanticVersion) bool {
                        if d == nil {
                            return true
                        }
                        if s.Valid && d.Valid {
                    Severity: Major
                    Found in src/jetstream/plugins/monocular/store/version.go - About 35 mins to fix

                      Method MetricsSpecification.getMetricsEndpoints has 5 return statements (exceeds 4 allowed).
                      Open

                      func (m *MetricsSpecification) getMetricsEndpoints(userGUID string, cnsiList []string) (map[string]EndpointMetricsRelation, error) {
                      
                          metricsProviders := make([]MetricsMetadata, 0)
                          endpointsMap := make(map[string]*interfaces.ConnectedEndpoint)
                          results := make(map[string]EndpointMetricsRelation)
                      Severity: Major
                      Found in src/jetstream/plugins/metrics/main.go - About 35 mins to fix

                        Method KubeTerminal.createPod has a Cognitive Complexity of 10 (exceeds 8 allowed). Consider refactoring.
                        Open

                        func (k *KubeTerminal) createPod(c echo.Context, kubeConfig, kubeVersion string, ws *websocket.Conn) (*PodCreationData, error) {
                            // Unique ID for the secret and pod name
                            id := uuid.NewV4().String()
                            id = strings.ReplaceAll(id, "-", "")
                            // Names for the secret and pod
                        Severity: Minor
                        Found in src/jetstream/plugins/kubernetes/terminal/helpers.go - About 35 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

                        Method GeneratedEndpointPlugin.fetchUsername has 5 return statements (exceeds 4 allowed).
                        Open

                        func (gep GeneratedEndpointPlugin) fetchUsername(config pluginConfig, cnsiRecord *interfaces.CNSIRecord, tr *interfaces.TokenRecord) string {
                            if len(config.UserInfoAPI) == 0 || len(config.UserInfoPath) == 0 {
                                // Not configured
                                return defaultTokenUsername
                            }
                        Severity: Major
                        Found in src/jetstream/plugins/yamlgenerated/main.go - About 35 mins to fix

                          Method portalProxy.login has 5 return statements (exceeds 4 allowed).
                          Open

                          func (p *portalProxy) login(c echo.Context, skipSSLValidation bool, client string, clientSecret string, endpoint string) (uaaRes *interfaces.UAAResponse, u *interfaces.JWTUserTokenInfo, err error) {
                              log.Debug("login")
                              if c.Request().Method == http.MethodGet {
                                  code := c.QueryParam("code")
                                  state := c.QueryParam("state")
                          Severity: Major
                          Found in src/jetstream/auth.go - About 35 mins to fix
                            Severity
                            Category
                            Status
                            Source
                            Language