nathan-v/aws_okta_keyman

View on GitHub

Showing 35 of 37 total issues

File keyman.py has 479 lines of code (exceeds 250 allowed). Consider refactoring.
Open

#!/usr/bin/env python
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
Severity: Minor
Found in aws_okta_keyman/keyman.py - About 7 hrs to fix

    File config.py has 463 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    # http://www.apache.org/licenses/LICENSE-2.0
    Severity: Minor
    Found in aws_okta_keyman/config.py - About 7 hrs to fix

      File aws.py has 313 lines of code (exceeds 250 allowed). Consider refactoring.
      Open

      #
      # Credits: Portions of this code were copied/modified from
      # https://github.com/ThoughtWorksInc/aws_role_credentials
      #
      # Copyright (c) 2015, Peter Gillard-Moss
      Severity: Minor
      Found in aws_okta_keyman/aws.py - About 3 hrs to fix

        Function auth_okta has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
        Open

            def auth_okta(self, state_token=None):
                """Authenticate the Okta client. Prompt for MFA if necessary"""
                self.log.debug("Attempting to authenticate to Okta")
                try:
                    self.okta_client.auth(state_token)
        Severity: Minor
        Found in aws_okta_keyman/keyman.py - 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

        Function get_status has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
        Open

            def get_status(self, transaction_id, sid):
                """Get Duo auth status
        
                Args:
                    transaction_id: String Duo transaction ID
        Severity: Minor
        Found in aws_okta_keyman/duo.py - 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

        Function handle_push_factors has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
        Open

            def handle_push_factors(self, factors, state_token):
                """Handle  any push-type factors.
        
                Args:
                    factors: Dict of supported MFA push factors from Okta
        Severity: Minor
        Found in aws_okta_keyman/okta.py - 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

        Function __init__ has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
        Open

            def __init__(
                self,
                organization,
                username,
                password,
        Severity: Minor
        Found in aws_okta_keyman/okta.py - 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

        Function handle_response_factors has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
        Open

            def handle_response_factors(self, factors, state_token):
                """Handle any OTP-type factors.
        
                Raises back to keyman.py to interact with the user for an OTP response
        
        
        Severity: Minor
        Found in aws_okta_keyman/okta.py - 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

        Function handle_appid_selection has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
        Open

            def handle_appid_selection(self, okta_ready=False):
                """If we have no appid specified and we have accounts from a config
                file display the options to the user and select one
                """
                if self.config.appid is None:
        Severity: Minor
        Found in aws_okta_keyman/keyman.py - About 55 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 handle_mfa_response has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
        Open

            def handle_mfa_response(self, ret):
                """In the case of an MFA response evaluate the response and handle
                accordingly based on available MFA factors.
        
                Args:
        Severity: Minor
        Found in aws_okta_keyman/okta.py - About 55 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 duo_auth has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
        Open

            def duo_auth(self, fid, state_token, passcode=None):
                """Trigger a Duo Auth request.
        
                This method is meant to be called by self.auth() if a Login session
                requires MFA, and the users profile supports Duo.
        Severity: Minor
        Found in aws_okta_keyman/okta.py - 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 get_assertion has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
        Open

            def get_assertion(self, appid):
                """Call Okta and get the assertion.
        
                Args: String appid
        
        
        Severity: Minor
        Found in aws_okta_keyman/okta_saml.py - 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 validate has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
        Open

            def validate(self):
                """Ensure we have all the settings we need before continuing."""
                if getattr(self, "org", None) is None:
                    err = (
                        "The parameter org must be provided in the config file "
        Severity: Minor
        Found in aws_okta_keyman/config.py - 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 handle_multiple_roles has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
        Open

            def handle_multiple_roles(self, session):
                """If there's more than one role available from AWS present the user
                with a list to pick from
                """
        
        
        Severity: Minor
        Found in aws_okta_keyman/keyman.py - 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 update has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
        Open

            def update(self, this_version):
                self.log.info("Checking AWS Okta Keyman current version on Pypi")
                pip_version = self.get_pip_version()
                if pip_version > this_version:
                    self.log.info(f"New version {pip_version}. Updaing..")
        Severity: Minor
        Found in aws_okta_keyman/keyman.py - 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 __init__ has 6 arguments (exceeds 4 allowed). Consider refactoring.
        Open

            def __init__(
        Severity: Minor
        Found in aws_okta_keyman/aws.py - About 45 mins to fix

          Function interactive_config has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
          Open

              def interactive_config(self):
                  """Runs an interactive configuration to make it simpler to create
                  the config file. Always uses default path.
                  """
                  LOG.info("Interactive setup requested")
          Severity: Minor
          Found in aws_okta_keyman/config.py - 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 __init__ has 5 arguments (exceeds 4 allowed). Consider refactoring.
          Open

              def __init__(
          Severity: Minor
          Found in aws_okta_keyman/okta.py - About 35 mins to fix

            Function read_yaml has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
            Open

                def read_yaml(filename, raise_on_error=False):
                    """Read a YAML file and optionally raise if anything goes wrong."""
                    config = {}
                    try:
                        if os.path.isfile(filename):
            Severity: Minor
            Found in aws_okta_keyman/config.py - 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 auth has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
            Open

                def auth(self, state_token=None):
                    """Perform an initial authentication against Okta.
            
                    The initial Okta Login authentication is handled here - and optionally
                    MFA authentication is triggered. If successful, this method stores a
            Severity: Minor
            Found in aws_okta_keyman/okta.py - 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

            Severity
            Category
            Status
            Source
            Language