示例#1
0
 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
示例#2
0
 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]))
示例#3
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)
示例#4
0
 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)
示例#5
0
 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)