genvid.toolbox.ConsulTool
- class genvid.toolbox.ConsulTool(use_wan=False, **kwargs)
ベースクラス:
NetworkTool
この class で、さまざまな Consul サービスにアクセスできます。
- NAME = 'consul'
このツールのロガー名。子 class (children) で再定義する必要があります。
- DESCRIPTION = 'An interface to the consul discovery service.'
ヘルプパーサーで使用されるツールの説明。子 class (children) で再定義する必要があります。
- CONSUL_KEY_SEP = '/'
Consul KVS フォルダのセパレータ
- UI_NAMES = ('consul-ui',)
UI サービス名のリスト
- CONSUL_HTTP_ADDR
CONSUL_HTTP_ADDR
のミラー。ツールボックスが consul 接続に使用する IP とポートを指定する。バージョン 1.34.0 で変更:
GENVID_BASTION_URL
(完全に解析可能な URI) やCONSUL_HTTP_ADDR
(ホスト名/IP とポートの組み合わせで、スキームを含まない) が設定されているが無効な場合、ValueError
が返されます。
- connect_consul(ip=None)
特定の Consul ノードへの接続を返します。
- property consulate
consulate パッケージから接続された Consul クライアント。
- property consul_kv
Consul KVS。
- property consul_catalog
Consul カタログ。
- property consul_health
Consul ヘルス API。
バージョン 1.15.0 で追加.
- property 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: Optional[str] = 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)
サービスのアドレスとポートを返す。
- パラメータ:
svc --
get_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