summaryrefslogtreecommitdiffstats
path: root/func/minion/modules/netapp/options.py
blob: f1e28edd261155a56aa5562611986e739fabd91e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
##
## NetApp Filer 'options' Module
##
## Copyright 2008, Red Hat, Inc
## John Eckersberg <jeckersb@redhat.com>
##
## This software may be freely redistributed under the terms of the GNU
## general public license.
##
## 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 func.minion.modules import func_module
from func.minion.modules.netapp.common import *

class Options(func_module.FuncModule):

    # Update these if need be.
    version = "0.0.1"
    api_version = "0.0.1"
    description = "Interface to the 'options' command"

    def get(self, filer, filter=''):
        """
        TODO: Document me ...
        """
        cmd_opts = ['options', filter]
        output = ssh(filer, cmd_opts)
        if 'No such option' in output:
            return output.strip()

        result = {}
        for line in output.split('\n'):
            if not line: continue
            tokens = line.split()
            try:
                result[tokens[0]] = tokens[1]
            except:
                result[tokens[0]] = ''

        return result

    def set(self, filer, option, value):
        """
        TODO: Document me ...
        """
        cmd_opts = ['options', option, value]
        output = ssh(filer, cmd_opts)
        # should return no output (maybe a space or newline)
        return check_output("^\s*$", output)