def retry_erroneous(self, properties_update):
        # type: (dict) -> int
        """
        Removes the ERRONEOUS state from a component and retries a validation

        :param properties_update: A dictionary to update component properties
        :return: The new state of the component
        """
        with self._lock:
            if self.state != StoredInstance.ERRONEOUS:
                # Not in erroneous state: ignore
                return self.state

            # Update properties
            if properties_update:
                self.context.properties.update(properties_update)

            # Reset state
            self.state = StoredInstance.INVALID
            self.error_trace = None

            # Retry
            self.check_lifecycle()

            # Check if the component is still erroneous
            return self.state
def retry_erroneous ( self , properties_update ) : with self . _lock : if self . state != StoredInstance . ERRONEOUS : return self . state if properties_update : self . context . properties . update ( properties_update ) self . state = StoredInstance . INVALID self . error_trace = None self . check_lifecycle ( ) return self . state
Removes the ERRONEOUS state from a component and retries a validation

        :param properties_update: A dictionary to update component properties
        :return: The new state of the component