def validate(self):
        # Timeout can't be 0 or less
        if self.params['Timeout'] <= 0:
            raise InvalidConfiguration("Timeout parameter can't be 0")

        # Command or Module have to be set
        if not self.params['Command'] and not self.params['Module']:
            raise InvalidConfiguration("Command or Module parameter has to be set")

        # Command and Module params can't be together
        if self.params['Command'] and self.params['Module']:
            raise InvalidConfiguration("Command and Module parameters cannot be set together")

        # Parser can't be set without command
        if not self.params['Command'] and self.params['Parser']:
            raise InvalidConfiguration("Parser can be used only with Command parameter")
Validate configuration
dataset/ETHPy150Open gooddata/smoker/smoker/server/plugins/__init__.py/Plugin.validate