fog/fog-libvirt

View on GitHub

Showing 29 of 29 total issues

Method to_xml has a Cognitive Complexity of 91 (exceeds 5 allowed). Consider refactoring.
Open

        def to_xml
          builder = Nokogiri::XML::Builder.new do |xml|
            xml.domain(:type => domain_type) do
              xml.name(name)
              xml.memory(memory_size)
Severity: Minor
Found in lib/fog/libvirt/models/compute/server.rb - About 1 day 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

File server.rb has 530 lines of code (exceeds 250 allowed). Consider refactoring.
Open

require 'fog/compute/models/server'
require 'fog/libvirt/models/compute/util/util'
require 'fileutils'

module Fog
Severity: Major
Found in lib/fog/libvirt/models/compute/server.rb - About 1 day to fix

    Class Server has 44 methods (exceeds 20 allowed). Consider refactoring.
    Open

          class Server < Fog::Compute::Server
            include Fog::Libvirt::Util
            attr_reader :xml
    
            identity :id, :aliases => 'uuid'
    Severity: Minor
    Found in lib/fog/libvirt/models/compute/server.rb - About 6 hrs to fix

      Method to_xml has 132 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

              def to_xml
                builder = Nokogiri::XML::Builder.new do |xml|
                  xml.domain(:type => domain_type) do
                    xml.name(name)
                    xml.memory(memory_size)
      Severity: Major
      Found in lib/fog/libvirt/models/compute/server.rb - About 5 hrs to fix

        Method create_or_clone_volume has a Cognitive Complexity of 20 (exceeds 5 allowed). Consider refactoring.
        Open

                def create_or_clone_volume
                  options = {:name => volume_name || default_volume_name}
                  # Check if a disk template was specified
                  if volume_template_name
                    template_volume = service.volumes.all(:name => volume_template_name).first
        Severity: Minor
        Found in lib/fog/libvirt/models/compute/server.rb - 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 get_volume has a Cognitive Complexity of 17 (exceeds 5 allowed). Consider refactoring.
        Open

                def get_volume filter = { }, raw = false
                  raw_volumes do |pool|
                    vol = case filter.keys.first
                            when :name
                              pool.lookup_volume_by_name(filter[:name]) rescue nil
        Severity: Minor
        Found in lib/fog/libvirt/requests/compute/list_volumes.rb - 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

        Class URI has 21 methods (exceeds 20 allowed). Consider refactoring.
        Open

              class URI
                attr_reader :uri
        
                def initialize(uri)
                  @parsed_uri=::URI.parse(uri)
        Severity: Minor
        Found in lib/fog/libvirt/models/compute/util/uri.rb - About 2 hrs to fix

          Method save has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
          Open

                  def save
                    raise Fog::Errors::Error.new('Saving an existing server may create a duplicate') unless new?
                    create_or_clone_volume unless xml or @volumes
                    create_user_data_iso if user_data
                    @xml ||= to_xml
          Severity: Minor
          Found in lib/fog/libvirt/models/compute/server.rb - 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 available? has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
          Open

              def available?
                begin
                  availability=true unless Gem::Specification::find_by_name("ruby-libvirt").nil?
                rescue Gem::LoadError
                  availability=false
          Severity: Minor
          Found in lib/fog/bin/libvirt.rb - 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 addresses_ip_command has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
          Open

                  def addresses_ip_command(service_arg=service, options={})
                    mac=self.mac
          
                    # Aug 24 17:34:41 juno arpwatch: new station 10.247.4.137 52:54:00:88:5a:0a eth0.4
                    # Aug 24 17:37:19 juno arpwatch: changed ethernet address 10.247.4.137 52:54:00:27:33:00 (52:54:00:88:5a:0a) eth0.4
          Severity: Minor
          Found in lib/fog/libvirt/models/compute/server.rb - 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 initialize has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
          Open

                  def initialize(options={})
                    @uri = ::Fog::Libvirt::Util::URI.new(enhance_uri(options[:libvirt_uri]))
                    @ip_command = options[:libvirt_ip_command]
          
                    # libvirt is part of the gem => ruby-libvirt
          Severity: Minor
          Found in lib/fog/libvirt/compute.rb - 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 setup has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
          Open

                  def setup(credentials = {})
                    requires :public_key, :ssh_ip_address, :username
          
                    credentials[:proxy]= ssh_proxy unless ssh_proxy.nil?
                    credentials[:password] = password unless self.password.nil?
          Severity: Minor
          Found in lib/fog/libvirt/models/compute/server.rb - 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 get_node_info has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
          Open

                  def get_node_info
                    node_hash = Hash.new
                    node_info = client.node_get_info
                    [:model, :memory, :cpus, :mhz, :nodes, :sockets, :cores, :threads].each do |param|
                      node_hash[param] = node_info.send(param) rescue nil
          Severity: Minor
          Found in lib/fog/libvirt/requests/compute/get_node_info.rb - 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

          Method domain_interfaces has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
          Open

                  def domain_interfaces xml
                    ifs = xml_elements(xml, "domain/devices/interface")
                    ifs.map { |i|
                      nics.new({
                        :type    => i['type'],
          Severity: Minor
          Found in lib/fog/libvirt/requests/compute/list_domains.rb - 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

          Method list_domains has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
          Open

                  def list_domains(filter = { })
                    data=[]
          
                    if filter.key?(:uuid)
                      data << client.lookup_domain_by_uuid(filter[:uuid])
          Severity: Minor
          Found in lib/fog/libvirt/requests/compute/list_domains.rb - 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

          Method update_display has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
          Open

                  def update_display(options = { })
                    raise ArgumentError, "uuid is a required parameter" unless options.key? :uuid
          
                    domain = client.lookup_domain_by_uuid(options[:uuid])
          
          
          Severity: Minor
          Found in lib/fog/libvirt/requests/compute/update_display.rb - 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

          Method ssh_ip_command has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
          Open

                  def ssh_ip_command(ip_command, uri)
                    # Retrieve the parts we need from the service to setup our ssh options
                    user=uri.user #could be nil
                    host=uri.host
                    keyfile=uri.keyfile
          Severity: Minor
          Found in lib/fog/libvirt/models/compute/server.rb - 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

          Method list_volumes has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
          Open

                  def list_volumes(filter = { })
                    data = []
                    if filter.keys.empty?
                      raw_volumes do |pool|
                        pool.list_volumes.each do |volume_name|
          Severity: Minor
          Found in lib/fog/libvirt/requests/compute/list_volumes.rb - 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 initialize_volumes has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
          Open

                  def initialize_volumes
                    if attributes[:volumes] && !attributes[:volumes].empty?
                      @volumes = attributes[:volumes].map { |vol| vol.is_a?(Hash) ? service.volumes.new(vol) : vol }
                    end
                  end
          Severity: Minor
          Found in lib/fog/libvirt/models/compute/server.rb - About 25 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 list_interfaces has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
          Open

                  def list_interfaces(filter = { })
                    data=[]
                    if filter.keys.empty?
                      active_networks = client.list_interfaces rescue []
                      defined_networks = client.list_defined_interfaces rescue []
          Severity: Minor
          Found in lib/fog/libvirt/requests/compute/list_interfaces.rb - About 25 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