genvid.toolbox.RuntimeTool
- class genvid.toolbox.RuntimeTool(services_dir='services', **kwargs)
ベースクラス:
NomadTool
,ConsulTemplateTool
さまざまな環境を管理するための共通ツール。
バージョン 1.30.0 で変更: ConsulTemplateTool の代わりに ProjectTool から派生させます。
バージョン 1.33.0 で変更:
EventsTool
への依存を削除しました。バージョン 1.33.0 で変更:
ConfigTool
への依存を削除しました。バージョン 1.33.0 で変更:
ProjectTool
をConfigurationLoader
に置き換えます。- VaultInitializationErrors = (<class 'requests.exceptions.ConnectionError'>, <class 'hvac.exceptions.VaultDown'>, <class 'hvac.exceptions.Forbidden'>, <class 'hvac.exceptions.InternalServerError'>, <class 'hvac.exceptions.InvalidPath'>, <class 'genvid.toolbox.consul.ServiceIsNotRunningError'>)
再試行が許可された Vault 初期化エラー。
バージョン 1.15.0 で追加.
- NomadInitializationErrors = (<class 'nomad.api.exceptions.BaseNomadException'>, <class 'nomad.api.exceptions.URLNotFoundNomadException'>, <class 'genvid.toolbox.consul.ServiceIsNotRunningError'>, <class 'requests.exceptions.ConnectionError'>)
再試行が許可された Nomad 初期化エラー。
バージョン 1.15.0 で追加.
- MUST_HAVE_CONFIGURATION = ('genvid/encode/stream/service', 'genvid/encode/stream/addr', 'genvid/encode/stream/key', 'genvid/encode/stream/channel')
必須設定キーのリスト
バージョン 1.33.0 で非推奨: 無効となりました。
- STARTUP_TIMEOUT = 60
GENVID_STARTUP_TIMEOUT
のデフォルト値。
- STOP_TIMEOUT = 15
Nomad ジョブ終了の試行を中止するまでの最大待機時間。
- JOBS_ACTIONS = {'plan': 'Plan nomad jobs.', 'run': 'Start nomad jobs.', 'status': 'Stop nomad jobs.', 'stop': 'Stop nomad jobs.'}
ジョブコマンドと説明のリスト。
- jobs_dir
ジョブテンプレートが出力されるフォルダ。
- GENVID_STARTUP_TIMEOUT
起動上のデフォルトタイムアウトを含む、
GENVID_STARTUP_TIMEOUT
のミラー
- services
監視サービスのインストーラ。
- GENVID_BASTION_CONFIG_FOLDER
bastion 設定を含む
GENVID_BASTION_CONFIG_FOLDER
のミラー。バージョン 1.31.0 で追加.
バージョン 1.40.0 で変更: デフォルトは
GENVID_TOOLBOX_FOLDER/bastion-services/local
に変更されました。
- GENVID_BASTION_JOB_TEMPLATE_FOLDER
bastion 設定を含む
GENVID_BASTION_JOB_TEMPLATE_FOLDER
のミラー。バージョン 1.31.0 で追加.
バージョン 1.40.0 で変更:
GENVID_BASTION_CONFIG_FOLDER
内にtemplates
フォルダーを移動します。
- property template_dir: str
ジョブの Nomad テンプレートの場所。
バージョン 1.31.0 で非推奨: このプロパティは
GENVID_BASTION_JOB_TEMPLATE_FOLDER
のミラーです。
- add_job(name, dependencies=None)
実行する新しい Nomad ジョブを追加。
consul-template を使用して環境用のジョブ説明を作成し、 Nomad でジョブを実行します。ローカル環境では、すべてのジョブは、rawexec ドライバを使用して実行します。詳細は、Nomad および consul-template の Web サイトを参照してください。
Args:
name: ジョブ名。
dependencies: ジョブが依存するサービス名のリスト。
- nomad_template(name, template)
consul-template で Nomad ジョブファイルを設定する。
バージョン 1.21.0 で変更:
新しい
ConsulTemplateTool
を使用するように調整。
- get_template_job(job)
job のテンプレートのパスを返す。
- get_nomad_file(job)
- install(node_class: str = 'game', vault_enabled: bool = False, reconfigure: bool = False, **kwargs)
ローカルに監視サービスをインストールする。
このメソッドは、始めにサービスがインストールされているか、実行されているかをチェックし、欠落している要素があれば修正します。サービスがインストールされている場合、構成は変更されません。古いバージョンを削除するには
uninstall()
を使用します。バージョン 1.15.0 で変更: 再構成が True の場合、サービスは常に再開されます。
- uninstall(clean: bool = False)
ローカルに監視サービスをアンインストールする。
実行中の監視サービスをすべて停止し、構成ファイル、データファイルをアンインストールする。
- run_nomad_job(action, job, *, nomad_url: Optional[str] = None, hcl1: bool = False, **kwargs)
Nomad ジョブを実行したり、テンプレートから直接計画する。
バージョン 1.34.0 で変更:
nomad run
に-detach
パラメータを追加しました。hcl1
パラメータを追加して、-hcl1 ジョブをサポートします。バージョン 1.41.0 で変更: NomadのCLIインターフェースの代わりに、Web APIを使用します。
バージョン 1.41.0 で非推奨: 余分なキーワード引数は無視されるようになりました。
- run_nomad_jobs(action, *jobs, skip_checks: bool = False, nomad_url: Optional[str] = None, hcl1: bool = False, **kwargs) bool
ジョブのリストで、利用可能な Nomad コマンドを実行する。
- 戻り値:
Nomad サービスが実行されていない場合は
False
。実行されている場合はTrue
。
バージョン 1.20.0 で変更: nomad サービスのチェック結果を戻します。
バージョン 1.20.1 で変更:
action=stop
のときに、Nomad ジョブが終了するのを適切に待機します。バージョン 1.34.0 で変更: hcl1オプションの追加により、hcl1ジョブ定義に対応。
- plan_jobs(*jobs, skip_checks: bool = False, nomad_url: str = None, hcl1: bool = False, **kwargs) bool
ジョブのリストに
plan
を実行し、Nomad ファイルを最初に生成する。- パラメータ:
jobs -- ジョブのリスト。指定されていない場合、すべての既知のジョブを使用する。
- 戻り値:
Nomad サービスが実行されていない場合は False。実行されている場合は True。
バージョン 1.20.0 で変更: nomad サービスのチェック結果を戻します。
- run_jobs(*jobs, skip_checks: bool = False, nomad_url: str = None, hcl1: bool = False, **kwargs) bool
ジョブのリストに
run
を実行し、Nomad ファイルを最初に生成する。- パラメータ:
jobs -- ジョブのリスト。指定されていない場合、すべての既知のジョブを使用する。
- 戻り値:
Nomad サービスが実行されていない場合は False。実行されている場合は True。
バージョン 1.20.0 で変更: nomad サービスのチェック結果を戻します。
- stop_jobs(*jobs, skip_checks: bool = False, nomad_url: str = None, hcl1: bool = False, **kwargs) bool
リストのジョブを停止する。指定されていない場合、すべての既知のジョブを使用する。
- 戻り値:
Nomad サービスが実行されていない場合は False。実行されている場合は True。
バージョン 1.20.0 で変更: nomad サービスのチェック結果を戻します。
- status_jobs(*jobs, skip_checks: bool = False, nomad_url: str = None, hcl1: bool = False, **kwargs) bool
リストのジョブのステータスを返す。指定されていない場合、すべての既知のジョブを使用する。
- 戻り値:
Nomad サービスが実行されていない場合は False。実行されている場合は True。
バージョン 1.20.0 で変更: nomad サービスのチェック結果を戻します。
- status(*jobs)
すべてのサービスとジョブのステータスを出力する。
バージョン 1.20.0 で変更: bastion および cluster インスタンスのバージョンを表示する。
- check_config()
すべての構成が正しく設定されているかを検証する。
- 戻り値:
すべて OK であれば、True。そうでない場合は False。
バージョン 1.33.0 で非推奨: 現在では使用されておらず、有効ではありません。
- refresh()
必要に応じて、設定を更新する。
- get_nomad_token()
- add_services_commands()
サービスのコマンドをパーサーに追加する。
add_commands()
から実行し、サービスコマンドをパーサーに追加する。
- run_services_command(command: str, options) Tuple[bool, Any]
コマンドがサービスコマンドかどうかを検出し、実行する。
run_command()
から呼び出し、サービスコマンドを処理する。add_services_commands()
により、ジョブコマンドが追加される。- 戻り値:
コマンドを処理した場合は結果を返す。
- add_jobs_commands()
ジョブコマンドをパーサーに追加する。
add_commands()
から実行し、ジョブコマンドをパーサーに追加する。
- run_jobs_command(command: str, options) Tuple[bool, Any]
コマンドがジョブコマンドかどうかを検出し、実行する。
run_command()
から呼び出し、ジョブコマンドを処理する。add_jobs_commands()
により、ジョブコマンドが追加される。- 戻り値:
コマンドを処理した場合は結果を返す。
- add_runtime_commands()
RuntimeTool
とその親から利用可能なすべてのコマンドを追加する。add_commands()
から実行し、利用可能なすべてのコマンドをパーサーに追加する。詳細は以下のメソッドを参照してください。
バージョン 1.33.0 で変更: イベントコマンドを削除します。
- run_runtime_command(command: str, options) Tuple[bool, Any]
コマンドがランタイムコマンドかどうかを検出し、実行する。
run_command()
から呼び出し、ランタイムコマンドを処理する。add_runtime_commands()
により、ランタイムコマンドが追加される。- 戻り値:
コマンドを処理した場合は結果を返す。
- class runtime.RuntimeTool