vcpsdk.plugins.onpremises のソースコード

#
# Onpremises
#
from vcpsdk.plugins.spec import VcpSpecResource

CCI_VERSION = "1.0"
BUILD_VERSION = "20190408"


[ドキュメント] class VcpSpecResourceOnpremises(VcpSpecResource): """ サンプルコード .. code-block:: python spec = sdk.get_spec("onpremises", "default") # # 変更できること # spec.network_if = 'eth9' spec.user_name = 'ubuntu' # ssh login user spec.ip_addresses = ['起動するnodeの静的なIPアドレス'] # base containerにssh loginするためのssh公開鍵情報を設定 spec.set_ssh_pubkey('tmp/id_rsa.pub') """ version = CCI_VERSION + "+" + BUILD_VERSION def __init__(self, provider_name, flavor, config_dir): # flavor から spec を設定 super().__init__(provider_name, flavor, config_dir) # spec attributes名の設定チェックの回避 super().__setattr__("onpresmies_cci_", None) # クレデンシャル情報は、vcp_config から設定 self.onpresmies_cci_ = { "cci_version": CCI_VERSION, "ip_address_list": [], "network_if": None, "user_name": None, } def __str__(self): text = """ ======================== {provider_name} ------------------------ {unit_info} """.format( provider_name=self.unit_cci_["cloud_provider"], unit_info=super().__str__() ) text += """ user_name: {user_name} network_if: {network_if} ip_address_list: {ip_address_list} ========================""".format_map( self.onpresmies_cci_ ) return text # build cci from property
[ドキュメント] def cci(self, name): """ CCI生成 :param name: unit名 :return: CCI文字列 """ my_cci = super().cci(name) my_cci += """ cloud_provider: onpremises cloud_params: cci_version: "{cci_version}" user_name: {user_name} ip_address_list: {ip_address_list} network_if: {network_if}""".format_map( self.onpresmies_cci_ ) return my_cci
# property: network_if @property def network_if(self): """ onpremisesに依存する network_if """ return self.onpresmies_cci_["network_if"] @network_if.setter def network_if(self, v): self.onpresmies_cci_["network_if"] = v # property: user_name @property def user_name(self): """ onpremisesに依存する ssh login名 """ return self.onpresmies_cci_["user_name"] @user_name.setter def user_name(self, v): self.onpresmies_cci_["user_name"] = v # property: ip_addresses @property def ip_addresses(self): """ onpremisesに依存する ip_address_list """ return self.onpresmies_cci_["ip_address_list"] @ip_addresses.setter def ip_addresses(self, v): self.onpresmies_cci_["ip_address_list"] = v def __setattr__(self, name, value): """ spec の attributes に不正な値を設定した場合に例外を発生 :param name: attributes名 :param value: 設定値 """ if not hasattr(self, name): raise AttributeError("spec resource has no attributes!! [{}]".format(name)) super().__setattr__(name, value)