+++ /dev/null
-require 'spec_helper'
-
-describe Facter::Util::Fact do
- before { Facter.clear }
-
- describe 'rabbitmq_nodename' do
- context 'with value' do
- before do
- allow(Facter::Util::Resolution).to receive(:which).with('rabbitmqctl') { true }
- allow(Facter::Core::Execution).to receive(:execute).with('rabbitmqctl status 2>&1') { 'Status of node monty@rabbit1 ...' }
- end
- it do
- expect(Facter.fact(:rabbitmq_nodename).value).to eq('monty@rabbit1')
- end
- end
-
- context 'with dashes in hostname' do
- before do
- allow(Facter::Util::Resolution).to receive(:which).with('rabbitmqctl') { true }
- allow(Facter::Core::Execution).to receive(:execute).with('rabbitmqctl status 2>&1') { 'Status of node monty@rabbit-1 ...' }
- end
- it do
- expect(Facter.fact(:rabbitmq_nodename).value).to eq('monty@rabbit-1')
- end
- end
-
- context 'with dashes in nodename/hostname' do
- before do
- allow(Facter::Util::Resolution).to receive(:which).with('rabbitmqctl') { true }
- allow(Facter::Core::Execution).to receive(:execute).with('rabbitmqctl status 2>&1') { 'Status of node monty-python@rabbit-1 ...' }
- end
- it do
- expect(Facter.fact(:rabbitmq_nodename).value).to eq('monty-python@rabbit-1')
- end
- end
-
- context 'with quotes around node name' do
- before do
- allow(Facter::Util::Resolution).to receive(:which).with('rabbitmqctl') { true }
- allow(Facter::Core::Execution).to receive(:execute).with('rabbitmqctl status 2>&1') { 'Status of node \'monty@rabbit-1\' ...' }
- end
- it do
- expect(Facter.fact(:rabbitmq_nodename).value).to eq('monty@rabbit-1')
- end
- end
-
- context 'without trailing points' do
- before do
- allow(Facter::Util::Resolution).to receive(:which).with('rabbitmqctl') { true }
- allow(Facter::Core::Execution).to receive(:execute).with('rabbitmqctl status 2>&1') { 'Status of node monty@rabbit-1' }
- end
- it do
- expect(Facter.fact(:rabbitmq_nodename).value).to eq('monty@rabbit-1')
- end
- end
-
- context 'rabbitmq is not running' do
- before do
- error_string = <<-EOS
-Status of node 'monty@rabbit-1' ...
-Error: unable to connect to node 'monty@rabbit-1': nodedown
-
-DIAGNOSTICS
-===========
-
-attempted to contact: ['monty@rabbit-1']
-
-monty@rabbit-1:
- * connected to epmd (port 4369) on centos-7-x64
- * epmd reports: node 'rabbit' not running at all
- no other nodes on centos-7-x64
- * suggestion: start the node
-
-current node details:
-- node name: 'rabbitmq-cli-73@centos-7-x64'
-- home dir: /var/lib/rabbitmq
-- cookie hash: 6WdP0nl6d3HYqA5vTKMkIg==
-
- EOS
- allow(Facter::Util::Resolution).to receive(:which).with('rabbitmqctl') { true }
- allow(Facter::Core::Execution).to receive(:execute).with('rabbitmqctl status 2>&1') { error_string }
- end
- it do
- expect(Facter.fact(:rabbitmq_nodename).value).to eq('monty@rabbit-1')
- end
- end
-
- context 'rabbitmqctl is not in path' do
- before do
- allow(Facter::Util::Resolution).to receive(:which).with('rabbitmqctl') { false }
- end
- it do
- expect(Facter.fact(:rabbitmq_nodename).value).to be_nil
- end
- end
- end
-end