summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorDevan Goodwin <dgoodwin@dangerouslyinc.com>2007-10-02 21:42:47 -0300
committerJames Bowes <jbowes@redhat.com>2007-10-02 21:33:49 -0400
commit1ce955ec36f775d8fde2cb9d7943178e8b9d60da (patch)
tree4c69d218fde87091d4e5d1f3138a435b9164dbf4 /modules
parent3c13a4f30f247f4aa75c02c65e6bb6e575e30d01 (diff)
downloadthird_party-func-1ce955ec36f775d8fde2cb9d7943178e8b9d60da.tar.gz
third_party-func-1ce955ec36f775d8fde2cb9d7943178e8b9d60da.tar.xz
third_party-func-1ce955ec36f775d8fde2cb9d7943178e8b9d60da.zip
Moved code under the func namespace.
Previously we had overlord, minion, modules, and func all at the root of the source tree. After install these would all be shuffled below func. Relocated them in the source tree to reflect this.
Diffstat (limited to 'modules')
-rwxr-xr-xmodules/Makefile19
-rw-r--r--modules/__init__.py0
-rw-r--r--modules/command.py40
-rw-r--r--modules/copyfile.py115
-rwxr-xr-xmodules/func_module.py67
-rwxr-xr-xmodules/hardware.py133
-rwxr-xr-xmodules/process.py79
-rwxr-xr-xmodules/reboot.py29
-rwxr-xr-xmodules/service.py59
-rwxr-xr-xmodules/smart.py56
-rwxr-xr-xmodules/test.py19
-rwxr-xr-xmodules/virt.py274
-rw-r--r--modules/yum.py48
13 files changed, 0 insertions, 938 deletions
diff --git a/modules/Makefile b/modules/Makefile
deleted file mode 100755
index 86a3db8..0000000
--- a/modules/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-PYFILES = $(wildcard *.py)
-
-PYCHECKER = /usr/bin/pychecker
-PYFLAKES = /usr/bin/pyflakes
-
-clean::
- @rm -fv *.pyc *~ .*~ *.pyo
- @find . -name .\#\* -exec rm -fv {} \;
- @rm -fv *.rpm
-
-
-pychecker::
- @$(PYCHECKER) $(PYFILES) || exit 0
-
-pyflakes::
- @$(PYFLAKES) $(PYFILES) || exit 0
-
diff --git a/modules/__init__.py b/modules/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/modules/__init__.py
+++ /dev/null
diff --git a/modules/command.py b/modules/command.py
deleted file mode 100644
index 5dc0292..0000000
--- a/modules/command.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2007, Red Hat, Inc
-# James Bowes <jbowes@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.
-
-"""
-Abitrary command execution module for func.
-"""
-
-from modules import func_module
-
-import sub_process
-
-class Command(func_module.FuncModule):
-
- def __init__(self):
- self.methods = {
- "run" : self.run
- }
- func_module.FuncModule.__init__(self)
-
- def run(self, command):
- """
- Runs a command, returning the return code, stdout, and stderr as a tuple.
- NOT FOR USE WITH INTERACTIVE COMMANDS.
- """
-
- cmdref = sub_process.Popen(command.split(),stdout=sub_process.PIPE,stderr=sub_process.PIPE, shell=False)
- data = cmdref.communicate()
- return (cmdref.returncode, data[0], data[1])
-
-methods = Command()
-register_rpc = methods.register_rpc
-
-
diff --git a/modules/copyfile.py b/modules/copyfile.py
deleted file mode 100644
index 58b5ea4..0000000
--- a/modules/copyfile.py
+++ /dev/null
@@ -1,115 +0,0 @@
-# Copyright 2007, Red Hat, Inc
-# seth vidal
-#
-# 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 sha
-import os
-import time
-import shutil
-
-from modules import func_module
-
-
-
-
-class CopyFile(func_module.FuncModule):
-
- def __init__(self):
- self.methods = {
- "copyfile" : self.copyfile,
- "checksum" : self.checksum
- }
- func_module.FuncModule.__init__(self)
-
- def checksum(self, thing):
-
- CHUNK=2**16
- thissum = sha.new()
- if os.path.exists(thing):
- fo = open(thing, 'r', CHUNK)
- chunk = fo.read
- while chunk:
- chunk = fo.read(CHUNK)
- thissum.update(chunk)
- fo.close()
- del fo
- else:
- # assuming it's a string of some kind
- thissum.update(thing)
-
- return thissum.hexdigest()
-
-
- def copyfile(self, filepath, filebuf, mode=0644, uid=0, gid=0, force=None):
- # -1 = problem file was not copied
- # 1 = file was copied
- # 0 = file was not copied b/c file is unchanged
-
-
- # we should probably verify mode,uid,gid are valid as well
-
- dirpath = os.path.dirname(filepath)
- basepath = os.path.basename(filepath)
- if not os.path.exists(dirpath):
- os.makedirs(dirpath)
-
- remote_sum = self.checksum(filebuf)
- local_sum = 0
- if os.path.exists(filepath):
- local_sum = self.checksum(filepath)
-
- if remote_sum != local_sum or force is not None:
- # back up the localone
- if os.path.exists(filepath):
- if not self._backuplocal(filepath):
- return -1
-
- # do the new write
- try:
- fo = open(filepath, 'w')
- fo.write(filebuf)
- fo.close()
- del fo
- except (IOError, OSError), e:
- # XXX logger output here
- return -1
- else:
- return 0
-
- # hmm, need to figure out proper exceptions -akl
- try:
- # we could intify the mode here if it's a string
- os.chmod(filepath, mode)
- os.chown(filepath, uid, gid)
- except (IOError, OSError), e:
- return -1
-
- return 1
-
- def _backuplocal(self, fn):
- """
- make a date-marked backup of the specified file,
- return True or False on success or failure
- """
- # backups named basename-YYYY-MM-DD@HH:MM~
- ext = time.strftime("%Y-%m-%d@%H:%M~", time.localtime(time.time()))
- backupdest = '%s.%s' % (fn, ext)
-
- try:
- shutil.copy2(fn, backupdest)
- except shutil.Error, e:
- #XXX logger output here
- return False
- return True
-
-
-
-methods = CopyFile()
-register_rpc = methods.register_rpc
diff --git a/modules/func_module.py b/modules/func_module.py
deleted file mode 100755
index 32a235d..0000000
--- a/modules/func_module.py
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/python
-
-##
-## 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.
-##
-
-
-from func import logger
-from func.config import read_config
-from func.commonconfig import FuncdConfig
-
-
-class FuncModule(object):
-
- # the version is meant to
- version = "0.0.0"
- api_version = "0.0.0"
- description = "No Description provided"
-
- def __init__(self):
-
- config_file = '/etc/func/minion.conf'
- self.config = read_config(config_file, FuncdConfig)
- self.__init_log()
- self.__base_methods = {
- # __'s so we don't clobber useful names
- "module_version" : self.__module_version,
- "module_api_version" : self.__module_api_version,
- "module_description" : self.__module_description,
- "list_methods" : self.__list_methods
- }
-
- def __init_log(self):
- log = logger.Logger()
- self.logger = log.logger
-
- def register_rpc(self, handlers, module_name):
- # add the internal methods, note that this means they
- # can get clobbbered by subclass versions
- for meth in self.__base_methods:
- handlers["%s.%s" % (module_name, meth)] = self.__base_methods[meth]
- for meth in self.methods:
- handlers["%s.%s" % (module_name,meth)] = self.methods[meth]
-
- def __list_methods(self):
- return self.methods.keys() + self.__base_methods.keys()
-
- def __module_version(self):
- return self.version
-
- def __module_api_version(self):
- return self.api_version
-
- def __module_description(self):
- return self.description
-
-
-methods = FuncModule()
-register_rpc = methods.register_rpc
diff --git a/modules/hardware.py b/modules/hardware.py
deleted file mode 100755
index e2455d1..0000000
--- a/modules/hardware.py
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/usr/bin/python
-
-##
-## Hardware profiler plugin
-## requires the "smolt" client package be installed
-## but also relies on lspci for some things
-##
-## Copyright 2007, Red Hat, Inc
-## Michael DeHaan <mdehaan@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.
-##
-
-
-# other modules
-import sys
-
-# our modules
-import sub_process
-from modules import func_module
-
-# =================================
-
-class HardwareModule(func_module.FuncModule):
- def __init__(self):
- self.methods = {
- "info" : self.info,
- "hal_info" : self.hal_info
- }
- func_module.FuncModule.__init__(self)
-
- def hal_info(self):
- """
- Returns the output of lshal, but split up into seperate devices
- for easier parsing. Each device is a entry in the return hash.
- """
-
- cmd = sub_process.Popen(["/usr/bin/lshal"],shell=False,stdout=sub_process.PIPE)
- data = cmd.communicate()[0]
-
- data = data.split("\n")
-
- results = {}
- current = ""
- label = data[0]
- for d in data:
- if d == '':
- results[label] = current
- current = ""
- label = ""
- else:
- if label == "":
- label = d
- current = current + d
-
- return results
-
-
- def info(self,with_devices=True):
- """
- Returns a struct of hardware information. By default, this pulls down
- all of the devices. If you don't care about them, set with_devices to
- False.
- """
- return hw_info(with_devices)
-
-# =================================
-
-def hw_info(with_devices=True):
-
- # this may fail if smolt is not installed. That's ok. hal_info will
- # still work.
-
- # hack: smolt is not installed in site-packages
- sys.path.append("/usr/share/smolt/client")
- import smolt
-
- hardware = smolt.Hardware()
- host = hardware.host
-
- # NOTE: casting is needed because these are DBusStrings, not real strings
- data = {
- 'os' : str(host.os),
- 'defaultRunlevel' : str(host.defaultRunlevel),
- 'bogomips' : str(host.bogomips),
- 'cpuVendor' : str(host.cpuVendor),
- 'cpuModel' : str(host.cpuModel),
- 'numCpus' : str(host.numCpus),
- 'cpuSpeed' : str(host.cpuSpeed),
- 'systemMemory' : str(host.systemMemory),
- 'systemSwap' : str(host.systemSwap),
- 'kernelVersion' : str(host.kernelVersion),
- 'language' : str(host.language),
- 'platform' : str(host.platform),
- 'systemVendor' : str(host.systemVendor),
- 'systemModel' : str(host.systemModel),
- 'formfactor' : str(host.formfactor),
- 'selinux_enabled' : str(host.selinux_enabled),
- 'selinux_enforce' : str(host.selinux_enforce)
- }
-
- # if no hardware info requested, just return the above bits
- if not with_devices:
- return data
-
- collection = data["devices"] = []
-
- for item in hardware.deviceIter():
-
- (VendorID,DeviceID,SubsysVendorID,SubsysDeviceID,Bus,Driver,Type,Description) = item
-
- collection.append({
- "VendorID" : str(VendorID),
- "DeviceID" : str(DeviceID),
- "SubsysVendorID" : str(SubsysVendorID),
- "Bus" : str(Bus),
- "Driver" : str(Driver),
- "Type" : str(Type),
- "Description" : str(Description)
- })
-
- return data
-
-methods = HardwareModule()
-register_rpc = methods.register_rpc
-
-
-
diff --git a/modules/process.py b/modules/process.py
deleted file mode 100755
index 94a0240..0000000
--- a/modules/process.py
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/usr/bin/python
-
-##
-## Process lister (control TBA)
-##
-## Copyright 2007, Red Hat, Inc
-## Michael DeHaan <mdehaan@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.
-##
-
-# other modules
-import sub_process
-import codes
-
-# our modules
-from modules import func_module
-
-# =================================
-
-class ProcessModule(func_module.FuncModule):
- def __init__(self):
- self.methods = {
- "info" : self.info,
- "kill" : self.kill,
- "pkill" : self.pkill
- }
- func_module.FuncModule.__init__(self)
-
- def info(self,flags="-auxh"):
- """
- Returns a struct of hardware information. By default, this pulls down
- all of the devices. If you don't care about them, set with_devices to
- False.
- """
-
- flags.replace(";","") # prevent stupidity
-
-
- #FIXME: we need to swallow stdout/stderr as well, right now it spews to the console
- cmd = sub_process.Popen(["/bin/ps", flags] ,executable="/bin/ps", stdout=sub_process.PIPE,shell=False)
- data = cmd.communicate()[0]
-
- results = []
-
- for x in data.split("\n"):
- tokens = x.split()
- results.append(tokens)
-
- return results
-
-
- def kill(self,pid,signal="TERM"):
- if pid == "0":
- raise codes.FuncException("Killing pid group 0 not permitted")
- if signal == "":
- # this is default /bin/kill behaviour, it claims, but enfore it anyway
- signal = "-TERM"
- if signal[0] != "-":
- signal = "-%s" % signal
- rc = sub_process.call(["/bin/kill",signal, pid], executable="/bin/kill", shell=False)
- print rc
- return rc
-
- def pkill(self,name,level=""):
- # example killall("thunderbird","-9")
- rc = sub_process.call(["/usr/bin/pkill", name, level], executable="/usr/bin/pkill", shell=False)
- return rc
-
-methods = ProcessModule()
-register_rpc = methods.register_rpc
-
-
-
diff --git a/modules/reboot.py b/modules/reboot.py
deleted file mode 100755
index 8772b8f..0000000
--- a/modules/reboot.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2007, Red Hat, Inc
-# James Bowes <jbowes@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 modules import func_module
-
-import sub_process
-
-class Reboot(func_module.FuncModule):
-
- def __init__(self):
- self.methods = {
- "reboot" : self.reboot
- }
- func_module.FuncModule.__init__(self)
-
- def reboot(self, when='now', message=''):
- return sub_process.call(["/sbin/shutdown", '-r', when, message])
-
-
-methods = Reboot()
-register_rpc = methods.register_rpc
diff --git a/modules/service.py b/modules/service.py
deleted file mode 100755
index 433d70b..0000000
--- a/modules/service.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/python
-
-## func
-##
-## Copyright 2007, Red Hat, Inc
-## Michael DeHaan <mdehaan@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.
-##
-##
-
-import codes
-from modules import func_module
-
-import sub_process
-import os
-
-class Service(func_module.FuncModule):
-
- def __init__(self):
- self.methods = {
- "start" : self.start,
- "stop" : self.stop,
- "restart" : self.restart,
- "reload" : self.reload,
- "status" : self.status
- }
- func_module.FuncModule.__init__(self)
-
- def __command(self, service_name, command):
-
- filename = os.path.join("/etc/rc.d/init.d/",service_name)
- if os.path.exists(filename):
- return sub_process.call(["/sbin/service", service_name, command])
- else:
- raise codes.FuncException("Service not installed: %s" % service_name)
-
- def start(self, service_name):
- return self.__command(service_name, "start")
-
- def stop(self, service_name):
- return self.__command(service_name, "stop")
-
- def restart(self, service_name):
- return self.__command(service_name, "restart")
-
- def reload(self, service_name):
- return self.__command(service_name, "reload")
-
- def status(self, service_name):
- return self.__command(service_name, "status")
-
-methods = Service()
-register_rpc = methods.register_rpc
diff --git a/modules/smart.py b/modules/smart.py
deleted file mode 100755
index 0a7be47..0000000
--- a/modules/smart.py
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/python
-
-##
-## Grabs status from SMART to see if your hard drives are ok
-## Returns in the format of (return code, [line1, line2, line3,...])
-##
-## Copyright 2007, Red Hat, Inc
-## Michael DeHaan <mdehaan@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.
-##
-
-# other modules
-import sub_process
-
-# our modules
-from modules import func_module
-
-# =================================
-
-class SmartModule(func_module.FuncModule):
- def __init__(self):
- self.methods = {
- "info" : self.info,
- }
- func_module.FuncModule.__init__(self)
-
- def info(self,flags="-q onecheck"):
- """
- Returns a struct of hardware information. By default, this pulls down
- all of the devices. If you don't care about them, set with_devices to
- False.
- """
-
- flags.replace(";","") # prevent stupidity
-
- cmd = sub_process.Popen("/usr/sbin/smartd %s" % flags,stdout=sub_process.PIPE,shell=True)
- data = cmd.communicate()[0]
-
- results = []
-
- for x in data.split("\n"):
- results.append(x)
-
- return (cmd.returncode, results)
-
-methods = SmartModule()
-register_rpc = methods.register_rpc
-
-
-
diff --git a/modules/test.py b/modules/test.py
deleted file mode 100755
index 55265a3..0000000
--- a/modules/test.py
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/python
-
-from modules import func_module
-
-class Test(func_module.FuncModule):
- version = "11.11.11"
- api_version = "0.0.1"
- description = "Just a very simple example module"
- def __init__(self):
- self.methods = {
- "add": self.add
- }
- func_module.FuncModule.__init__(self)
-
- def add(self, numb1, numb2):
- return numb1 + numb2
-
-methods = Test()
-register_rpc = methods.register_rpc
diff --git a/modules/virt.py b/modules/virt.py
deleted file mode 100755
index 18ad718..0000000
--- a/modules/virt.py
+++ /dev/null
@@ -1,274 +0,0 @@
-#!/usr/bin/python
-
-"""
-Virt management features
-
-Copyright 2007, Red Hat, Inc
-Michael DeHaan <mdehaan@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.
-"""
-
-# warning: virt management is rather complicated
-# to see a simple example of func, look at the
-# service control module. API docs on how
-# to use this to come.
-
-# other modules
-import os
-import sub_process
-import libvirt
-
-# our modules
-import codes
-import func_module
-
-VIRT_STATE_NAME_MAP = {
- 0 : "running",
- 1 : "running",
- 2 : "running",
- 3 : "paused",
- 4 : "shutdown",
- 5 : "shutdown",
- 6 : "crashed"
-}
-
-class FuncLibvirtConnection(object):
-
- def __init__(self):
-
-
- cmd = sub_process.Popen("uname -r", shell=True, stdout=sub_process.PIPE)
- output = cmd.communicate()[0]
-
- if output.find("xen") != -1:
- conn = libvirt.open(None)
- else:
- conn = libvirt.open("qemu:///system")
-
- if not conn:
- raise codes.FuncException("hypervisor connection failure")
-
- self.conn = conn
-
- def find_vm(self, vmid):
- """
- Extra bonus feature: vmid = -1 returns a list of everything
- """
- conn = self.conn
-
- vms = []
-
- # this block of code borrowed from virt-manager:
- # get working domain's name
- ids = conn.listDomainsID();
- for id in ids:
- vm = conn.lookupByID(id)
- vms.append(vm)
- # get defined domain
- names = conn.listDefinedDomains()
- for name in names:
- vm = conn.lookupByName(name)
- vms.append(vm)
-
- if vmid == -1:
- return vms
-
- for vm in vms:
- if vm.name() == vmid:
- return vm
-
- raise codes.FuncException("virtual machine %s not found" % needle)
-
- def shutdown(self, vmid):
- return self.find_vm(vmid).shutdown()
-
- def pause(self, vmid):
- return suspend(self.conn,vmid)
-
- def unpause(self, vmid):
- return resume(self.conn,vmid)
-
- def suspend(self, vmid):
- return self.find_vm(vmid).suspend()
-
- def resume(self, vmid):
- return self.find_vm(vmid).resume()
-
- def create(self, vmid):
- return self.find_vm(vmid).create()
-
- def destroy(self, vmid):
- return self.find_vm(vmid).destroy()
-
- def undefine(self, vmid):
- return self.find_vm(vmid).undefine()
-
- def get_status2(self, vm):
- state = vm.info()[0]
- # print "DEBUG: state: %s" % state
- return VIRT_STATE_NAME_MAP.get(state,"unknown")
-
- def get_status(self, vmid):
- state = self.find_vm(vmid).info()[0]
- return VIRT_STATE_NAME_MAP.get(state,"unknown")
-
-
-
-class Virt(func_module.FuncModule):
-
-
- def __init__(self):
-
- """
- Constructor. Register methods and make them available.
- """
-
- self.methods = {
- "install" : self.install,
- "shutdown" : self.shutdown,
- "destroy" : self.destroy,
- "start" : self.create,
- "pause" : self.pause,
- "unpause" : self.unpause,
- "delete" : self.undefine,
- "status" : self.get_status,
- "list_vms" : self.list_vms,
- }
-
- func_module.FuncModule.__init__(self)
-
- def get_conn(self):
- self.conn = FuncLibvirtConnection()
- return self.conn
-
- def list_vms(self):
- self.conn = self.get_conn()
- vms = self.conn.find_vm(-1)
- results = []
- for x in vms:
- try:
- results.append(x.name())
- except:
- pass
- return results
-
- def install(self, server_name, target_name, system=False):
-
- """
- Install a new virt system by way of a named cobbler profile.
- """
-
- # Example:
- # install("bootserver.example.org", "fc7webserver", True)
-
- conn = self.get_conn()
-
- if conn is None:
- raise codes.FuncException("no connection")
-
- if not os.path.exists("/usr/bin/koan"):
- raise codes.FuncException("no /usr/bin/koan")
- target = "profile"
- if system:
- target = "system"
-
- # TODO: FUTURE: set --virt-path in cobbler or here
- koan_args = [
- "/usr/bin/koan",
- "--virt",
- "--virt-graphics", # enable VNC
- "--%s=%s" % (target, target_name),
- "--server=%s" % server_name
- ]
-
- rc = sub_process.call(koan_args,shell=False)
- if rc == 0:
- return 0
- else:
- raise codes.FuncException("koan returned %d" % rc)
-
-
- def shutdown(self, vmid):
- """
- Make the machine with the given vmid stop running.
- Whatever that takes.
- """
- self.get_conn()
- self.conn.shutdown(vmid)
- return 0
-
-
- def pause(self, vmid):
-
- """
- Pause the machine with the given vmid.
- """
- self.get_conn()
- self.conn.suspend(vmid)
- return 0
-
-
- def unpause(self, vmid):
-
- """
- Unpause the machine with the given vmid.
- """
-
- self.get_conn()
- self.conn.resume(vmid)
- return 0
-
-
- def create(self, vmid):
-
- """
- Start the machine via the given mac address.
- """
- self.get_conn()
- self.conn.create(vmid)
- return 0
-
-
- def destroy(self, vmid):
-
- """
- Pull the virtual power from the virtual domain, giving it virtually no
- time to virtually shut down.
- """
- self.get_conn()
- self.conn.destroy(vmid)
- return 0
-
-
- def undefine(self, vmid):
-
- """
- Stop a domain, and then wipe it from the face of the earth.
- by deleting the disk image and it's configuration file.
- """
-
- self.get_conn()
- self.conn.undefine(vmid)
- return 0
-
-
- def get_status(self, vmid):
-
- """
- Return a state suitable for server consumption. Aka, codes.py values, not XM output.
- """
-
- self.get_conn()
- return self.conn.get_status(vmid)
-
-
-methods = Virt()
-register_rpc = methods.register_rpc
-
-
diff --git a/modules/yum.py b/modules/yum.py
deleted file mode 100644
index 6600d47..0000000
--- a/modules/yum.py
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 2007, Red Hat, Inc
-# James Bowes <jbowes@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 modules import func_module
-
-import yum
-
-# XXX Use internal yum callback or write a useful one.
-class DummyCallback(object):
-
- def event(self, state, data=None):
- pass
-
-class Yum(func_module.FuncModule):
-
- def __init__(self):
- self.methods = {
- "update" : self.update
- }
- func_module.FuncModule.__init__(self)
-
- def update(self):
- # XXX support updating specific rpms
- ayum = yum.YumBase()
- ayum.doGenericSetup()
- ayum.doRepoSetup()
- try:
- ayum.doLock()
- ayum.update()
- ayum.buildTransaction()
- ayum.processTransaction(
- callback=DummyCallback())
- finally:
- ayum.closeRpmDB()
- ayum.doUnlock()
- return True
-
-
-methods = Yum()
-register_rpc = methods.register_rpc