Sha256: 51e0db264148c9021cd596b74226ecfd0b3550706028b420de8235dc7433f9de

Contents?: true

Size: 1.98 KB

Versions: 17

Compression:

Stored size: 1.98 KB

Contents

# frozen_string_literal: true

# tau info status mutagen
module MutagenCheckDaemon
  # Backend method for mutagen check daemon.
  # @return [Boolean] is mutagen available?
  # rubocop:disable Metrics/MethodLength
  # rubocop:disable Metrics/AbcSize
  def mutagen_check_daemon
    return true if @mutagen_daemon_available

    log.debug 'Check mutagen status'

    return false unless command_available_else_error? config.active['cmd_mutagen']

    # are we inside a takelage container?
    unless _docker_container_lib_check_matrjoschka
      unless _file_exists? config.active['mutagen_socket_path_mutagen_host']
        log.error 'The mutagen socket path on the host is not available'
        return false
      end

      log.debug 'The mutagen daemon is available'
      @mutagen_daemon_available = true
      return true
    end

    unless _mutagen_check_daemon_host_connection
      log.error 'A mutagen host connection is not available'
      return false
    end

    unless _file_exists? config.active['mutagen_socket_path_mutagen_container']
      log.error 'The mutagen socket path in the container is not available'
      return false
    end

    log.debug 'The mutagen daemon is available'
    @mutagen_daemon_available = true
    true
  end
  # rubocop:enable Metrics/AbcSize
  # rubocop:enable Metrics/MethodLength

  private

  # Check mutagen host connection
  # rubocop:disable Metrics/MethodLength
  def _mutagen_check_daemon_host_connection
    check_host_connection = format(
      config.active['cmd_mutagen_check_daemon_host_connection'],
      hostlabel: @hostlabel
    )
    stdout, _, exitstatus = run_and_capture check_host_connection

    unless exitstatus.zero?
      log.debug 'There is no mutagen forward connection to the host'
      return false
    end

    unless stdout.include? 'Status: Forwarding'
      log.debug 'The mutagen forward connection to the host ' \
        'is not forwarding connections'
      return false
    end

    true
  end
  # rubocop:enable Metrics/MethodLength
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
takeltau-0.43.16 lib/takeltau/mutagen/check/daemon.rb
takeltau-0.43.15 lib/takeltau/mutagen/check/daemon.rb
takeltau-0.43.14 lib/takeltau/mutagen/check/daemon.rb
takeltau-0.43.10 lib/takeltau/mutagen/check/daemon.rb
takeltau-0.43.6 lib/takeltau/mutagen/check/daemon.rb
takeltau-0.43.4 lib/takeltau/mutagen/check/daemon.rb
takeltau-0.43.2 lib/takeltau/mutagen/check/daemon.rb
takeltau-0.43.1 lib/takeltau/mutagen/check/daemon.rb
takeltau-0.42.7 lib/takeltau/mutagen/check/daemon.rb
takeltau-0.42.5 lib/takeltau/mutagen/check/daemon.rb
takeltau-0.42.4 lib/takeltau/mutagen/check/daemon.rb
takeltau-0.42.3 lib/takeltau/mutagen/check/daemon.rb
takeltau-0.42.0 lib/takeltau/mutagen/check/daemon.rb
takeltau-0.41.10 lib/takeltau/mutagen/check/daemon.rb
takeltau-0.41.9 lib/takeltau/mutagen/check/daemon.rb
takeltau-0.41.0 lib/takeltau/mutagen/check/daemon.rb
takeltau-0.40.11 lib/takeltau/mutagen/check/daemon.rb