summaryrefslogtreecommitdiffstats
path: root/func
diff options
context:
space:
mode:
authorAdrian Likins <alikins@grimlock.devel.redhat.com>2007-10-12 13:29:54 -0400
committerAdrian Likins <alikins@grimlock.devel.redhat.com>2007-10-12 13:29:54 -0400
commit7f47f741e0c1086337b3ef94d01a0028260f74ba (patch)
tree41e40f6547bc25d854d8f550a0c982875403bcc4 /func
parente346007f79fc81c3421964128eb3683e7301a992 (diff)
downloadthird_party-func-7f47f741e0c1086337b3ef94d01a0028260f74ba.tar.gz
third_party-func-7f47f741e0c1086337b3ef94d01a0028260f74ba.tar.xz
third_party-func-7f47f741e0c1086337b3ef94d01a0028260f74ba.zip
add "copyfile" commandline module that knows how to get the local
file, it's perms, and call the remote end correctly add copyright blurb to other modules
Diffstat (limited to 'func')
-rw-r--r--func/overlord/cmd_modules/call.py15
-rw-r--r--func/overlord/cmd_modules/copyfile.py79
-rw-r--r--func/overlord/cmd_modules/show.py15
3 files changed, 109 insertions, 0 deletions
diff --git a/func/overlord/cmd_modules/call.py b/func/overlord/cmd_modules/call.py
index 0f69713..48a6598 100644
--- a/func/overlord/cmd_modules/call.py
+++ b/func/overlord/cmd_modules/call.py
@@ -1,5 +1,20 @@
#!/usr/bin/python
+"""
+call func method invoker
+
+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 pprint
import xmlrpclib
diff --git a/func/overlord/cmd_modules/copyfile.py b/func/overlord/cmd_modules/copyfile.py
new file mode 100644
index 0000000..354ab8f
--- /dev/null
+++ b/func/overlord/cmd_modules/copyfile.py
@@ -0,0 +1,79 @@
+#!/usr/bin/python
+
+"""
+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 command
+from func.overlord import client
+
+DEFAULT_PORT = 51234
+
+class CopyFile(client.command.Command):
+ name = "copyfile"
+ useage = "copy a file to a client"
+
+
+ def addOptions(self):
+ self.parser.add_option("-f", "--file", dest="filename",
+ action="store")
+ self.parser.add_option("", "--remotepath", dest="rpath",
+ action="store")
+ self.parser.add_option("", "--force", dest="force",
+ action="store_true")
+ self.parser.add_option("-v", "--verbose", dest="verbose",
+ action="store_true")
+ self.parser.add_option("-p", "--port", dest="port")
+
+ def handleOptions(self, options):
+ self.port = DEFAULT_PORT
+ if self.options.port:
+ self.port = self.options.port
+
+ def parse(self, argv):
+ self.argv = argv
+ return command.Command.parse(self,argv)
+
+ def do(self, args):
+ self.server_spec = self.parentCommand.server_spec
+
+ client_obj = client.Client(self.server_spec,
+ port=self.port,
+ interactive=False,
+ verbose=self.options.verbose,
+ config=self.config)
+
+
+ try:
+ fb = open(self.options.filename, "r").read()
+ except IOError, e:
+ print "Unable to open file: %s: %s" % (self.options.filename, e)
+ return
+
+ st = os.stat(self.options.filename)
+ mode = stat.S_IMODE(st.st_mode)
+ uid = st.st_uid
+ gid = st.st_gid
+
+
+
+ results = client_obj.run("copyfile", "copyfile", [self.options.rpath, fb,
+ mode, uid, gid])
+
diff --git a/func/overlord/cmd_modules/show.py b/func/overlord/cmd_modules/show.py
index 64bf726..22bac95 100644
--- a/func/overlord/cmd_modules/show.py
+++ b/func/overlord/cmd_modules/show.py
@@ -1,5 +1,20 @@
#!/usr/bin/python
+"""
+show introspection commandline
+
+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 pprint
import xmlrpclib