flant/superhosting

View on GitHub
lib/superhosting/controller/mux/validation.rb

Summary

Maintainability
A
55 mins
Test Coverage
module Superhosting
  module Controller
    class Mux
      def adding_validation(name:)
        @docker_api.container_rm_inactive!(name)
        container_name = index[name].mapper.container_name
        not_running_validation(name: container_name)
      end

      def useable_validation(name:)
        existing_validation(name: name).net_status_ok!
        index[name].containers.empty? ? { error: :logical_error, code: :mux_does_not_used, data: { name: name } } : {}
      end

      def existing_validation(name:)
        @config.muxs.f(name).dir? ? {} : { error: :logical_error, code: :mux_does_not_exists, data: { name: name } }
      end

      def not_running_validation(name:)
        container_name = index[name].mapper.container_name
        @container_controller.not_running_validation(name: container_name).net_status_ok? ? {} : { error: :logical_error, code: :mux_is_running, data: { name: container_name } }
      end

      def running_validation(name:)
        container_name = index[name].mapper.container_name
        @container_controller.running_validation(name: container_name).net_status_ok? ? {} : { error: :logical_error, code: :mux_is_not_running, data: { name: container_name } }
      end
    end
  end
end