genvid.toolbox.ConsulTool

class genvid.toolbox.ConsulTool(use_wan=False, **kwargs)

ベースクラス: genvid.toolbox.network.NetworkTool

この class で、さまざまな Consul サービスにアクセスできます。

NAME = 'consul'
DESCRIPTION = 'An interface to the consul discovery service.'
CONSUL_KEY_SEP = '/'

Consul KVS フォルダのセパレータ

UI_NAMES = ('consul-ui',)

UI サービス名のリスト

CONSUL_HTTP_ADDR = None

CONSUL_HTTP_ADDR のミラー。ツールボックスが consul 接続に使用する IP とポートを指定する。

バージョン 1.34.0 で変更: GENVID_BASTION_URL (完全に解析可能な URI) や CONSUL_HTTP_ADDR (ホスト名/IP とポートの組み合わせで、スキームを含まない) が設定されているが無効な場合、 ValueError が返されます。

connect_consul(ip=None)

特定の Consul ノードへの接続を返します。

consulate

consulate パッケージから接続された Consul クライアント。

consul_kv

Consul KVS。

consul_catalog

Consul カタログ。

consul_health

Consul ヘルス API。

バージョン 1.15.0 で追加.

consul_agent

Consul エージェント API。

consul_join(ip)

Consul クラスタに参加。

get_consul_ip()

デフォルトの Consul サービスの IP を返す。

このメソッドは、環境変数 CONSUL_HTTP_ADDR が設定されていれば、そのホスト部分を返します。

CONSUL_HTTP_ADDR が設定されておらず、環境変数 GENVID_BASTION_URL が設定されている場合は、 url のホストを使用します。

それ以外の場合は、環境変数 GENVID_DEFAULT_IP のデフォルトが 127.0.0.1 となります。

バージョン 1.28.0 で変更: GENVID_BASTION_URL (完全に解析可能な URI) や CONSUL_HTTP_ADDR (ホスト名/IP とポートの組み合わせで、スキームを含まない) が設定されているが無効な場合、 ValueError が返されます。詳細の説明をご覧ください。

バージョン 1.34.0 で変更: CONSUL_HTTP_ADDR が不正な値であった場合に ValueError を発生させます。特に、スキームが含まれている場合は失敗します。

get_consul_address()

デフォルトの Consul サービスのアドレスを返す。

返されるアドレスには address:port のみが含まれており、プロトコルのプリフィックスは含まれません。

このメソッドは、環境変数 CONSUL_HTTP_ADDR が設定されていれば、それを返します。

CONSUL_HTTP_ADDR が設定されておらず、環境変数 GENVID_BASTION_URL が設定されている場合は、 url のホストにデフォルトのポート 8500 を付加して使用します。

そうでない場合は、環境変数 GENVID_DEFAULT_IP (デフォルトは 127.0.0.1) に :8500 を追加したものになります。

バージョン 1.28.0 で変更: GENVID_BASTION_URL (完全に解析可能な URI) や CONSUL_HTTP_ADDR (ホスト名/IP とポートの組み合わせで、スキームを含まない) が設定されているが無効な場合、 ValueError が返されます。詳細の説明をご覧ください。

get_service(name, timeout=0.0, tag: typing.Union[str, NoneType] = None, passing: bool = True)

サービス name のステータスを返す。

パラメータ:
  • timeout – 数秒間、または適切なサービスが見つかるまでサービスが再試行する。
  • tag – 空白でない場合、このタグのサービスのみを戻す。
  • passing – True の場合 (デフォルト)、パスするサービスのみを戻す。

サービスが利用できない場合、 ServiceIsNotRunningError が発生します。

バージョン 1.15.0 で変更: カタログではなく、/v1/health/service を使用して健全なサービスのみを返す。引数を False に設定すると、以前の動作を取得する。

static get_service_address_port(svc: dict, use_wan: bool = False)

サービスのアドレスとポートを返す。

パラメータ:
  • svcget_service() で返されるサービス説明の辞書。
  • use_wan – 存在する場合は、WAN TaggedAdressed を使用。

バージョン 1.19.0 で追加.

start_service_ui(ui, use_wan=False)

ui というサービスで、Web ブラウザを開く。サービスに use_wan を使用する場合に指定。

start_consul_ui()

Consul UI で Web ブラウザを開く。

start_ui(*uis)

uis で指定したサービスで Web ページを開く。

add_consul_commands()

Consul コマンドをパーサーに追加する。

add_commands() から実行し、イベントコマンドをパーサーに追加する。

run_consul_command(command, options)

コマンドが Consul コマンドかどうかを検出し、実行する。

run_command() から呼び出し、Consul コマンドを処理する。 add_consul_commands() により、Consul コマンドが追加される。

戻り値:

handled, result: コマンドを処理したかどうかを示す、ブール値のトプル。
処理した場合は結果を返す。
class consul.ConsulTool

genvid.toolbox.ConsulTool の実装