diff options
| author | Joel Andres Granados <jgranado@redhat.com> | 2008-02-25 13:46:06 +0100 |
|---|---|---|
| committer | Joel Andres Granados <jgranado@redhat.com> | 2008-02-26 14:43:55 +0100 |
| commit | 6cc51ff0f5c4dda26fc196d0e8db35c525b79844 (patch) | |
| tree | 2fedf561f86c64e45b060d36f3e3b55c94b78d7e /plugins/plugin_examples | |
| parent | 74b839ef6a27f25f1e034365cc6ea137dd7368eb (diff) | |
| download | firstaidkit-6cc51ff0f5c4dda26fc196d0e8db35c525b79844.tar.gz firstaidkit-6cc51ff0f5c4dda26fc196d0e8db35c525b79844.tar.xz firstaidkit-6cc51ff0f5c4dda26fc196d0e8db35c525b79844.zip | |
Make room in the plugins directory for real plugins.
Move the examples to their own directory.
Diffstat (limited to 'plugins/plugin_examples')
| -rw-r--r-- | plugins/plugin_examples/dep1.py | 53 | ||||
| -rw-r--r-- | plugins/plugin_examples/dep2.py | 52 | ||||
| -rw-r--r-- | plugins/plugin_examples/dep3.py | 49 | ||||
| -rw-r--r-- | plugins/plugin_examples/sample1Plugin.py | 55 | ||||
| -rw-r--r-- | plugins/plugin_examples/sample2Plugin.py | 68 | ||||
| -rw-r--r-- | plugins/plugin_examples/sample3Plugin/__init__.py | 3 | ||||
| -rwxr-xr-x | plugins/plugin_examples/sample3Plugin/plugin | 41 | ||||
| -rw-r--r-- | plugins/plugin_examples/sample3Plugin/sample3Plugin.py | 91 |
8 files changed, 412 insertions, 0 deletions
diff --git a/plugins/plugin_examples/dep1.py b/plugins/plugin_examples/dep1.py new file mode 100644 index 0000000..5c42462 --- /dev/null +++ b/plugins/plugin_examples/dep1.py @@ -0,0 +1,53 @@ +# First Aid Kit - diagnostic and repair tool for Linux +# Copyright (C) 2007 Martin Sivak <msivak@redhat.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +from pyfirstaidkit.plugins import Plugin,Flow +from pyfirstaidkit.returns import * + +class Sample1Plugin(Plugin): + """This plugin uses the predefined flow in the Plugin abstract class.""" + name = "SampleDepends 1 -> 2" + version = "0.0.1" + author = "Joel Andres Granados" + def __init__(self, *args, **kwargs): + Plugin.__init__(self, *args, **kwargs) + + @classmethod + def getDeps(cls): + return set(["sample_dependency"]).union(Plugin.getDeps()) + + def prepare(self): + self._result=ReturnValueTrue + + def backup(self): + self._result=ReturnValueTrue + + def restore(self): + self._result=ReturnValueTrue + + def diagnose(self): + self._result=ReturnValueTrue + self.provide("sample_dependency2") + + def fix(self): + self._result=ReturnValueFalse + + def clean(self): + self._result=ReturnValueTrue + +def get_plugin(): + return Sample1Plugin diff --git a/plugins/plugin_examples/dep2.py b/plugins/plugin_examples/dep2.py new file mode 100644 index 0000000..79394ac --- /dev/null +++ b/plugins/plugin_examples/dep2.py @@ -0,0 +1,52 @@ +# First Aid Kit - diagnostic and repair tool for Linux +# Copyright (C) 2007 Martin Sivak <msivak@redhat.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +from pyfirstaidkit.plugins import Plugin,Flow +from pyfirstaidkit.returns import * + +class Sample1Plugin(Plugin): + """This plugin uses the predefined flow in the Plugin abstract class.""" + name = "SampleDepends 1,2 > None" + version = "0.0.1" + author = "Joel Andres Granados" + def __init__(self, *args, **kwargs): + Plugin.__init__(self, *args, **kwargs) + + @classmethod + def getDeps(cls): + return set(["sample_dependency", "sample_dependency2"]).union(Plugin.getDeps()) + + def prepare(self): + self._result=ReturnValueTrue + + def backup(self): + self._result=ReturnValueTrue + + def restore(self): + self._result=ReturnValueTrue + + def diagnose(self): + self._result=ReturnValueTrue + + def fix(self): + self._result=ReturnValueFalse + + def clean(self): + self._result=ReturnValueTrue + +def get_plugin(): + return Sample1Plugin diff --git a/plugins/plugin_examples/dep3.py b/plugins/plugin_examples/dep3.py new file mode 100644 index 0000000..53c5dd7 --- /dev/null +++ b/plugins/plugin_examples/dep3.py @@ -0,0 +1,49 @@ +# First Aid Kit - diagnostic and repair tool for Linux +# Copyright (C) 2007 Martin Sivak <msivak@redhat.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +from pyfirstaidkit.plugins import Plugin,Flow +from pyfirstaidkit.returns import * + +class Sample1Plugin(Plugin): + """This plugin uses the predefined flow in the Plugin abstract class.""" + name = "SampleDepends None > 2" + version = "0.0.1" + author = "Joel Andres Granados" + def __init__(self, *args, **kwargs): + Plugin.__init__(self, *args, **kwargs) + + def prepare(self): + self._result=ReturnValueTrue + + def backup(self): + self._result=ReturnValueTrue + + def restore(self): + self._result=ReturnValueTrue + + def diagnose(self): + self._result=ReturnValueTrue + self.provide("sample_dependency") + + def fix(self): + self._result=ReturnValueFalse + + def clean(self): + self._result=ReturnValueTrue + +def get_plugin(): + return Sample1Plugin diff --git a/plugins/plugin_examples/sample1Plugin.py b/plugins/plugin_examples/sample1Plugin.py new file mode 100644 index 0000000..a3aaa7e --- /dev/null +++ b/plugins/plugin_examples/sample1Plugin.py @@ -0,0 +1,55 @@ +# First Aid Kit - diagnostic and repair tool for Linux +# Copyright (C) 2007 Martin Sivak <msivak@redhat.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +from pyfirstaidkit.plugins import Plugin,Flow +from pyfirstaidkit.returns import * + +class Sample1Plugin(Plugin): + """This plugin uses the predefined flow in the Plugin abstract class.""" + name = "Sample1Plugin" + version = "0.0.1" + author = "Joel Andres Granados" + def __init__(self, *args, **kwargs): + Plugin.__init__(self, *args, **kwargs) + self.reporting = kwargs.get('reporting') + + def prepare(self): + self._result=ReturnValueTrue + self.reporting.info("Sample1Plugin in Prepare task", self) + + def backup(self): + self._result=ReturnValueTrue + self.reporting.info("Sample1Plugin in backup task", self) + + def restore(self): + self._result=ReturnValueTrue + self.reporting.info("Sample1Plugin in Restore task", self) + + def diagnose(self): + self._result=ReturnValueTrue + self.reporting.info("Sample1Plugin in diagnose task", self) + + def fix(self): + self._result=ReturnValueFalse + self.reporting.info("Sample1Plugin in Fix task", self) + + def clean(self): + self._result=ReturnValueTrue + self.reporting.info("Sample1Plugin in Clean task", self) + +def get_plugin(): + return Sample1Plugin diff --git a/plugins/plugin_examples/sample2Plugin.py b/plugins/plugin_examples/sample2Plugin.py new file mode 100644 index 0000000..bcaf4de --- /dev/null +++ b/plugins/plugin_examples/sample2Plugin.py @@ -0,0 +1,68 @@ +# First Aid Kit - diagnostic and repair tool for Linux +# Copyright (C) 2007 Martin Sivak <msivak@redhat.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +from pyfirstaidkit.plugins import Plugin,Flow +from pyfirstaidkit.returns import * + +class Sample2Plugin(Plugin): + """This plugin will defin one more function and use it in a newly defined flow.""" + # + # Additional flow defprepareion. + # + flows = Flow.init(Plugin) + flows["extra"] = Flow({ + Plugin.initial: {ReturnValue: "prepare"}, + "prepare" : {ReturnValueTrue: "diagnose"}, + "diagnose" : {ReturnValueTrue: "clean", ReturnValueFalse: "backup"}, + "backup" : {ReturnValueTrue: "fix", ReturnValueFalse: "clean"}, + "restore" : {ReturnValueTrue: "clean", ReturnValueFalse: "clean"}, + "fix" : {ReturnValueTrue: "extraStep", ReturnValueFalse: "restore"}, + "extraStep" : {ReturnValueTrue: "clean", ReturnValueFalse: "clean"}, + "clean" : {ReturnValueTrue: Plugin.final} + }, description="Fixing sequence with one added extraStep") + default_flow = "extra" + + name = "Sample2Plugin" + version = "0.0.1" + author = "Joel Andres Granados" + + def __init__(self, *args, **kwargs): + Plugin.__init__(self, *args, **kwargs) + + def prepare(self): + self._result=ReturnValueTrue + + def clean(self): + self._result=ReturnValueTrue + + def backup(self): + self._result=ReturnValueTrue + + def restore(self): + self._result=ReturnValueTrue + + def diagnose(self): + self._result=ReturnValueFalse + + def fix(self): + self._result=ReturnValueTrue + + def extraStep(self): + self._result=ReturnValueTrue + +def get_plugin(): + return Sample2Plugin diff --git a/plugins/plugin_examples/sample3Plugin/__init__.py b/plugins/plugin_examples/sample3Plugin/__init__.py new file mode 100644 index 0000000..725a577 --- /dev/null +++ b/plugins/plugin_examples/sample3Plugin/__init__.py @@ -0,0 +1,3 @@ +import sample3Plugin +def get_plugin(): + return sample3Plugin.Sample3Plugin diff --git a/plugins/plugin_examples/sample3Plugin/plugin b/plugins/plugin_examples/sample3Plugin/plugin new file mode 100755 index 0000000..ba3a5e3 --- /dev/null +++ b/plugins/plugin_examples/sample3Plugin/plugin @@ -0,0 +1,41 @@ +#!/bin/bash + +# Since this is just an example this will only have default tasks. +TASK="" + +use() +{ + echo You are using it wrong. +} + +if [ $1 ] ; then + if [ $2 ] ;then + TASK=$2 + else + use + exit 1 + fi +else + use + exit 1 +fi + + +if [ $TASK = "prepare" ]; then + echo prepare true +fi +if [ $TASK = "diagnose" ]; then + echo diagnose false +fi +if [ $TASK = "clean" ]; then + echo clean true +fi +if [ $TASK = "fix" ]; then + echo fix true +fi +if [ $TASK = "backup" ]; then + echo backup true +fi +if [ $TASK = "restore" ]; then + echo restore true +fi diff --git a/plugins/plugin_examples/sample3Plugin/sample3Plugin.py b/plugins/plugin_examples/sample3Plugin/sample3Plugin.py new file mode 100644 index 0000000..6ec95ec --- /dev/null +++ b/plugins/plugin_examples/sample3Plugin/sample3Plugin.py @@ -0,0 +1,91 @@ +# First Aid Kit - diagnostic and repair tool for Linux +# Copyright (C) 2007 Martin Sivak <msivak@redhat.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +from pyfirstaidkit.returns import * +from pyfirstaidkit.plugins import Plugin,Flow +from pyfirstaidkit import Config +import subprocess + +class Sample3Plugin(Plugin): + """This plugin will use a shell script as backend.""" + name = "Sample3Plugin" + version = "0.0.1" + author = "Joel Andres Granados" + + def __init__(self, *args, **kwargs): + Plugin.__init__(self, *args, **kwargs) + + def prepare(self): + # Prepare command line. + prepare = [Config.plugin.path+"/sample3Plugin/plugin", "--task", "prepare"] + proc = subprocess.Popen(prepare, stdout=subprocess.PIPE) + (out, err) = proc.communicate() + out = out.strip() + if out[-5:] == "false": + self._result=ReturnValueFalse + elif out[-4:] == "true": + self._result=ReturnValueTrue + + def clean(self): + clean = [Config.plugin.path+"/sample3Plugin/plugin", "--task", "clean"] + proc = subprocess.Popen(clean, stdout=subprocess.PIPE) + (out, err) = proc.communicate() + out = out.strip() + if out[-5:] == "false": + self._result=ReturnValueFalse + elif out[-4:] == "true": + self._result=ReturnValueTrue + + def backup(self): + backup = [Config.plugin.path+"/sample3Plugin/plugin", "--task", "backup"] + proc = subprocess.Popen(backup, stdout=subprocess.PIPE) + (out, err) = proc.communicate() + out = out.strip() + if out[-5:] == "false": + self._result=ReturnValueFalse + elif out[-4:] == "true": + self._result=ReturnValueTrue + + def restore(self): + restore = [Config.plugin.path+"/sample3Plugin/plugin", "--task", "restore"] + proc = subprocess.Popen(restore, stdout=subprocess.PIPE) + (out, err) = proc.communicate() + out = out.strip() + if out[-5:] == "false": + self._result=ReturnValueFalse + elif out[-4:] == "true": + self._result=ReturnValueTrue + + def diagnose(self): + diagnose = [Config.plugin.path+"/sample3Plugin/plugin", "--task", "diagnose"] + proc = subprocess.Popen(diagnose, stdout=subprocess.PIPE) + (out, err) = proc.communicate() + out = out.strip() + if out[-5:] == "false": + self._result=ReturnValueFalse + elif out[-4:] == "true": + self._result=ReturnValueTrue + + def fix(self): + fix = [Config.plugin.path+"/sample3Plugin/plugin", "--task", "fix"] + proc = subprocess.Popen(fix, stdout=subprocess.PIPE) + (out, err) = proc.communicate() + out = out.strip() + if out[-5:] == "false": + self._result=ReturnValueFalse + elif out[-4:] == "true": + self._result=ReturnValueTrue |
