summaryrefslogtreecommitdiffstats
path: root/func/overlord/cmd_modules/copyfile.py
blob: 711c4dd4e431d1a1ee57e12282b86a438417cec0 (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
"""
copyfile command line

Copyright 2007, Red Hat, Inc
see AUTHORS

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.
"""


import optparse
import os
import pprint
import stat
import xmlrpclib

from func.overlord import base_command
from func.overlord import client


class CopyFile(base_command.BaseCommand):
    name = "copyfile"
    usage = "copy a file to a client"
    summary = "copy a file to a minion"


    def addOptions(self):
        self.parser.add_option("-f", "--file", dest="filename",
                               action="store")
        self.parser.add_option("", "--remotepath", dest="remotepath",
                                action="store")
        self.parser.add_option("", "--force", dest="force",
                               action="store_true")
        self.parser.add_option("-v", "--verbose", dest="verbose",
                               action="store_true")

    def handleOptions(self, options):
        self.verbose = self.options.verbose

    def do(self, args):
        if not self.options.filename or not self.options.remotepath:
            self.outputUsage()
            return
        
        self.server_spec = self.parentCommand.server_spec
        self.getOverlord()

        return self.overlord_obj.local.copyfile.send(self.options.filename, self.options.remotepath)