atlassian/localstack

View on GitHub

Showing 195 of 195 total issues

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

def post_request():
    action = request.headers.get('x-amz-target')
    data = json.loads(to_str(request.data))
    response = None
    if action == 'Firehose_20150804.ListDeliveryStreams':
Severity: Minor
Found in localstack/services/firehose/firehose_api.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 put_records has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
Open

def put_records(stream_name, records):
    stream = get_stream(stream_name)
    for dest in stream['Destinations']:
        if 'S3DestinationDescription' in dest:
            s3_dest = dest['S3DestinationDescription']
Severity: Minor
Found in localstack/services/firehose/firehose_api.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 kinesis_get_latest_records has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
Open

def kinesis_get_latest_records(stream_name, shard_id, count=10, env=None):
    kinesis = connect_to_service('kinesis', env=env)
    result = []
    response = kinesis.get_shard_iterator(StreamName=stream_name, ShardId=shard_id,
        ShardIteratorType='TRIM_HORIZON')
Severity: Minor
Found in localstack/utils/aws/aws_stack.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

Method exec has 27 lines of code (exceeds 25 allowed). Consider refactoring.
Open

    private static Process exec(boolean wait, String ... cmd) {
        try {
            if (cmd.length == 1 && !new File(cmd[0]).exists()) {
                cmd = new String[]{"bash", "-c", cmd[0]};
            }

    Function generate_ssl_cert has 26 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

    def generate_ssl_cert(target_file=None, overwrite=False, random=False):
        # Note: Do NOT import "OpenSSL" at the root scope
        # (Our test Lambdas are importing this file but don't have the module installed)
        from OpenSSL import crypto
    
    
    Severity: Minor
    Found in localstack/utils/common.py - About 1 hr to fix

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

              if(props.containsKey(PROP_KINESIS_ENDPOINT)) {
                  String protocol = "http";
                  if(props.containsKey(PROP_KINESIS_PROTOCOL)) {
                      protocol = props.getProperty(PROP_KINESIS_PROTOCOL);
                  }
      localstack/utils/kinesis/java/com/atlassian/KinesisStarter.java on lines 47..54

      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 68.

      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 2 locations. Consider refactoring.
      Open

              if(props.containsKey(PROP_DYNAMODB_ENDPOINT)) {
                  String protocol = "http";
                  if(props.containsKey(PROP_DYNAMODB_PROTOCOL)) {
                      protocol = props.getProperty(PROP_DYNAMODB_PROTOCOL);
                  }
      localstack/utils/kinesis/java/com/atlassian/KinesisStarter.java on lines 55..62

      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 68.

      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

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

      def get_environment(env=None, region_name=None):
          """
          Return an Environment object based on the input arguments.
      
          Parameter `env` can be either of:
      Severity: Minor
      Found in localstack/utils/aws/aws_stack.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 get_apigateway_resource_for_path has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
      Open

      def get_apigateway_resource_for_path(api_id, path, parent=None, resources=None):
          if resources is None:
              apigateway = connect_to_service(service_name='apigateway')
              resources = apigateway.get_resources(restApiId=api_id, limit=100)
          if not isinstance(path, list):
      Severity: Minor
      Found in localstack/utils/aws/aws_stack.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 get_metric_statistics has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
      Open

      def get_metric_statistics(Namespace, MetricName, Dimensions,
              Period=60, StartTime=None, EndTime=None, Statistics=None):
          if not StartTime:
              StartTime = datetime.now() - timedelta(minutes=5)
          if not EndTime:
      Severity: Minor
      Found in localstack/utils/cloudwatch/cloudwatch_util.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 listen_to_kinesis has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
      Open

      def listen_to_kinesis(stream_name, listener_func=None, processor_script=None,
              events_file=None, endpoint_url=None, log_file=None, configs={}, env=None,
              ddb_lease_table_suffix=None, env_vars={}, kcl_log_level=DEFAULT_KCL_LOG_LEVEL,
              log_subscribers=[], wait_until_started=False):
          """
      Severity: Minor
      Found in localstack/utils/kinesis/kinesis_connector.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 create_api_gateway has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
      Open

      def create_api_gateway(name, description=None, resources=None, stage_name=None,
              enabled_api_keys=[], env=None, usage_plan_name=None):
          client = connect_to_service('apigateway', env=env)
          if not resources:
              resources = []
      Severity: Minor
      Found in localstack/utils/aws/aws_stack.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 read has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
      Open

          def read(self, amount=-1, shard='shardId-000000000001'):
              s_iterator = kinesis_conn.get_shard_iterator(self.stream_name, shard, 'TRIM_HORIZON')
              record = kinesis_conn.get_records(s_iterator['ShardIterator'])
              while True:
                  try:
      Severity: Minor
      Found in localstack/utils/aws/aws_models.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

      Identical blocks of code found in 2 locations. Consider refactoring.
      Open

          if resources is None:
              apigateway = connect_to_service(service_name='apigateway')
              resources = apigateway.get_resources(restApiId=api_id, limit=100)
      Severity: Minor
      Found in localstack/utils/aws/aws_stack.py and 1 other location - About 55 mins to fix
      localstack/utils/aws/aws_stack.py on lines 327..329

      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 37.

      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

      Identical blocks of code found in 2 locations. Consider refactoring.
      Open

          if resources is None:
              apigateway = connect_to_service(service_name='apigateway')
              resources = apigateway.get_resources(restApiId=api_id, limit=100)
      Severity: Minor
      Found in localstack/utils/aws/aws_stack.py and 1 other location - About 55 mins to fix
      localstack/utils/aws/aws_stack.py on lines 341..343

      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 37.

      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

      Function __init__ has 7 arguments (exceeds 4 allowed). Consider refactoring.
      Open

          def __init__(self, cmd, params={}, outfile=None, env_vars={}, stdin=False,
      Severity: Major
      Found in localstack/utils/common.py - About 50 mins to fix

        Function get_metric_statistics has 7 arguments (exceeds 4 allowed). Consider refactoring.
        Open

        def get_metric_statistics(Namespace, MetricName, Dimensions,
        Severity: Major
        Found in localstack/utils/cloudwatch/cloudwatch_util.py - About 50 mins to fix

          Function create_api_gateway has 7 arguments (exceeds 4 allowed). Consider refactoring.
          Open

          def create_api_gateway(name, description=None, resources=None, stage_name=None,
          Severity: Major
          Found in localstack/utils/aws/aws_stack.py - About 50 mins to fix

            Function get_stream_info has 7 arguments (exceeds 4 allowed). Consider refactoring.
            Open

            def get_stream_info(stream_name, log_file=None, shards=None, env=None, endpoint_url=None,
            Severity: Major
            Found in localstack/utils/kinesis/kinesis_connector.py - About 50 mins to fix

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

                          binary_value = req_data.get('MessageAttributes.entry.' + str(x) + ".Value.BinaryValue", [None])[0]
              Severity: Major
              Found in localstack/services/sns/sns_listener.py and 2 other locations - About 50 mins to fix
              localstack/services/sns/sns_listener.py on lines 167..167
              localstack/services/sns/sns_listener.py on lines 171..171

              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 36.

              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