def get_plugins_full_metadata(self, order): plugins_metadata = self.get_plugins_org_metadata() sg = self.parent_cluster if "@sc-plugins" in sg.tags: stored_diff = utils.decode_uncompress_load( sg.tags["@sc-plugins"]) plugins_metadata_json = config.plugins_config_stored_to_json( plugins_metadata) config.apply_json_diff(plugins_metadata_json, stored_diff) plugins_metadata = config.plugins_config_json_to_stored( plugins_metadata_json, order) return plugins_metadata
def get_plugins(self): plugstxt = self.user_data.get(static.UD_PLUGINS_FNAME) payload = plugstxt.split('\n', 2)[2] plugins_metadata = utils.decode_uncompress_load(payload) plugs = [] for klass, args, kwargs in plugins_metadata: mod_path, klass_name = klass.rsplit('.', 1) try: mod = __import__(mod_path, fromlist=[klass_name]) plug = getattr(mod, klass_name)(*args, **kwargs) except SyntaxError, e: raise exception.PluginSyntaxError( "Plugin %s (%s) contains a syntax error at line %s" % (klass_name, e.filename, e.lineno)) except ImportError, e: raise exception.PluginLoadError( "Failed to import plugin %s: %s" % (klass_name, e[0]))
def get_volumes(self): volstxt = self.user_data.get(static.UD_VOLUMES_FNAME) payload = volstxt.split('\n', 2)[2] return utils.decode_uncompress_load(payload)
def get_plugins_org_metadata(self): plugstxt = self.user_data.get(static.UD_PLUGINS_FNAME) payload = plugstxt.split('\n', 2)[2] return utils.decode_uncompress_load(payload)