Showing 20 of 32 total issues
File containers.rb
has 317 lines of code (exceeds 250 allowed). Consider refactoring. Open
require 'tempfile'
module Cucumber
module Chef
Class Containers
has 25 methods (exceeds 20 allowed). Consider refactoring. Open
class Containers
################################################################################
def initialize(ui=ZTK::UI.new, test_lab=nil)
Method _create
has 43 lines of code (exceeds 25 allowed). Consider refactoring. Open
def _create(name, distro, release, arch)
unless exists?(name)
cache_rootfs = cache_root(name, distro, release, arch)
if !File.exists?(cache_rootfs)
@ui.logger.warn { "'#{name}' has triggered building the lxc file cache for '#{distro}'." }
Method up
has 41 lines of code (exceeds 25 allowed). Consider refactoring. Open
def up(options={})
# PUSH CHEF-REPO
#################
Method locate
has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring. Open
def locate(type, *args)
pwd = Dir.pwd.split(File::SEPARATOR)
(pwd.length - 1).downto(0) do |i|
candidate = File.join(pwd[0..i], args)
case type
- Read upRead up
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 _create
has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring. Open
def _create(name, distro, release, arch)
unless exists?(name)
cache_rootfs = cache_root(name, distro, release, arch)
if !File.exists?(cache_rootfs)
@ui.logger.warn { "'#{name}' has triggered building the lxc file cache for '#{distro}'." }
- Read upRead up
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 chef_config_client
has 32 lines of code (exceeds 25 allowed). Consider refactoring. Open
def chef_config_client(container)
tempfile = Tempfile.new(container.id)
client_rb = File.join("/", root(container.id), "etc/chef/client.rb")
@test_lab.bootstrap_ssh.exec(%(sudo mkdir -pv #{File.dirname(client_rb)}), :silence => true)
Method run_feature
has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring. Open
def run_feature(feature_file)
puts("=" * 80)
puts("run_feature(#{feature_file.inspect})")
puts("=" * 80)
- Read upRead up
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 create
has 27 lines of code (exceeds 25 allowed). Consider refactoring. Open
def create(container)
# if this is a new or non-persistent container destroy it
destroy(container.id) if !container.persist
container.ip ||= self.generate_ip
Method up
has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring. Open
def up
if (exists? && dead?)
if @server.start
@server.wait_for { ready? }
ZTK::TCPSocketCheck.new(:host => self.ip, :port => self.port, :wait => 120).wait
- Read upRead up
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 create
has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring. Open
def create(container)
# if this is a new or non-persistent container destroy it
destroy(container.id) if !container.persist
container.ip ||= self.generate_ip
- Read upRead up
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 aws_image_id
has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring. Open
def self.aws_image_id
if self[:aws][:aws_image_id]
return self[:aws][:aws_image_id]
elsif (self[:aws][:ubuntu_release] && self[:aws][:region])
ami = Ubuntu.release(self[:aws][:ubuntu_release]).amis.find do |ami|
- Read upRead up
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 ensure_security_group
has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring. Open
def ensure_security_group
security_group_name = Cucumber::Chef::Config.aws[:aws_security_group]
if (security_group = @connection.security_groups.get(security_group_name))
port_ranges = security_group.ip_permissions.collect{ |entry| entry["fromPort"]..entry["toPort"] }
security_group.authorize_port_range(22..22) if port_ranges.none?{ |port_range| port_range === 22 }
- Read upRead up
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 down
has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring. Open
def down
if (exists? && alive?)
if !@server.stop
raise AWSError, "Failed to halt the test lab!"
end
- Read upRead up
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 reload
has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring. Open
def reload
if (exists? && alive?)
if !@server.restart
raise AWSError, "Failed to reload the test lab!"
end
- Read upRead up
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 chef_config_client
has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring. Open
def chef_config_client(container)
tempfile = Tempfile.new(container.id)
client_rb = File.join("/", root(container.id), "etc/chef/client.rb")
@test_lab.bootstrap_ssh.exec(%(sudo mkdir -pv #{File.dirname(client_rb)}), :silence => true)
- Read upRead up
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 create
has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring. Open
def create
if (exists? && alive?)
@ui.stdout.puts("A test lab already exists using the #{Cucumber::Chef::Config.provider.upcase} credentials you have supplied; attempting to reprovision it.")
else
server_definition = {
- Read upRead up
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 detect_arch
has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring. Open
def detect_arch(distro)
@arch ||= @test_lab.bootstrap_ssh.exec("uname -m", :silence => true).output.chomp
case distro.downcase
when "ubuntu" then
((@arch =~ /x86_64/) ? "amd64" : "i386")
- Read upRead up
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
Consider simplifying this complex logical expression. Open
elsif (self[:aws][:ubuntu_release] && self[:aws][:region])
ami = Ubuntu.release(self[:aws][:ubuntu_release]).amis.find do |ami|
ami.arch == (self[:aws][:aws_instance_arch] || "i386") &&
ami.root_store == (self[:aws][:aws_instance_disk_store] || "instance-store") &&
ami.region == self[:aws][:region]
Method build_context
has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring. Open
def build_context(server_name, chef_solo_attributes)
{
:server_name => server_name,
:lab_user => Cucumber::Chef.lab_user,
:chef_pre_11 => Cucumber::Chef.chef_pre_11,
- Read upRead up
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"