genvid.toolbox.RuntimeTool

class genvid.toolbox.RuntimeTool(services_dir='services', **kwargs)

ベースクラス: genvid.toolbox.nomad.NomadTool, genvid.toolbox.config.EventsTool, genvid.toolbox.project.ProjectTool

さまざまな環境を管理するための共通ツール。

バージョン 1.30.0 で変更: ConsulTemplateTool の代わりに ProjectTool から派生させます。

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')

必須設定キーのリスト

STARTUP_TIMEOUT = 60

GENVID_STARTUP_TIMEOUT のデフォルト値。

STOP_TIMEOUT = 15

Nomad ジョブ終了の試行を中止するまでの最大待機時間。

JOBS_ACTIONS = {'plan': 'Plan nomad jobs.', 'run': 'Start nomad jobs.', 'stop': 'Stop nomad jobs.', 'status': 'Stop nomad jobs.'}

ジョブコマンドと説明のリスト。

jobs_dir = None

ジョブテンプレートが出力されるフォルダ。

GENVID_STARTUP_TIMEOUT = None

起動上のデフォルトタイムアウトを含む、 GENVID_STARTUP_TIMEOUT のミラー

services = None

監視サービスのインストーラ。

GENVID_BASTION_CONFIG_FOLDER = None

bastion 設定を含む GENVID_BASTION_CONFIG_FOLDER のミラー。

バージョン 1.31.0 で追加.

GENVID_BASTION_JOB_TEMPLATE_FOLDER = None

bastion 設定を含む GENVID_BASTION_JOB_TEMPLATE_FOLDER のミラー。

バージョン 1.31.0 で追加.

template_dir

ジョブの Nomad テンプレートの場所。

バージョン 1.31.0 で撤廃: このプロパティは GENVID_BASTION_JOB_TEMPLATE_FOLDER のミラーです。

JOBS

利用可能なジョブのリスト。

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: str = None, **kwargs)

Nomad ジョブを実行したり、テンプレートから直接計画する。

run_nomad_jobs(action, *jobs, skip_checks: bool = False, nomad_url: str = None, **kwargs) → bool

ジョブのリストで、利用可能な Nomad コマンドを実行する。

戻り値:Nomad サービスが実行されていない場合は False。実行されている場合は True
    バージョン 1.20.0 で変更:
  • nomad サービスのチェック結果を戻します。

    バージョン 1.20.1 で変更:
  • action=stop のときに、Nomad ジョブが終了するのを適切に待機します。

plan_jobs(*jobs, skip_checks: bool = False, nomad_url: str = None, **kwargs) → bool

ジョブのリストに plan を実行し、Nomad ファイルを最初に生成する。

パラメータ:jobs – ジョブのリスト。指定されていない場合、すべての既知のジョブを使用する。
戻り値:Nomad サービスが実行されていない場合は False。実行されている場合は True。

バージョン 1.20.0 で変更: nomad サービスのチェック結果を戻します。

run_jobs(*jobs, skip_checks: bool = False, nomad_url: str = None, **kwargs) → bool

ジョブのリストに run を実行し、Nomad ファイルを最初に生成する。

パラメータ:jobs – ジョブのリスト。指定されていない場合、すべての既知のジョブを使用する。
戻り値:Nomad サービスが実行されていない場合は False。実行されている場合は True。

バージョン 1.20.0 で変更: nomad サービスのチェック結果を戻します。

stop_jobs(*jobs, skip_checks: bool = False, nomad_url: str = None, **kwargs) → bool

リストのジョブを停止する。指定されていない場合、すべての既知のジョブを使用する。

戻り値:Nomad サービスが実行されていない場合は False。実行されている場合は True。

バージョン 1.20.0 で変更: nomad サービスのチェック結果を戻します。

status_jobs(*jobs, skip_checks: bool = False, nomad_url: str = None, **kwargs) → bool

リストのジョブのステータスを返す。指定されていない場合、すべての既知のジョブを使用する。

戻り値:Nomad サービスが実行されていない場合は False。実行されている場合は True。

バージョン 1.20.0 で変更: nomad サービスのチェック結果を戻します。

status(*jobs)

すべてのサービスとジョブのステータスを出力する。

バージョン 1.20.0 で変更: bastion および cluster インスタンスのバージョンを表示する。

check_config()

すべての構成が正しく設定されているかを検証する。

戻り値:すべて OK であれば、True。そうでない場合は False
refresh()

必要に応じて、設定を更新する。

check_services(timeout: float = None) → bool

監視サービスが応答するかをチェックする。

init_service_vault(timeout: float)
get_nomad_token()
init_service_nomad(timeout: float)
add_services_commands()

サービスのコマンドをパーサーに追加する。

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

run_services_command(command: str, options) → typing.Tuple[bool, typing.Any]

コマンドがサービスコマンドかどうかを検出し、実行する。

run_command() から呼び出し、サービスコマンドを処理する。 add_services_commands() により、ジョブコマンドが追加される。

戻り値:コマンドを処理した場合は結果を返す。
add_jobs_commands()

ジョブコマンドをパーサーに追加する。

add_commands() から実行し、ジョブコマンドをパーサーに追加する。

run_jobs_command(command: str, options) → typing.Tuple[bool, typing.Any]

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

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

戻り値:コマンドを処理した場合は結果を返す。
add_runtime_commands()

RuntimeTool とその親から利用可能なすべてのコマンドを追加する。

add_commands() から実行し、利用可能なすべてのコマンドをパーサーに追加する。

詳細は以下のメソッドを参照してください。

run_runtime_command(command: str, options) → typing.Tuple[bool, typing.Any]

コマンドがランタイムコマンドかどうかを検出し、実行する。

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

戻り値:コマンドを処理した場合は結果を返す。
class runtime.RuntimeTool

genvid.toolbox.RuntimeTool の実装