def process_providers(names, count, name, options, run_list, create_command_options, knifecommands) # rubocop:disable CyclomaticComplexity
      provider = names[0]
      validate_provider(provider, names, count, options, knifecommands) unless Spiceweasel::Config[:novalidation]
      provided_names = []
      if name.nil? && options.split.index("-N") # pull this out for deletes
        name = options.split[options.split.index("-N") + 1]
        count.to_i.times { |i| provided_names << node_numerate(name, i + 1, count) } if name
      end

      # google can have names or numbers
      if provider.eql?("google") && names[1].to_i == 0
        do_google_numeric_provider(create_command_options, names, options, provided_names, run_list)
      elsif Spiceweasel::Config[:parallel]
        process_parallel(count, create_command_options, name, options, provider, run_list)
      else
        determine_cloud_provider(count, create_command_options, name, options, provider, run_list)
      end
      if Spiceweasel::Config[:bulkdelete] && provided_names.empty?
        do_bulk_delete(provider)
      else
        provided_names.each do |p_name|
          do_provided_names(p_name, provider)
        end
      end
    end
def process_providers(names, count, name, options, run_list, create_command_options, knifecommands) # rubocop:disable CyclomaticComplexity
      provider = names[0]
      validate_provider(provider, names, count, options, knifecommands) unless Spiceweasel::Config[:novalidation]
      provided_names = []
      if name.nil? && options.split.index("-N") # pull this out for deletes
        name = options.split[options.split.index("-N") + 1]
        count.to_i.times { |i| provided_names << node_numerate(name, i + 1, count) } if name
      end

      # google can have names or numbers
      if provider.eql?("google") && names[1].to_i == 0
        do_google_numeric_provider(create_command_options, names, options, provided_names, run_list)
      elsif Spiceweasel::Config[:parallel]
        process_parallel(count, create_command_options, name, options, provider, run_list)
      else
        determine_cloud_provider(count, create_command_options, name, options, provider, run_list)
      end
      if Spiceweasel::Config[:bulkdelete] && provided_names.empty?
        do_bulk_delete(provider)
      else
        provided_names.each do |p_name|
          do_provided_names(p_name, provider)
        end
      end
    end
manage all the provider logic