def update(self, request, *args, **kwargs): """Updates the state of the extension. If ``enabled`` is true, then the extension will be enabled, if it is not already. If false, it will be disabled. """ # Try to find the registered extension try: registered_extension = self.get_object(request, *args, **kwargs) except ObjectDoesNotExist: return DOES_NOT_EXIST extension_id = registered_extension.class_name if kwargs.get('enabled'): try: self._extension_manager.enable_extension(extension_id) except EnablingExtensionError as e: err = ENABLE_EXTENSION_FAILED.with_message(six.text_type(e)) return err, { 'load_error': e.load_error, 'needs_reload': e.needs_reload, } except InvalidExtensionError as e: raise return ENABLE_EXTENSION_FAILED.with_message(six.text_type(e)) else: try: self._extension_manager.disable_extension(extension_id) except (DisablingExtensionError, InvalidExtensionError) as e: return DISABLE_EXTENSION_FAILED.with_message(six.text_type(e)) # Refetch extension, since the ExtensionManager may have changed # the model. registered_extension = \ RegisteredExtension.objects.get(pk=registered_extension.pk) return 200, { self.item_result_key: registered_extension }
def update(self, request, *args, **kwargs): # Try to find the registered extension try: registered_extension = self.get_object(request, *args, **kwargs) except ObjectDoesNotExist: return DOES_NOT_EXIST try: ext_class = self._extension_manager.get_installed_extension( registered_extension.class_name) except InvalidExtensionError: return DOES_NOT_EXIST if kwargs.get('enabled'): try: self._extension_manager.enable_extension(ext_class.id) except (EnablingExtensionError, InvalidExtensionError), e: return ENABLE_EXTENSION_FAILED.with_message(e.message)
def update(self, request, *args, **kwargs): """Updates the state of the extension. If ``enabled`` is true, then the extension will be enabled, if it is not already. If false, it will be disabled. """ # Try to find the registered extension try: registered_extension = self.get_object(request, *args, **kwargs) except ObjectDoesNotExist: return DOES_NOT_EXIST try: ext_class = self._extension_manager.get_installed_extension( registered_extension.class_name) except InvalidExtensionError: return DOES_NOT_EXIST if kwargs.get('enabled'): try: self._extension_manager.enable_extension(ext_class.id) except (EnablingExtensionError, InvalidExtensionError), e: return ENABLE_EXTENSION_FAILED.with_message(e.message)