def get_selected_resource_types(self): selected_resource_types = [] selected_resource_types_str = setting_resource_selection.get_for_resource(DivvyPlugin.get_current_plugin()) for resource_type_str in selected_resource_types_str: if not(resource_type_str in [cls.get_resource_type().lower() for cls in get_all_classes()]): logging.getLogger("DataExporter").error("%s is not a valid resources, skipping" % (resource_type_str)) continue selected_resource_types.append(get_class_for_type(resource_type_str)) return selected_resource_types
category = 'Data Exporters' managed = False # Prefix for settings and properties used by this plugin _SETTING_PROPERTY_PREFIX = DivvyPlugin.get_current_plugin().name # Global settings that are saved _SETTING_RESOURCE_LIST = '%s.export_list' % (_SETTING_PROPERTY_PREFIX) _SETTING_ENABLED = '%s.enabled' % (_SETTING_PROPERTY_PREFIX) # Get the plugin resource id _PLUGIN_RESOURCE_ID_STR = DivvyPlugin.get_current_plugin().get_resource_id().to_string() # Define form elements for the plugin settings resource_choices = [str(cls.get_resource_type()) for cls in get_all_classes() ] setting_resource_selection = GlobalSetting(name=_SETTING_RESOURCE_LIST,display_name='Select Resources to export',type_hint='json_list',description='Select Resources to Export',choices=resource_choices) setting_enabled = GlobalSetting(name=_SETTING_ENABLED,display_name='Enabled exporter',type_hint='bool',description='Enabled data exporter',default_value='false') class ResourceExporter(PluginJob): def __init__(self): super(ResourceExporter, self).__init__() @EscalatePermissions() @SharedSessionScope(DivvyCloudGatewayORM) def get_selected_resource_types(self): """ Only export resource types that have been configured via the UI """ selected_resource_types = []