def __init__(self, ctx): """ LinchpinAPI constructor :param ctx: context object from api/context.py """ self.ctx = ctx base_path = '/'.join(os.path.dirname(__file__).split('/')[0:-2]) pkg = self.get_cfg(section='lp', key='pkg', default='linchpin') self.lp_path = '{0}/{1}'.format(base_path, pkg) self.set_evar('from_api', True) self.hook_state = None self._hook_observers = [] self.playbook_pre_states = self.get_cfg('playbook_pre_states', { 'up': 'preup', 'destroy': 'predestroy' }) self.playbook_post_states = self.get_cfg('playbook_post_states', { 'up': 'postup', 'destroy': 'postdestroy', 'postinv': 'inventory' }) self.hooks = LinchpinHooks(self) self.target_data = {} if not self.workspace: self.workspace = os.path.realpath(os.path.curdir)
def __init__(self, ctx): """ LinchpinAPI constructor :param ctx: context object from context.py """ self.__meta__ = "API" self.ctx = ctx self.hook_state = None self._hook_observers = [] self.playbook_pre_states = self.get_cfg('playbook_pre_states', {'up': 'preup', 'destroy': 'predestroy'}) self.playbook_post_states = self.get_cfg('playbook_post_states', {'up': 'postup', 'destroy': 'postdestroy', 'postinv': 'inventory'}) self.hooks = LinchpinHooks(self) self.target_data = {} default_delimiter = self.get_cfg(section='evars', key='default_delimiter', default='_') base_path = '/'.join(os.path.dirname(__file__) .split('/')[0:-1]) pkg = self.get_cfg(section='lp', key='pkg', default='linchpin') lp_path = '{0}/{1}'.format(base_path, pkg) self.pb_ext = self.get_cfg('extensions', 'playbooks', default='.yml') # get external_provider_path xp_path = self.get_cfg('lp', 'external_providers_path', default='').split(':') pb_path = '{0}/{1}'.format(lp_path, self.get_evar('playbooks_folder', default='provision')) self.pb_path = [pb_path] for path in xp_path: self.pb_path.append(os.path.expanduser(path)) self.set_evar('default_delimiter', default_delimiter) self.set_evar('lp_path', lp_path) self.set_evar('pb_path', self.pb_path) self.set_evar('from_api', True) self.workspace = self.get_evar('workspace')