elasticsearch-extensions 0.0.23 → 0.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 7248c6fbddfe31ef013db4c097d59ba4427df2e3
         | 
| 4 | 
            +
              data.tar.gz: 565df7537b10de2a83cbf0181a65b7580901ba83
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 5d56926d940b28be59070ab4d98adaba0beedb9228ca8df892db425e9066342bb54b29ed6f4ef7b94b6f1d94214df876e451aae3313092ef1c277b20d8241266
         | 
| 7 | 
            +
              data.tar.gz: 397ab511b86ae27c15c77037df6c8d598e618299bf1683d7927c0cb6bc72823e7a212285ae052c7d1d613bdabdd6518fcdcb74a3f7a3ed4c4b5436117f859158
         | 
| @@ -68,7 +68,8 @@ module Elasticsearch | |
| 68 68 | 
             
                  #
         | 
| 69 69 | 
             
                  #     reindex = Elasticsearch::Extensions::Reindex.new \
         | 
| 70 70 | 
             
                  #                 source: { index: 'test1', client: client },
         | 
| 71 | 
            -
                  #                 target: { index: 'test2' | 
| 71 | 
            +
                  #                 target: { index: 'test2' },
         | 
| 72 | 
            +
                  #                 transform: lambda { |doc| doc['_source']['category'].upcase! }
         | 
| 72 73 | 
             
                  #
         | 
| 73 74 | 
             
                  #
         | 
| 74 75 | 
             
                  # The reindexing process works by "scrolling" an index and sending
         | 
| @@ -7,6 +7,7 @@ require 'json' | |
| 7 7 | 
             
            require 'ansi'
         | 
| 8 8 |  | 
| 9 9 | 
             
            STDOUT.sync = true
         | 
| 10 | 
            +
            STDERR.sync = true
         | 
| 10 11 |  | 
| 11 12 | 
             
            class String
         | 
| 12 13 |  | 
| @@ -24,9 +25,20 @@ module Elasticsearch | |
| 24 25 | 
             
                  # A convenience Ruby class for starting and stopping an Elasticsearch cluster,
         | 
| 25 26 | 
             
                  # eg. for integration tests
         | 
| 26 27 | 
             
                  #
         | 
| 27 | 
            -
                  # @example Start a cluster with default configuration
         | 
| 28 | 
            +
                  # @example Start a cluster with default configuration,
         | 
| 29 | 
            +
                  #          assuming `elasticsearch` is on $PATH.
         | 
| 30 | 
            +
                  #
         | 
| 31 | 
            +
                  #      require 'elasticsearch/extensions/test/cluster'
         | 
| 32 | 
            +
                  #      Elasticsearch::Extensions::Test::Cluster.start
         | 
| 33 | 
            +
                  #
         | 
| 34 | 
            +
                  # @example Start a cluster with a specific Elasticsearch launch script,
         | 
| 35 | 
            +
                  #          eg. from a downloaded `.tar.gz` distribution
         | 
| 36 | 
            +
                  #
         | 
| 37 | 
            +
                  #      system 'wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.1.tar.gz'
         | 
| 38 | 
            +
                  #      system 'tar -xvf elasticsearch-5.1.1.tar.gz'
         | 
| 39 | 
            +
                  #
         | 
| 28 40 | 
             
                  #      require 'elasticsearch/extensions/test/cluster'
         | 
| 29 | 
            -
                  #      Elasticsearch::Extensions::Test::Cluster | 
| 41 | 
            +
                  #      Elasticsearch::Extensions::Test::Cluster.start command: 'elasticsearch-5.1.1/bin/elasticsearch'
         | 
| 30 42 | 
             
                  #
         | 
| 31 43 | 
             
                  # @see Cluster#initialize
         | 
| 32 44 | 
             
                  #
         | 
| @@ -185,6 +197,7 @@ module Elasticsearch | |
| 185 197 | 
             
                      # @option arguments [Integer] :timeout      Timeout when starting the cluster (default: 30)
         | 
| 186 198 | 
             
                      # @option arguments [String]  :network_host The host that nodes will bind on and publish to
         | 
| 187 199 | 
             
                      # @option arguments [Boolean] :clear_cluster Wipe out cluster content on startup (default: true)
         | 
| 200 | 
            +
                      # @option arguments [Boolean] :quiet         Disable printing to STDERR (default: false)
         | 
| 188 201 | 
             
                      #
         | 
| 189 202 | 
             
                      # You can also use environment variables to set the constructor options (see source).
         | 
| 190 203 | 
             
                      #
         | 
| @@ -205,6 +218,7 @@ module Elasticsearch | |
| 205 218 | 
             
                        @arguments[:timeout]           ||= ENV.fetch('TEST_CLUSTER_TIMEOUT',   30).to_i
         | 
| 206 219 | 
             
                        @arguments[:number_of_nodes]   ||= ENV.fetch('TEST_CLUSTER_NODES',     2).to_i
         | 
| 207 220 | 
             
                        @arguments[:network_host]      ||= ENV.fetch('TEST_CLUSTER_NETWORK_HOST', __default_network_host)
         | 
| 221 | 
            +
                        @arguments[:quiet]             ||= ! ENV.fetch('QUIET', '').empty?
         | 
| 208 222 |  | 
| 209 223 | 
             
                        @clear_cluster = !!@arguments[:clear_cluster] || (ENV.fetch('TEST_CLUSTER_CLEAR', 'true') != 'false')
         | 
| 210 224 |  | 
| @@ -239,22 +253,23 @@ module Elasticsearch | |
| 239 253 | 
             
                      #
         | 
| 240 254 | 
             
                      def start
         | 
| 241 255 | 
             
                        if self.running?
         | 
| 242 | 
            -
                           | 
| 256 | 
            +
                          __log "[!] Elasticsearch cluster already running".ansi(:red)
         | 
| 243 257 | 
             
                          return false
         | 
| 244 258 | 
             
                        end
         | 
| 245 259 |  | 
| 246 260 | 
             
                        __remove_cluster_data if @clear_cluster
         | 
| 247 261 |  | 
| 248 | 
            -
                         | 
| 249 | 
            -
             | 
| 262 | 
            +
                        __log "Starting ".ansi(:faint) + arguments[:number_of_nodes].to_s.ansi(:bold, :faint) +
         | 
| 263 | 
            +
                              " Elasticsearch #{arguments[:number_of_nodes] < 2 ? 'node' : 'nodes'}..".ansi(:faint), :print
         | 
| 264 | 
            +
             | 
| 250 265 | 
             
                        pids = []
         | 
| 251 266 |  | 
| 252 | 
            -
                         | 
| 267 | 
            +
                        __log "\nUsing Elasticsearch version [#{version}]" if ENV['DEBUG']
         | 
| 253 268 |  | 
| 254 269 | 
             
                        arguments[:number_of_nodes].times do |n|
         | 
| 255 270 | 
             
                          n += 1
         | 
| 256 271 | 
             
                          command =  __command(version, arguments, n)
         | 
| 257 | 
            -
                           | 
| 272 | 
            +
                          __log command.gsub(/ {1,}/, ' ').ansi(:bold) if ENV['DEBUG']
         | 
| 258 273 |  | 
| 259 274 | 
             
                          pid = Process.spawn(command)
         | 
| 260 275 | 
             
                          Process.detach pid
         | 
| @@ -264,7 +279,7 @@ module Elasticsearch | |
| 264 279 |  | 
| 265 280 | 
             
                        __check_for_running_processes(pids)
         | 
| 266 281 | 
             
                        wait_for_green
         | 
| 267 | 
            -
                         | 
| 282 | 
            +
                        __log __cluster_info
         | 
| 268 283 |  | 
| 269 284 | 
             
                        return true
         | 
| 270 285 | 
             
                      end
         | 
| @@ -286,7 +301,7 @@ module Elasticsearch | |
| 286 301 | 
             
                        begin
         | 
| 287 302 | 
             
                          nodes = __get_nodes
         | 
| 288 303 | 
             
                        rescue Exception => e
         | 
| 289 | 
            -
                           | 
| 304 | 
            +
                          __log "[!] Exception raised when stopping the cluster: #{e.inspect}".ansi(:red)
         | 
| 290 305 | 
             
                          nil
         | 
| 291 306 | 
             
                        end
         | 
| 292 307 |  | 
| @@ -295,13 +310,14 @@ module Elasticsearch | |
| 295 310 | 
             
                        pids  = nodes['nodes'].map { |id, info| info['process']['id'] }
         | 
| 296 311 |  | 
| 297 312 | 
             
                        unless pids.empty?
         | 
| 298 | 
            -
                           | 
| 313 | 
            +
                          __log "Stopping Elasticsearch nodes... ".ansi(:faint), :print
         | 
| 314 | 
            +
             | 
| 299 315 | 
             
                          pids.each_with_index do |pid, i|
         | 
| 300 316 | 
             
                            ['INT','KILL'].each do |signal|
         | 
| 301 317 | 
             
                              begin
         | 
| 302 318 | 
             
                                Process.kill signal, pid
         | 
| 303 319 | 
             
                              rescue Exception => e
         | 
| 304 | 
            -
                                 | 
| 320 | 
            +
                                __log "[#{e.class}] PID #{pid} not found. ".ansi(:red), :print
         | 
| 305 321 | 
             
                              end
         | 
| 306 322 |  | 
| 307 323 | 
             
                              # Give the system some breathing space to finish...
         | 
| @@ -313,14 +329,15 @@ module Elasticsearch | |
| 313 329 | 
             
                                # `getpgid` will raise error if pid is dead, so if we get here, try next signal
         | 
| 314 330 | 
             
                                next
         | 
| 315 331 | 
             
                              rescue Errno::ESRCH
         | 
| 316 | 
            -
                                 | 
| 332 | 
            +
                                __log "Stopped PID #{pid}".ansi(:green) +
         | 
| 317 333 | 
             
                                (ENV['DEBUG'] ? " with #{signal} signal".ansi(:green) : '') +
         | 
| 318 | 
            -
                                ". ".ansi(:green)
         | 
| 334 | 
            +
                                ". ".ansi(:green), :print
         | 
| 319 335 | 
             
                                break # pid is dead
         | 
| 320 336 | 
             
                              end
         | 
| 321 337 | 
             
                            end
         | 
| 322 338 | 
             
                          end
         | 
| 323 | 
            -
             | 
| 339 | 
            +
             | 
| 340 | 
            +
                          __log "\n"
         | 
| 324 341 | 
             
                        else
         | 
| 325 342 | 
             
                          return false
         | 
| 326 343 | 
             
                        end
         | 
| @@ -416,23 +433,35 @@ module Elasticsearch | |
| 416 433 | 
             
                        jar = Dir.entries(path_to_lib).select { |f| f.start_with? 'elasticsearch' }.first if File.exist? path_to_lib
         | 
| 417 434 |  | 
| 418 435 | 
             
                        version = if jar
         | 
| 419 | 
            -
                           | 
| 436 | 
            +
                          __log "Determining version from [#{jar}]" if ENV['DEBUG']
         | 
| 437 | 
            +
                          if m = jar.match(/elasticsearch\-(\d+\.\d+\.\d+).*/)
         | 
| 420 438 | 
             
                            m[1]
         | 
| 421 439 | 
             
                          else
         | 
| 422 440 | 
             
                            raise RuntimeError, "Cannot determine Elasticsearch version from jar [#{jar}]"
         | 
| 423 441 | 
             
                          end
         | 
| 424 442 | 
             
                        else
         | 
| 425 | 
            -
                           | 
| 443 | 
            +
                          __log "[!] Cannot find Elasticsearch .jar from path to command [#{arguments[:command]}], using `#{arguments[:command]} --version`" if ENV['DEBUG']
         | 
| 426 444 |  | 
| 427 445 | 
             
                          unless File.exist? arguments[:command]
         | 
| 428 | 
            -
                             | 
| 446 | 
            +
                            __log "File [#{arguments[:command]}] does not exists, checking full path by `which`: ", :print if ENV['DEBUG']
         | 
| 447 | 
            +
             | 
| 448 | 
            +
                            begin
         | 
| 449 | 
            +
                              full_path = `which #{arguments[:command]}`.strip
         | 
| 450 | 
            +
                              __log "#{full_path.inspect}\n", :print if ENV['DEBUG']
         | 
| 451 | 
            +
                            rescue Exception => e
         | 
| 452 | 
            +
                              raise RuntimeError, "Cannot determine full path to [#{arguments[:command]}] with 'which'"
         | 
| 453 | 
            +
                            end
         | 
| 454 | 
            +
             | 
| 455 | 
            +
                            if full_path.empty?
         | 
| 456 | 
            +
                              raise Errno::ENOENT, "Cannot find Elasticsearch launch script from [#{arguments[:command]}] -- did you pass a correct path?"
         | 
| 457 | 
            +
                            end
         | 
| 429 458 | 
             
                          end
         | 
| 430 459 |  | 
| 431 460 | 
             
                          output = ''
         | 
| 432 461 |  | 
| 433 462 | 
             
                          begin
         | 
| 434 463 | 
             
                            # First, try the new `--version` syntax...
         | 
| 435 | 
            -
                             | 
| 464 | 
            +
                            __log "Running [#{arguments[:command]} --version] to determine version" if ENV['DEBUG']
         | 
| 436 465 | 
             
                            rout, wout = IO.pipe
         | 
| 437 466 | 
             
                            pid = Process.spawn("#{arguments[:command]} --version", out: wout)
         | 
| 438 467 |  | 
| @@ -444,10 +473,12 @@ module Elasticsearch | |
| 444 473 | 
             
                            end
         | 
| 445 474 | 
             
                          rescue Timeout::Error
         | 
| 446 475 | 
             
                            # ...else, the old `-v` syntax
         | 
| 447 | 
            -
                             | 
| 476 | 
            +
                            __log "Running [#{arguments[:command]} -v] to determine version" if ENV['DEBUG']
         | 
| 448 477 | 
             
                            output = `#{arguments[:command]} -v`
         | 
| 449 478 | 
             
                          ensure
         | 
| 450 | 
            -
                             | 
| 479 | 
            +
                            if pid
         | 
| 480 | 
            +
                              Process.kill('INT', pid) rescue Errno::ESRCH # Most likely the process has terminated already
         | 
| 481 | 
            +
                            end
         | 
| 451 482 | 
             
                            wout.close unless wout.closed?
         | 
| 452 483 | 
             
                            rout.close unless rout.closed?
         | 
| 453 484 | 
             
                          end
         | 
| @@ -511,33 +542,33 @@ module Elasticsearch | |
| 511 542 | 
             
                          Timeout::timeout(timeout) do
         | 
| 512 543 | 
             
                            loop do
         | 
| 513 544 | 
             
                              response = __get_cluster_health(status)
         | 
| 514 | 
            -
                               | 
| 545 | 
            +
                              __log response if ENV['DEBUG']
         | 
| 515 546 |  | 
| 516 547 | 
             
                              if response && response['status'] == status && ( arguments[:number_of_nodes].nil? || arguments[:number_of_nodes].to_i == response['number_of_nodes'].to_i  )
         | 
| 517 548 | 
             
                                break
         | 
| 518 549 | 
             
                              end
         | 
| 519 550 |  | 
| 520 | 
            -
                               | 
| 551 | 
            +
                              __log '.'.ansi(:faint), :print
         | 
| 521 552 | 
             
                              sleep 1
         | 
| 522 553 | 
             
                            end
         | 
| 523 554 | 
             
                          end
         | 
| 524 555 | 
             
                        rescue Timeout::Error => e
         | 
| 525 556 | 
             
                          message = "\nTimeout while waiting for cluster status [#{status}]"
         | 
| 526 557 | 
             
                          message += " and [#{arguments[:number_of_nodes]}] nodes" if arguments[:number_of_nodes]
         | 
| 527 | 
            -
                           | 
| 558 | 
            +
                          __log message.ansi(:red, :bold)
         | 
| 528 559 | 
             
                          raise e
         | 
| 529 560 | 
             
                        end
         | 
| 530 561 |  | 
| 531 562 | 
             
                        return true
         | 
| 532 563 | 
             
                      end
         | 
| 533 564 |  | 
| 534 | 
            -
                      #  | 
| 565 | 
            +
                      # Return information about the cluster
         | 
| 535 566 | 
             
                      #
         | 
| 536 567 | 
             
                      # @api private
         | 
| 537 568 | 
             
                      #
         | 
| 538 | 
            -
                      # @return  | 
| 569 | 
            +
                      # @return String
         | 
| 539 570 | 
             
                      #
         | 
| 540 | 
            -
                      def  | 
| 571 | 
            +
                      def __cluster_info
         | 
| 541 572 | 
             
                        health = JSON.parse(Net::HTTP.get(URI("#{__cluster_url}/_cluster/health")))
         | 
| 542 573 | 
             
                        nodes  = if version == '0.90'
         | 
| 543 574 | 
             
                          JSON.parse(Net::HTTP.get(URI("#{__cluster_url}/_nodes/?process&http")))
         | 
| @@ -546,21 +577,23 @@ module Elasticsearch | |
| 546 577 | 
             
                        end
         | 
| 547 578 | 
             
                        master = JSON.parse(Net::HTTP.get(URI("#{__cluster_url}/_cluster/state")))['master_node']
         | 
| 548 579 |  | 
| 549 | 
            -
                         | 
| 550 | 
            -
             | 
| 551 | 
            -
             | 
| 552 | 
            -
             | 
| 553 | 
            -
             | 
| 580 | 
            +
                        result = ["\n",
         | 
| 581 | 
            +
                                  ('-'*80).ansi(:faint),
         | 
| 582 | 
            +
                                  'Cluster: '.ljust(20).ansi(:faint) + health['cluster_name'].to_s.ansi(:faint),
         | 
| 583 | 
            +
                                  'Status:  '.ljust(20).ansi(:faint) + health['status'].to_s.ansi(:faint),
         | 
| 584 | 
            +
                                  'Nodes:   '.ljust(20).ansi(:faint) + health['number_of_nodes'].to_s.ansi(:faint)].join("\n")
         | 
| 554 585 |  | 
| 555 586 | 
             
                        nodes['nodes'].each do |id, info|
         | 
| 556 587 | 
             
                          m = id == master ? '*' : '+'
         | 
| 557 | 
            -
                           | 
| 558 | 
            -
             | 
| 559 | 
            -
             | 
| 560 | 
            -
             | 
| 561 | 
            -
             | 
| 562 | 
            -
             | 
| 588 | 
            +
                          result << ''.ljust(20) +
         | 
| 589 | 
            +
                                    "#{m} ".ansi(:faint) +
         | 
| 590 | 
            +
                                    "#{info['name'].ansi(:bold)} ".ansi(:faint) +
         | 
| 591 | 
            +
                                    "| version: #{info['version'] rescue 'N/A'}, ".ansi(:faint) +
         | 
| 592 | 
            +
                                    "pid: #{info['process']['id'] rescue 'N/A'}, ".ansi(:faint) +
         | 
| 593 | 
            +
                                    "address: #{info['http']['bound_address'] rescue 'N/A'}".ansi(:faint)
         | 
| 563 594 | 
             
                        end
         | 
| 595 | 
            +
             | 
| 596 | 
            +
                        result
         | 
| 564 597 | 
             
                      end
         | 
| 565 598 |  | 
| 566 599 | 
             
                      # Tries to load cluster health information
         | 
| @@ -598,7 +631,7 @@ module Elasticsearch | |
| 598 631 | 
             
                      #
         | 
| 599 632 | 
             
                      def __check_for_running_processes(pids)
         | 
| 600 633 | 
             
                        if `ps -p #{pids.join(' ')}`.split("\n").size < arguments[:number_of_nodes]+1
         | 
| 601 | 
            -
                           | 
| 634 | 
            +
                          __log "\n[!!!] Process failed to start (see output above)".ansi(:red)
         | 
| 602 635 | 
             
                          exit(1)
         | 
| 603 636 | 
             
                        end
         | 
| 604 637 | 
             
                      end
         | 
| @@ -610,6 +643,12 @@ module Elasticsearch | |
| 610 643 | 
             
                      def __get_nodes
         | 
| 611 644 | 
             
                        JSON.parse(Net::HTTP.get(URI("#{__cluster_url}/_nodes/process")))
         | 
| 612 645 | 
             
                      end
         | 
| 646 | 
            +
             | 
| 647 | 
            +
                      # Print to STDERR
         | 
| 648 | 
            +
                      #
         | 
| 649 | 
            +
                      def __log(message, mode=:puts)
         | 
| 650 | 
            +
                       STDERR.__send__ mode, message unless @arguments[:quiet]
         | 
| 651 | 
            +
                      end
         | 
| 613 652 | 
             
                    end
         | 
| 614 653 | 
             
                  end
         | 
| 615 654 | 
             
                end
         | 
| @@ -102,6 +102,13 @@ class Elasticsearch::Extensions::TestClusterTest < Test::Unit::TestCase | |
| 102 102 | 
             
                    @subject.__remove_cluster_data
         | 
| 103 103 | 
             
                  end
         | 
| 104 104 |  | 
| 105 | 
            +
                  should "not log when :quiet" do
         | 
| 106 | 
            +
                    c = Cluster::Cluster.new quiet: true
         | 
| 107 | 
            +
             | 
| 108 | 
            +
                    STDERR.expects(:puts).never
         | 
| 109 | 
            +
                    c.__log 'QUIET'
         | 
| 110 | 
            +
                  end
         | 
| 111 | 
            +
             | 
| 105 112 | 
             
                  context "when starting a cluster, " do
         | 
| 106 113 | 
             
                    should "return false when it's already running" do
         | 
| 107 114 | 
             
                      Process.expects(:spawn).never
         | 
| @@ -127,7 +134,7 @@ class Elasticsearch::Extensions::TestClusterTest < Test::Unit::TestCase | |
| 127 134 | 
             
                      c.expects(:wait_for_green).returns(true)
         | 
| 128 135 | 
             
                      c.expects(:__check_for_running_processes).returns(true)
         | 
| 129 136 | 
             
                      c.expects(:__determine_version).returns('5.0')
         | 
| 130 | 
            -
                      c.expects(: | 
| 137 | 
            +
                      c.expects(:__cluster_info).returns('CLUSTER INFO')
         | 
| 131 138 |  | 
| 132 139 | 
             
                      assert_equal true, c.start
         | 
| 133 140 | 
             
                    end
         | 
| @@ -198,8 +205,6 @@ class Elasticsearch::Extensions::TestClusterTest < Test::Unit::TestCase | |
| 198 205 | 
             
                    end
         | 
| 199 206 |  | 
| 200 207 | 
             
                    should "return true" do
         | 
| 201 | 
            -
                      @subject.stubs(:__print_cluster_info)
         | 
| 202 | 
            -
             | 
| 203 208 | 
             
                      @subject
         | 
| 204 209 | 
             
                        .expects(:__get_cluster_health)
         | 
| 205 210 | 
             
                        .with('yellow')
         | 
| @@ -254,6 +259,7 @@ class Elasticsearch::Extensions::TestClusterTest < Test::Unit::TestCase | |
| 254 259 |  | 
| 255 260 | 
             
                    should "return version from `elasticsearch --version`" do
         | 
| 256 261 | 
             
                      File.expects(:exist?).with('/foo/bar/bin/../lib/').returns(false)
         | 
| 262 | 
            +
                      File.expects(:exist?).with('/foo/bar/bin/elasticsearch').returns(true)
         | 
| 257 263 |  | 
| 258 264 | 
             
                      Process.stubs(:wait)
         | 
| 259 265 | 
             
                      Process.expects(:spawn)
         | 
| @@ -270,7 +276,7 @@ class Elasticsearch::Extensions::TestClusterTest < Test::Unit::TestCase | |
| 270 276 | 
             
                    end
         | 
| 271 277 |  | 
| 272 278 | 
             
                    should "raise an exception when the version cannot be parsed from .jar" do
         | 
| 273 | 
            -
                      # Incorrect jar version
         | 
| 279 | 
            +
                      # Incorrect jar version (no dots)
         | 
| 274 280 | 
             
                      File.expects(:exist?).with('/foo/bar/bin/../lib/').returns(true)
         | 
| 275 281 | 
             
                      Dir.expects(:entries).with('/foo/bar/bin/../lib/').returns(['elasticsearch-100.jar'])
         | 
| 276 282 |  | 
| @@ -279,6 +285,7 @@ class Elasticsearch::Extensions::TestClusterTest < Test::Unit::TestCase | |
| 279 285 |  | 
| 280 286 | 
             
                    should "raise an exception when the version cannot be parsed from command output" do
         | 
| 281 287 | 
             
                      File.expects(:exist?).with('/foo/bar/bin/../lib/').returns(false)
         | 
| 288 | 
            +
                      File.expects(:exist?).with('/foo/bar/bin/elasticsearch').returns(true)
         | 
| 282 289 |  | 
| 283 290 | 
             
                      Process.stubs(:wait)
         | 
| 284 291 | 
             
                      Process.expects(:spawn)
         | 
| @@ -300,6 +307,16 @@ class Elasticsearch::Extensions::TestClusterTest < Test::Unit::TestCase | |
| 300 307 |  | 
| 301 308 | 
             
                      assert_raise(RuntimeError) { @subject.__determine_version }
         | 
| 302 309 | 
             
                    end
         | 
| 310 | 
            +
             | 
| 311 | 
            +
                    should "raise an exception when the command cannot be found" do
         | 
| 312 | 
            +
                      @subject = Elasticsearch::Extensions::Test::Cluster::Cluster.new
         | 
| 313 | 
            +
             | 
| 314 | 
            +
                      File.expects(:exist?).with('./../lib/').returns(false)
         | 
| 315 | 
            +
                      File.expects(:exist?).with('elasticsearch').returns(false)
         | 
| 316 | 
            +
                      @subject.expects(:`).returns('')
         | 
| 317 | 
            +
             | 
| 318 | 
            +
                      assert_raise(Errno::ENOENT) { @subject.__determine_version }
         | 
| 319 | 
            +
                    end
         | 
| 303 320 | 
             
                  end
         | 
| 304 321 | 
             
                end
         | 
| 305 322 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: elasticsearch-extensions
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.24
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Karel Minarik
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2017-01-21 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: ansi
         |