playpen/README | 3
playpen/Telemetry/.project | 17
playpen/Telemetry/.pydevproject | 8
playpen/Telemetry/src/MANIFEST.in | 6
playpen/Telemetry/src/README | 6
playpen/Telemetry/src/sample_reports/config/affectedSystems.conf | 26 -
playpen/Telemetry/src/sample_reports/config/relevantErrata.conf | 25 -
playpen/Telemetry/src/sample_reports/config/systemDetails.conf | 19
playpen/Telemetry/src/sample_reports/config/systemsByPackage.conf | 27 -
playpen/Telemetry/src/sample_reports/scripts/affectedSystemsReport.py | 103 ----
playpen/Telemetry/src/sample_reports/scripts/relevantErrataReport.py | 108 ----
playpen/Telemetry/src/sample_reports/scripts/systemDetailsReport.py | 140 -----
playpen/Telemetry/src/sample_reports/scripts/systemsByPackageReport.py | 109 ----
playpen/Telemetry/src/sample_reports/templates/AffectedSystems.txt | 27 -
playpen/Telemetry/src/sample_reports/templates/RelevantErrata.csv | 8
playpen/Telemetry/src/sample_reports/templates/RelevantErrata.html | 37 -
playpen/Telemetry/src/sample_reports/templates/RelevantErrata.txt | 24
playpen/Telemetry/src/sample_reports/templates/SystemDetails.txt | 37 -
playpen/Telemetry/src/sample_reports/templates/SystemsByPackage.txt | 23
playpen/Telemetry/src/setup.cfg | 9
playpen/Telemetry/src/setup.py | 30 -
playpen/Telemetry/src/sudoers.telemetry | 5
playpen/Telemetry/src/telemetry | 7
playpen/Telemetry/src/telemetry.conf | 18
playpen/Telemetry/src/telemetry.py | 244 ----------
playpen/Telemetry/src/telemetry_web/manage.py | 11
playpen/Telemetry/src/telemetry_web/settings.py | 77 ---
playpen/Telemetry/src/telemetry_web/telemetry.conf | 9
playpen/Telemetry/src/telemetry_web/templates/index.html | 6
playpen/Telemetry/src/telemetry_web/templates/list_reports.html | 13
playpen/Telemetry/src/telemetry_web/templates/report_details.html | 64 --
playpen/Telemetry/src/telemetry_web/templates/report_results.html | 21
playpen/Telemetry/src/telemetry_web/urls.py | 9
playpen/Telemetry/src/telemetry_web/views.py | 122 -----
playpen/spacewalk-repo-sync/reposync.py | 30 -
playpen/spacewalk-repo-sync/spacewalk-repo-sync | 210 --------
playpen/spacewalk-repo-sync/test.py | 61 --
playpen/spacewalk-repo-sync/upload.py | 25 -
38 files changed, 1724 deletions(-)
New commits:
commit 0634639b583f01b6cc307ad1a901cf5fdc191403
Author: Jan Pazdziora <jpazdziora(a)redhat.com>
Date: Wed Jun 1 09:30:42 2011 +0200
The playpen/ content is dead, removing.
diff --git a/playpen/README b/playpen/README
deleted file mode 100644
index 1b6100b..0000000
--- a/playpen/README
+++ /dev/null
@@ -1,3 +0,0 @@
-directory to hold prototype projects.
-
-none of this stuff gets shipped with spacewalk RPMs.
diff --git a/playpen/Telemetry/.project b/playpen/Telemetry/.project
deleted file mode 100644
index 649a75b..0000000
--- a/playpen/Telemetry/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>Telemetry</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.python.pydev.PyDevBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.python.pydev.pythonNature</nature>
- </natures>
-</projectDescription>
diff --git a/playpen/Telemetry/.pydevproject b/playpen/Telemetry/.pydevproject
deleted file mode 100644
index 801c325..0000000
--- a/playpen/Telemetry/.pydevproject
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0"?>
-<?eclipse-pydev version="1.0"?>
-<pydev_project>
- <pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
- <path>/Telemetry/src</path>
- </pydev_pathproperty>
- <pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python
2.5</pydev_property>
-</pydev_project>
\ No newline at end of file
diff --git a/playpen/Telemetry/src/MANIFEST.in b/playpen/Telemetry/src/MANIFEST.in
deleted file mode 100644
index 6b60075..0000000
--- a/playpen/Telemetry/src/MANIFEST.in
+++ /dev/null
@@ -1,6 +0,0 @@
-include README
-include telemetry
-include telemetry.conf
-include sudoers.telemetry
-recursive-include sample_reports *
-recursive-include telemetry_web *
diff --git a/playpen/Telemetry/src/README b/playpen/Telemetry/src/README
deleted file mode 100644
index 5fa8ab3..0000000
--- a/playpen/Telemetry/src/README
+++ /dev/null
@@ -1,6 +0,0 @@
-Telemetry Requires:
-
-1. Django for webui -> Django
-2. Cheetah Templating -> python-cheetah
-3. Python Crontab -> python-crontab
-4. Yaml Parsing -> PyYAML
diff --git a/playpen/Telemetry/src/sample_reports/config/affectedSystems.conf
b/playpen/Telemetry/src/sample_reports/config/affectedSystems.conf
deleted file mode 100644
index e83b614..0000000
--- a/playpen/Telemetry/src/sample_reports/config/affectedSystems.conf
+++ /dev/null
@@ -1,26 +0,0 @@
-name: Affected Systems Report
-description: This report shows which systems are affected by the supplied Errata.
-script: affectedSystemsReport.py
-
-satellites:
--
http://rlx-1-16.rhndev.redhat.com/rpc/api
--
http://rlx-1-16.rhndev.redhat.com/rpc/api
-
-api_versions:
-- 5.1.0 Java
-- 5.1.1 Java
-
-criteria:
-- name: Errata
- label: errata
- type: csv
- cols: 75
- rows: 10
- required: yes
-
-aggregate: yes
-
-templates:
- txt: AffectedSystems.txt
-
-prefix: AffectedSystems
\ No newline at end of file
diff --git a/playpen/Telemetry/src/sample_reports/config/relevantErrata.conf
b/playpen/Telemetry/src/sample_reports/config/relevantErrata.conf
deleted file mode 100644
index b4883d7..0000000
--- a/playpen/Telemetry/src/sample_reports/config/relevantErrata.conf
+++ /dev/null
@@ -1,25 +0,0 @@
-name: Relevant Errata Report (by System Group by System)
-description: This report shows relevant errata by system group by system.
-script: relevantErrataReport.py
-
-satellites:
--
http://rlx-1-16.rhndev.redhat.com/rpc/api
--
http://rlx-1-16.rhndev.redhat.com/rpc/api
-
-api_versions:
-- 5.1.0 Java
-- 5.1.1 Java
-
-aggregate: yes
-
-templates:
- csv: RelevantErrata.csv
- txt: RelevantErrata.txt
- html: RelevantErrata.html
-
-prefix: RelevantErrata
-
-notifications:
-- tsanders(a)redhat.com
-- toddbsanders(a)gmail.com
-
diff --git a/playpen/Telemetry/src/sample_reports/config/systemDetails.conf
b/playpen/Telemetry/src/sample_reports/config/systemDetails.conf
deleted file mode 100644
index 0b01bda..0000000
--- a/playpen/Telemetry/src/sample_reports/config/systemDetails.conf
+++ /dev/null
@@ -1,19 +0,0 @@
-name: System Details Report
-description: This report provides a list of systems and supporting details (entitlements,
channel subscriptions, & system groups.
-
-script: systemDetailsReport.py
-
-satellites:
--
http://rlx-1-16.rhndev.redhat.com/rpc/api
-
-api_versions:
-- 5.1.0 Java
-- 5.1.1 Java
-
-aggregate: no
-
-templates:
- txt: SystemDetails.txt
-
-prefix: SystemDetails
-
diff --git a/playpen/Telemetry/src/sample_reports/config/systemsByPackage.conf
b/playpen/Telemetry/src/sample_reports/config/systemsByPackage.conf
deleted file mode 100644
index c0b13bf..0000000
--- a/playpen/Telemetry/src/sample_reports/config/systemsByPackage.conf
+++ /dev/null
@@ -1,27 +0,0 @@
-name: Systems By Package Report
-description: This report shows systems with packages installed that match the user
supplied csv, along with the specific NVRE.
-script: systemsByPackageReport.py
-
-satellites:
--
http://rlx-1-16.rhndev.redhat.com/rpc/api
--
http://rlx-1-16.rhndev.redhat.com/rpc/api
-
-api_versions:
-- 5.1.0 Java
-- 5.1.1 Java
-
-criteria:
-- name: Packages
- label: packages
- type: csv
- cols: 75
- rows: 10
- required: yes
-
-aggregate: yes
-
-templates:
- txt: SystemsByPackage.txt
-
-prefix: SystemsByPackage
-
diff --git a/playpen/Telemetry/src/sample_reports/scripts/affectedSystemsReport.py
b/playpen/Telemetry/src/sample_reports/scripts/affectedSystemsReport.py
deleted file mode 100755
index bd02243..0000000
--- a/playpen/Telemetry/src/sample_reports/scripts/affectedSystemsReport.py
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/usr/bin/python
-
-from telemetry import Report
-import sys
-import xmlrpclib
-
-class Erratum():
- pass
-
-class System():
- pass
-
-def processData(client, key, errata):
-
- try:
-
- for erratum in errataList:
-
- print erratum
-
- e = client.errata.getDetails(key, erratum)
-
- if e:
-
- ee = Erratum()
- ee.advisoryName = erratum
- ee.type = e['type']
- ee.description = e['description']
- ee.synopsis = e['synopsis']
- ee.systems = []
-
- errata.append(ee)
-
- slist = client.errata.listAffectedSystems(key, erratum)
-
- for s in slist:
-
- system = System()
- system.id = s['id']
- system.name = s['name']
-
- ee.systems.append(system)
-
- except xmlrpclib.Fault, fault:
- print "Error in systemDetailsReport.processData():"
- print fault.faultCode
- print fault.faultString
- sys.exit(1)
-
- return errata
-
-# Main Processing
-if len(sys.argv) != 6:
- print "Usage %s <config> <type> <username> <password>
<errata>" % (sys.argv[0])
- sys.exit(1)
-
-# Arguments
-config = sys.argv[1]
-type = sys.argv[2]
-username = sys.argv[3]
-password = sys.argv[4]
-errataList = sys.argv[5].split(',')
-
-# Create Report Instance
-report = Report(config)
-
-# Get ServerProxies
-clients = report.connect()
-
-errata = []
-
-_count = 0
-
-for client in clients:
-
- # get the session key
- try:
- key = client.auth.login(username, password)
- except xmlrpclib.Fault, fault:
- print "Error in systemDetailsReport:"
- print fault.faultCode
- print fault.faultString
- sys.exit(1)
-
- if not (report.aggregate):
- errata = []
-
- systems = processData(client,key,errata)
- satellites = [report.satellites[_count]]
- vars = {'errata': errata, 'satellites': satellites}
- report.templatify(vars, type)
-
- else:
- systems = processData(client,key,errata)
-
- _count = _count + 1
-
-if (report.aggregate):
- vars = {'errata': errata, 'satellites': report.satellites}
- report.templatify(vars, type)
-
-
-
\ No newline at end of file
diff --git a/playpen/Telemetry/src/sample_reports/scripts/relevantErrataReport.py
b/playpen/Telemetry/src/sample_reports/scripts/relevantErrataReport.py
deleted file mode 100755
index fd54bb1..0000000
--- a/playpen/Telemetry/src/sample_reports/scripts/relevantErrataReport.py
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/usr/bin/python
-
-from telemetry import Report
-import sys
-import xmlrpclib
-
-class SystemGroup():
- pass
-
-class System():
- pass
-
-class Erratum():
- pass
-
-def processData(client, key, systemsGroups):
-
- try:
- # Get All SystemGroups on Satellite
- sGroups = client.systemgroup.listAllGroups(key)
-
- for sGroup in sGroups:
-
- systemGroup = SystemGroup()
- systemGroup.name = sGroup['name']
- systemGroups.append(systemGroup)
-
- systems = client.systemgroup.listSystems(key, sGroup['name'])
-
- systemGroup.systems = []
-
- for system in systems:
-
- sys = System()
- sys.profile_name = system['profile_name']
- sys.id = system['id']
- systemGroup.systems.append(sys)
-
- errata = client.system.getRelevantErrata(key, system['id'])
-
- sys.errata = []
-
- for erratum in errata:
-
- e = Erratum()
- e.advisory_name = erratum['advisory_name']
- e.advisory_type = erratum['advisory_type']
- e.advisory_summary = erratum['advisory_synopsis']
- sys.errata.append(e)
-
- except xmlrpclib.Fault, fault:
- print "Error in relevantErrataReport.processData():"
- print fault.faultCode
- print fault.faultString
- sys.exit(1)
-
- return systemGroups
-
-
-if len(sys.argv) != 5:
- print "Usage %s <config> <type> <username>
<password>" % (sys.argv[0])
- sys.exit(1)
-
-# Arguments
-config = sys.argv[1]
-type = sys.argv[2]
-username = sys.argv[3]
-password = sys.argv[4]
-
-# Create Report Instance
-report = Report(config)
-
-systemGroups = []
-
-_count = 0
-
-# Get ServerProxies
-clients = report.connect()
-
-for client in clients:
-
- # get the session key
- try:
- key = client.auth.login(username, password)
- except xmlrpclib.Fault, fault:
- print "Error in relevantErrataReport:"
- print fault.faultCode
- print fault.faultString
- sys.exit(1)
-
- if not (report.aggregate):
- systemGroups = []
-
- systemGroups = processData(client,key,systemGroups)
- satellites = [report.satellites[_count]]
- vars = {'systemGroups': systemGroups, 'satellites': satellites}
- report.templatify(vars, type)
-
- else:
- systemGroups = processData(client,key,systemGroups)
-
- _count = _count + 1
-
-if (report.aggregate):
- vars = {'systemGroups': systemGroups, 'satellites':
report.satellites}
- report.templatify(vars, type)
-
-
diff --git a/playpen/Telemetry/src/sample_reports/scripts/systemDetailsReport.py
b/playpen/Telemetry/src/sample_reports/scripts/systemDetailsReport.py
deleted file mode 100755
index 6c07f97..0000000
--- a/playpen/Telemetry/src/sample_reports/scripts/systemDetailsReport.py
+++ /dev/null
@@ -1,140 +0,0 @@
-#!/usr/bin/python
-
-from telemetry import Report
-import sys
-import xmlrpclib
-
-class System():
- pass
-
-class Entitlement():
- pass
-
-class BaseChannel():
- pass
-
-class ChildChannel():
- pass
-
-class Group():
- pass
-
-def processData(client, key, systems):
-
- try:
- syss = client.system.list_user_systems(key)
-
- for sys in syss:
-
- system = System()
- system.id = sys['id']
- system.name = sys['name']
-
- systems.append(system)
-
- entitlements = client.system.getEntitlements(key, int(sys['id']))
-
- system.entitlements = []
-
- for entitlement in entitlements:
-
- e = Entitlement()
- e.label = entitlement
-
- system.entitlements.append(e)
-
- childchannels = client.system.listSubscribedChildChannels(key,
int(sys['id']))
-
- system.childchannels = []
-
- for childchannel in childchannels:
-
- cc = ChildChannel()
- cc.id = childchannel['id']
- cc.name = childchannel['name']
- cc.label = childchannel['label']
-
- system.childchannels.append(cc)
-
- basechannel = client.system.getSubscribedBaseChannel(key,
int(sys['id']))
-
- bc = BaseChannel()
- bc.id = basechannel['id']
- bc.name = basechannel['name']
- bc.label = basechannel['label']
-
- system.basechannel = bc
-
- groups = client.system.listGroups(key, int(sys['id']))
-
- system.groups = []
-
- for group in groups:
-
- if group['subscribed']:
-
- g = Group()
- g.sgid = group['sgid']
- g.name = group['system_group_name']
-
- system.groups.append(g)
-
- except xmlrpclib.Fault, fault:
- print "Error in systemDetailsReport.processData():"
- print fault.faultCode
- print fault.faultString
- sys.exit(1)
-
- return systems
-
-# Main Processing
-if len(sys.argv) != 5:
- print "Usage %s <config> <type> <username>
<password>" % (sys.argv[0])
- sys.exit(1)
-
-# Arguments
-config = sys.argv[1]
-type = sys.argv[2]
-username = sys.argv[3]
-password = sys.argv[4]
-
-# Create Report Instance
-report = Report(config)
-
-# Get ServerProxies
-clients = report.connect()
-
-systems = []
-
-_count = 0
-
-for client in clients:
-
- # get the session key
- try:
- key = client.auth.login(username, password)
- except xmlrpclib.Fault, fault:
- print "Error in systemDetailsReport:"
- print fault.faultCode
- print fault.faultString
- sys.exit(1)
-
- if not (report.aggregate):
- systems = []
-
- systems = processData(client,key,systems)
- satellites = [report.satellites[_count]]
- vars = {'systems': systems, 'satellites': satellites}
- report.templatify(vars, type)
-
- else:
- systems = processData(client,key,systems)
-
- _count = _count + 1
-
-if (report.aggregate):
- vars = {'systems': systems, 'satellites': report.satellites}
- report.templatify(vars, type)
-
-
-
\ No newline at end of file
diff --git a/playpen/Telemetry/src/sample_reports/scripts/systemsByPackageReport.py
b/playpen/Telemetry/src/sample_reports/scripts/systemsByPackageReport.py
deleted file mode 100755
index 4bcf92f..0000000
--- a/playpen/Telemetry/src/sample_reports/scripts/systemsByPackageReport.py
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/bin/python
-
-import sys
-import xmlrpclib
-from telemetry import Report
-
-class System():
- pass
-
-class Package():
- pass
-
-def comparePkgs(system_packages, packageList):
-
- common_packages = []
-
- for pkg in packageList:
-
- for package in system_packages:
-
- if pkg == package['name']:
-
- common_packages.append(package)
-
- return common_packages
-
-def processData(client, key, systems):
-
- try:
- user_systems = client.system.listUserSystems(key)
-
- for system in user_systems:
-
- print system
-
- sys_packages = client.system.listPackages(key, int(system['id']))
-
- #returns a array of packages installed on the system that are in common with
the user provided list
- common_pkgs = comparePkgs(sys_packages, packages)
-
- if len(common_pkgs) > 0:
-
- sys = System()
- sys.id = system['id']
- sys.name = system['name']
- sys.packages = common_pkgs
- systems.append(sys)
-
-
- except xmlrpclib.Fault, fault:
- print "Error in systemDetailsReport.processData():"
- print fault.faultCode
- print fault.faultString
- sys.exit(1)
-
- return systems
-
-# Main Processing
-if len(sys.argv) != 6:
- print "Usage %s <config> <type> <username> <password>
<packagelist>" % (sys.argv[0])
- sys.exit(1)
-
-# Arguments
-config = sys.argv[1]
-type = sys.argv[2]
-username = sys.argv[3]
-password = sys.argv[4]
-packages = sys.argv[5].split(",")
-
-# Create Report Instance
-report = Report(config)
-
-# Get ServerProxies
-clients = report.connect()
-
-systems = []
-
-_count = 0
-
-for client in clients:
-
- # get the session key
- try:
- key = client.auth.login(username, password)
- except xmlrpclib.Fault, fault:
- print "Error in systemByPackageReport:"
- print fault.faultCode
- print fault.faultString
- sys.exit(1)
-
- if not (report.aggregate):
- systems = []
-
- systems = processData(client,key,systems)
- satellites = [report.satellites[_count]]
- vars = {'systems': systems, 'satellites': satellites,
'criteria': sys.argv[5]}
- report.templatify(vars, type)
-
- else:
- systems = processData(client,key,systems)
-
- _count = _count + 1
-
-if (report.aggregate):
- vars = {'systems': systems, 'satellites': report.satellites,
'criteria': sys.argv[5]}
- report.templatify(vars, type)
-
-
-
diff --git a/playpen/Telemetry/src/sample_reports/templates/AffectedSystems.txt
b/playpen/Telemetry/src/sample_reports/templates/AffectedSystems.txt
deleted file mode 100644
index 46a524f..0000000
--- a/playpen/Telemetry/src/sample_reports/templates/AffectedSystems.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#from datetime import datetime
-Affected Systems Report
-Report Date: $datetime.now().strftime("%Y-%m-%d:%H:%M:%S")
-
-Satellites:
-#for satellite in $satellites
- $satellite
-#end for
-
-*****************************************************************************************
-
-#for erratum in $errata
-Advisory Name: $erratum.advisoryName
-Advisory Type: $erratum.type
-Description: $erratum.description
-Synopsis: $erratum.synopsis
-
-******************************************************************************************
-******************************************************************************************
-Systems:
-#for system in $erratum.systems
- $system.id, $system.name
-#end for
-
-
-
-#end for
diff --git a/playpen/Telemetry/src/sample_reports/templates/RelevantErrata.csv
b/playpen/Telemetry/src/sample_reports/templates/RelevantErrata.csv
deleted file mode 100644
index 2a65276..0000000
--- a/playpen/Telemetry/src/sample_reports/templates/RelevantErrata.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-system group name, system, advisory name, advisory type, advisory synopsis
-#for sGroup in $systemGroups
-#for system in $sGroup.systems
-#for erratum in $system.errata
-$sGroup.name,$system.profile_name,$erratum.advisory_name,$erratum.advisory_type,$erratum.advisory_summary
-#end for
-#end for
-#end for
diff --git a/playpen/Telemetry/src/sample_reports/templates/RelevantErrata.html
b/playpen/Telemetry/src/sample_reports/templates/RelevantErrata.html
deleted file mode 100644
index 915b578..0000000
--- a/playpen/Telemetry/src/sample_reports/templates/RelevantErrata.html
+++ /dev/null
@@ -1,37 +0,0 @@
-#from datetime import datetime
-<html>
-<title>Relevant Errata Report -
$datetime.now().strftime("%Y-%m-%d:%H:%M:%S")</title>
-<body>
-
-
-
-
-#from datetime import datetime
-<H1>Relevant Errata Report (by System Group by System)</H1>
-<H2>Report Date:
$datetime.now().strftime("%Y-%m-%d:%H:%M:%S")</H2>
-
-Satellites:
-#for satellite in $satellites
- $satellite
-#end for
-
-#for sGroup in $systemGroups
-System Group: $sGroup.name<HR><HR>
-<Table>
-#for system in $sGroup.systems
- System: $system.profile_name<BR><BR>
-#for erratum in $system.errata
-<TR>
- <TD> $erratum.advisory_name</TD><TD>
$erratum.advisory_summary</TD>
-</TR>
-
-#end for
-</Table>
-
-#end for
-<BR><BR>
-
-#end for
-
-</body>
-</html>
diff --git a/playpen/Telemetry/src/sample_reports/templates/RelevantErrata.txt
b/playpen/Telemetry/src/sample_reports/templates/RelevantErrata.txt
deleted file mode 100644
index 02f5164..0000000
--- a/playpen/Telemetry/src/sample_reports/templates/RelevantErrata.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-#from datetime import datetime
-Relevant Errata Report (by System Group by System)
-Report Date: $datetime.now().strftime("%Y-%m-%d:%H:%M:%S")
-
-Satellites:
-#for satellite in $satellites
- $satellite
-#end for
-
-#for sGroup in $systemGroups
-System Group: $sGroup.name
-******************************************************************************************
-******************************************************************************************
-#for system in $sGroup.systems
- System: $system.profile_name
-
-#for erratum in $system.errata
- $erratum.advisory_name $erratum.advisory_summary
-
-#end for
-
-#end for
-
-#end for
diff --git a/playpen/Telemetry/src/sample_reports/templates/SystemDetails.txt
b/playpen/Telemetry/src/sample_reports/templates/SystemDetails.txt
deleted file mode 100644
index 54d2ac5..0000000
--- a/playpen/Telemetry/src/sample_reports/templates/SystemDetails.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-#from datetime import datetime
-System Details Report
-Report Date: $datetime.now().strftime("%Y-%m-%d:%H:%M:%S")
-
-Satellites:
-#for satellite in $satellites
- $satellite
-#end for
-
-#for system in $systems
-System ID: $system.id
-System Name: $system.name
-******************************************************************************************
-******************************************************************************************
-Entitlements:
-#for entitlement in $system.entitlements
- $entitlement.label
-#end for
-
-Groups:
-#for group in $system.groups
- $group.name
-#end for
-
-Base Channel:
- $system.basechannel.name, $system.basechannel.label
-
-Child Channels:
-#if len($system.childchannels) == 0
- None
-#else
-#for childchannel in $system.childchannels
- $childchannel.name, $childchannel.label
-#end for
-#end if
-
-#end for
diff --git a/playpen/Telemetry/src/sample_reports/templates/SystemsByPackage.txt
b/playpen/Telemetry/src/sample_reports/templates/SystemsByPackage.txt
deleted file mode 100644
index 06b8ab1..0000000
--- a/playpen/Telemetry/src/sample_reports/templates/SystemsByPackage.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-#from datetime import datetime
-Systems By Package Report
-Report Date: $datetime.now().strftime("%Y-%m-%d:%H:%M:%S")
-
-Packages: $criteria
-
-Satellites:
-#for satellite in $satellites
- $satellite
-#end for
-
-#for system in $systems
-System ID: $system.id
-System Name: $system.name
-******************************************************************************************
-******************************************************************************************
-Packages:
-#for package in $system.packages
- $package.name-$package.version-$package.release
-#end for
-
-
-#end for
diff --git a/playpen/Telemetry/src/setup.cfg b/playpen/Telemetry/src/setup.cfg
deleted file mode 100644
index b0e0744..0000000
--- a/playpen/Telemetry/src/setup.cfg
+++ /dev/null
@@ -1,9 +0,0 @@
-[bdist_rpm]
-release = 2
-packager = Todd Sanders <tsanders(a)tredhat.com>
-requires = python >= 2.5
- python-cheetah
- PyYAML
- httpd >= 2.0
- mod_python >= 3.3
-
diff --git a/playpen/Telemetry/src/setup.py b/playpen/Telemetry/src/setup.py
deleted file mode 100755
index 1b480bb..0000000
--- a/playpen/Telemetry/src/setup.py
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/python
-
-from distutils.core import setup
-import os
-
-# remove MANIFEST. distutils doesn't properly update it when the contents of
directories change.
-if os.path.exists('MANIFEST'): os.remove('MANIFEST')
-
-setup(
- name = 'telemetry',
- version = '0.1',
- description = 'Report Engine for Spacewalk.',
- long_description = "Report Manager for XMLRPC data gathering from
Spacewalk.",
- author = 'Todd Sanders',
- author_email = 'tsanders(a)redhat.com',
- platforms = 'linux',
- license = 'GPLv2',
- py_modules = [ 'telemetry' ],
- provides = [ 'telemetry' ],
- packages = ['telemetry_web'],
- package_data = {'telemetry_web':
['templates/*.html']},
- data_files = [('/usr/share/telemetry/config',
['sample_reports/config/systemDetails.conf',
'sample_reports/config/affectedSystems.conf',
'sample_reports/config/relevantErrata.conf',
'sample_reports/config/systemsByPackage.conf']),
- ('/usr/share/telemetry/scripts',
['sample_reports/scripts/systemDetailsReport.py',
'sample_reports/scripts/affectedSystemsReport.py',
'sample_reports/scripts/relevantErrataReport.py',
'sample_reports/scripts/systemsByPackageReport.py']),
- ('/usr/share/telemetry/templates',
['sample_reports/templates/SystemDetails.txt',
'sample_reports/templates/AffectedSystems.txt',
'sample_reports/templates/RelevantErrata.txt',
'sample_reports/templates/RelevantErrata.csv',
'sample_reports/templates/RelevantErrata.html',
'sample_reports/templates/SystemsByPackage.txt']),
- ('/usr/bin', ['telemetry']),
- ('/etc/telemetry',
['telemetry.conf']),
- ('/etc/telemetry',
['sudoers.telemetry']),
- ('/etc/httpd/conf.d',
['telemetry_web/telemetry.conf'])]
-
- )
diff --git a/playpen/Telemetry/src/sudoers.telemetry
b/playpen/Telemetry/src/sudoers.telemetry
deleted file mode 100644
index 49bab3e..0000000
--- a/playpen/Telemetry/src/sudoers.telemetry
+++ /dev/null
@@ -1,5 +0,0 @@
-#TELEMETRY SETUP - ADDED
-#This file is used to grant permissions for the apache user to interact with the cron
scheduler
-Cmnd_Alias MANAGE_CRONTAB = /usr/bin/crontab
-apache ALL=(root) NOPASSWD: MANAGE_CRONTAB
-Defaults:apache !requiretty
diff --git a/playpen/Telemetry/src/telemetry b/playpen/Telemetry/src/telemetry
deleted file mode 100755
index 3e6135e..0000000
--- a/playpen/Telemetry/src/telemetry
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/python
-
-#Wrapper for Telemetry
-
-import telemetry as app
-
-app.main()
diff --git a/playpen/Telemetry/src/telemetry.conf b/playpen/Telemetry/src/telemetry.conf
deleted file mode 100644
index bab5bf5..0000000
--- a/playpen/Telemetry/src/telemetry.conf
+++ /dev/null
@@ -1,18 +0,0 @@
-#Telemetry Configuration
-
-#SMTP Server to use for sending email notifications, else, Telemetry will attempt to use
sendmail.
-smtp_server: "smtp.corp.redhat.com"
-
-#If the SMTP Server requires authentication, supply the username & password
-smtp_username:
-smtp_password:
-
-from_address: "tsanders(a)redhat.com"
-subject_line: "Telemetry Report Notification"
-
-#System account to be used for scheduling operations
-cron_user: root
-
-#Directory to contain rendered reports
-report_directory: "/var/www/pub/"
-report_url: "http://localhost/pub/"
diff --git a/playpen/Telemetry/src/telemetry.py b/playpen/Telemetry/src/telemetry.py
deleted file mode 100644
index 23e2d2c..0000000
--- a/playpen/Telemetry/src/telemetry.py
+++ /dev/null
@@ -1,244 +0,0 @@
-#!/usr/bin/python
-
-import xmlrpclib
-import csv
-import sys
-import os
-import time
-from datetime import datetime
-import yaml
-import Cheetah.Template as Template
-import smtplib
-import getopt
-
-CONFIG_DIR = "/etc/telemetry/"
-CONFIG_FILE = "telemetry.conf"
-USER_TELEMETRY_DIR = "/usr/share/telemetry/"
-SUDOERS_FILE = "/etc/sudoers"
-
-def getReports():
- reports = []
- config_dir = USER_TELEMETRY_DIR + "config/"
- files = os.listdir(config_dir)
- for file in files:
- reports.append(Report(file))
- return reports
-
-def getConfig():
- config_file = os.path.join(CONFIG_DIR, CONFIG_FILE)
- f = open(config_file, 'r')
- return yaml.load(f)
-
-class Report():
-
- satellites = []
- api_versions = []
- templates = []
- name = None
- notifications = []
- config = None
- script = None
- description = None
- prefix = None
- criteria = []
- aggregate = False
-
-
- def __init__(self, config):
-
- # Open & parse Report Configuration file
- config_dir = USER_TELEMETRY_DIR + "config/"
- config_file = os.path.join(config_dir, config)
- f = open(config_file, 'r')
- parameters = yaml.load(f)
-
- self.satellites = parameters['satellites']
- self.api_versions = parameters['api_versions']
- self.templates = parameters['templates']
- self.name = parameters['name']
- self.script = parameters['script']
- self.description = parameters['description']
- if ('notifications' in parameters):
- self.notifications = parameters['notifications']
- self.prefix = parameters['prefix']
- if ('criteria' in parameters):
- self.criteria = parameters['criteria']
- self.aggregate = parameters['aggregate']
- self.config = config
-
- f.close()
-
- def connect(self):
-
- clients = []
-
- # Create connections to all Satellites
- for satellite in self.satellites:
-
- client = xmlrpclib.ServerProxy(satellite, verbose=0)
-
- # Validate API version
- api = client.api.getVersion()
-
- if (api in self.api_versions):
- clients.append(client)
- else:
- print "Error: API Version Mismatch."
- print "Satellite is: %s" % api
- print "%s will not be added." % satellite
-
- return clients
-
- def notify(self, report_name):
-
- config = getConfig()
-
- sender = config['from_address']
-
- # Initialize to list
- to = ''
- for address in self.notifications:
- to = to + address + ','
-
- subject = config['subject_line']
- text = 'Report Completed Successfully! -> ' +
config['report_url'] + report_name
- headers = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" % (sender, to,
subject)
- message = headers + text
-
- if (('smtp_server' in config) and (config['smtp_server'] !=
None)):
- # Use external mail server
- mailServer = smtplib.SMTP(config['smtp_server'])
-
- if (('smtp_username' in config) and (config['smtp_username']
!= None)):
- # Authentication Required
- mailServer.login(config['smtp_username'],
config['smtp_password'])
- else:
- # Use locally configured sendmail
- mailServer = smtplib.SMTP('localhost')
-
- mailServer.set_debuglevel(1)
- mailServer.sendmail(sender, to, message)
- mailServer.quit()
-
- def templatify(self, vars, type):
-
- template_dir = USER_TELEMETRY_DIR + "/templates/"
-
- # Retrieve Template from Type
- template_file = os.path.join(template_dir, self.templates[type])
-
- directory = getConfig()['report_directory']
-
- if not os.path.exists(directory):
- os.makedirs(directory)
-
- now = datetime.now().strftime("%Y-%m-%d:%H:%M:%S");
- report_name = "%s.%s.%s" % (self.prefix, now, type)
- report_file = os.path.join(directory, report_name)
-
- t = Template.Template(file=template_file, searchList=vars)
- open(report_file,"w").write(t.respond())
-
- #Send Report Notification
- if (len(self.notifications) > 0):
- self.notify(report_name)
-
-
-def main(argv=None):
-
- if argv is None:
- argv = sys.argv
- try:
- opts, args = getopt.getopt(argv[1:], "hs",
["help","setup"])
- except getopt.error, msg:
- print str(msg)
- usage()
- sys.exit()
-
- if (len(opts) == 0):
- usage()
- sys.exit()
-
- for o, a in opts:
- if o in ("-h", "--help"):
- usage()
- sys.exit()
- elif o in ("-s", "--setup"):
- setup()
- else:
- assert False, "unhandled option"
-
-def usage():
- usage = """
-telemetry:
-*************************************************************
--h --help Prints this
--s --setup Perform initial setup configuration
-"""
- print usage
-
-
-def setup():
-
- print "telemetry setup"
- #Grant apache sudo access to crontab for scheduling.
- updated = False
- f = open(SUDOERS_FILE, 'r')
-
- for line in f.readlines():
- if ("TELEMETRY" in line):
- updated = True
-
- if not updated:
- print "*updating sudoers"
- command = "cat /etc/telemetry/sudoers.telemetry >> /etc/sudoers"
-
- try:
- rc = os.system(command)
- except OSError, e:
- print >>sys.stderr, "Execution failed:", e
-
- if (rc >= 0):
- print "*update complete"
-
- else:
- print "*sudoers already updated.....skipping"
-
- #Verify Report Output directory exists and we can write to it.
- config = getConfig()
-
- if not os.path.exists(config['report_directory']):
- prompt = "*create output directory {%s}? [y] " %
config['report_directory']
- response = raw_input(prompt)
-
- if ((response == "") or (response.lower() in "yes")):
- #Create output directory
- os.umask(0)
- os.makedirs(config['report_directory'],mode=0777)
-
- prompt = "*update apache configuration as well? [y]"
- reponse = raw_input(prompt)
-
- if ((response == "") or (response.lower() in "yes")):
- f = open("/etc/httpd/conf/httpd.conf", "a")
- config = """
-Alias /pub/ "%s"
-<Directory "%s">
- Options Indexes MultiViews FollowSymLinks
- AllowOverride None
- Order allow,deny
- Allow from all
-</Directory>
- """ %
(config['report_directory'],config['report_directory'])
- f.write(config)
- f.close()
-
- print "*please restart httpd services"
- else:
- print "*output directory already exists.....skipping"
-
- print "*telemetry setup complete"
-
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/playpen/Telemetry/src/telemetry_web/__init__.py
b/playpen/Telemetry/src/telemetry_web/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/playpen/Telemetry/src/telemetry_web/manage.py
b/playpen/Telemetry/src/telemetry_web/manage.py
deleted file mode 100755
index bcdd55e..0000000
--- a/playpen/Telemetry/src/telemetry_web/manage.py
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/python
-from django.core.management import execute_manager
-try:
- import settings # Assumed to be in the same directory.
-except ImportError:
- import sys
- sys.stderr.write("Error: Can't find the file 'settings.py' in the
directory containing %r. It appears you've customized things.\nYou'll have to run
django-admin.py, passing it your settings module.\n(If the file settings.py does indeed
exist, it's causing an ImportError somehow.)\n" % __file__)
- sys.exit(1)
-
-if __name__ == "__main__":
- execute_manager(settings)
diff --git a/playpen/Telemetry/src/telemetry_web/settings.py
b/playpen/Telemetry/src/telemetry_web/settings.py
deleted file mode 100644
index 1345574..0000000
--- a/playpen/Telemetry/src/telemetry_web/settings.py
+++ /dev/null
@@ -1,77 +0,0 @@
-# Django settings for telemetry_web project.
-
-DEBUG = True
-TEMPLATE_DEBUG = DEBUG
-
-ADMINS = (
- # ('Your Name', 'your_email(a)domain.com'),
-)
-
-MANAGERS = ADMINS
-
-DATABASE_ENGINE = '' # 'postgresql_psycopg2',
'postgresql', 'mysql', 'sqlite3' or 'oracle'.
-DATABASE_NAME = '' # Or path to database file if using sqlite3.
-DATABASE_USER = '' # Not used with sqlite3.
-DATABASE_PASSWORD = '' # Not used with sqlite3.
-DATABASE_HOST = '' # Set to empty string for localhost. Not used with
sqlite3.
-DATABASE_PORT = '' # Set to empty string for default. Not used with
sqlite3.
-
-# Local time zone for this installation. Choices can be found here:
-#
http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
-# although not all choices may be available on all operating systems.
-# If running in a Windows environment this must be set to the same as your
-# system time zone.
-TIME_ZONE = 'America/Chicago'
-
-# Language code for this installation. All choices can be found here:
-#
http://www.i18nguy.com/unicode/language-identifiers.html
-LANGUAGE_CODE = 'en-us'
-
-SITE_ID = 1
-
-# If you set this to False, Django will make some optimizations so as not
-# to load the internationalization machinery.
-USE_I18N = True
-
-# Absolute path to the directory that holds media.
-# Example: "/home/media/media.lawrence.com/"
-MEDIA_ROOT = ''
-
-# URL that handles the media served from MEDIA_ROOT. Make sure to use a
-# trailing slash if there is a path component (optional in other cases).
-# Examples: "http://media.lawrence.com", "http://example.com/media/"
-MEDIA_URL = ''
-
-# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
-# trailing slash.
-# Examples: "http://foo.com/media/", "/media/".
-ADMIN_MEDIA_PREFIX = '/media/'
-
-# Make this unique, and don't share it with anybody.
-SECRET_KEY = '6zq1*c#qrzt(m#bv8ba4zv@f(ic%62=)0zq51iy3+&-g*_u5%^'
-
-# List of callables that know how to import templates from various sources.
-TEMPLATE_LOADERS = (
- 'django.template.loaders.filesystem.load_template_source',
- 'django.template.loaders.app_directories.load_template_source',
-# 'django.template.loaders.eggs.load_template_source',
-)
-
-MIDDLEWARE_CLASSES = (
- 'django.middleware.common.CommonMiddleware',
- 'django.contrib.sessions.middleware.SessionMiddleware',
- 'django.contrib.auth.middleware.AuthenticationMiddleware',
-)
-
-ROOT_URLCONF = 'telemetry_web.urls'
-
-TEMPLATE_DIRS = (
- '/usr/lib/python2.5/site-packages/telemetry_web/templates'
-)
-
-INSTALLED_APPS = (
- 'django.contrib.auth',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.sites',
-)
diff --git a/playpen/Telemetry/src/telemetry_web/telemetry.conf
b/playpen/Telemetry/src/telemetry_web/telemetry.conf
deleted file mode 100644
index 7cfc1d3..0000000
--- a/playpen/Telemetry/src/telemetry_web/telemetry.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-<Location "/telemetry">
- SetHandler python-program
- PythonHandler django.core.handlers.modpython
- SetEnv DJANGO_SETTINGS_MODULE telemetry_web/settings
- PythonDebug On
-</Location>
-
-PythonPath "['/usr/lib/python2.5/site-packages/telemetry_web',
'/usr/lib/python2.5/site-packages/django'] + sys.path"
-
diff --git a/playpen/Telemetry/src/telemetry_web/templates/index.html
b/playpen/Telemetry/src/telemetry_web/templates/index.html
deleted file mode 100644
index b4266a0..0000000
--- a/playpen/Telemetry/src/telemetry_web/templates/index.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<html><title>Telemetry</title>
-<body>
-<H1>Telemetry</H1>
-<a href="./reports/">Report List</a>
-</body>
-</html>
diff --git a/playpen/Telemetry/src/telemetry_web/templates/list_reports.html
b/playpen/Telemetry/src/telemetry_web/templates/list_reports.html
deleted file mode 100644
index 6f6a77d..0000000
--- a/playpen/Telemetry/src/telemetry_web/templates/list_reports.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html><title>Telemetry - Report List</title>
-<body>
-<H1>Report List</H1>
-
-<p>
-{% for report in reports %}
-<p><a
href=reportdetails?config={{report.config}}>{{report.name}}</a></p>
-{% endfor %}
-</p>
-
-
-</body>
-</html>
\ No newline at end of file
diff --git a/playpen/Telemetry/src/telemetry_web/templates/report_details.html
b/playpen/Telemetry/src/telemetry_web/templates/report_details.html
deleted file mode 100644
index 79f2756..0000000
--- a/playpen/Telemetry/src/telemetry_web/templates/report_details.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<html><title>Telemetry - Report Details</title>
-<body>
-<H1>Report Details</H1>
-
-<table border=1 cellspacing=4 cellpadding=4>
-<tr><td>Report
Name:</td><td>{{report.name}}</td></tr>
-<tr><td>Report
Description:</td><td>{{report.description}}</td></tr>
-<tr><td>Report
Script:</td><td>{{report.script}}</td></tr>
-<tr><td>Report
Directory:</td><td>{{report.directory}}</td></tr>
-<tr><td>Report
Prefix:</td><td>{{report.prefix}}</td></tr>
-<tr><td>Satellites:</td><td>
-{% for satellite in report.satellites %}
-{{satellite}}<br>
-{% endfor %}</td></tr>
-<tr><td>Aggregate
Data:</td><td>{{report.aggregate}}</td></tr>
-<tr><td>Templates:</td><td>
-{% for template in report.templates.items %}
-{{template.1}}<br>
-{% endfor %}</td></tr>
-<form method="Post" action="../reportresults/">
-<tr><td valign="top">Scheduled:</td><td>
-{% for cron in crons %}
-{{cron.0}} <button type="submit"
name="delete" value="{{cron.1}}">Delete</button><br>
-{% endfor %}
-
-
-</td></tr>
-</table>
-<br>
-<br>
-
-<input type="hidden" name="config" value={{report.config}}>
-<table>
-<tr><td>Username:</td><td><input type="text"
name="username" length=8></td></tr>
-<tr><td>Password:</td><td><input type="password"
name="password" length=8></td></tr>
-<tr><td></td><td></td></tr>
-{% for criterion in report.criteria %}
-{% ifequal criterion.type "csv" %}
-<tr><td valign=top>{{criterion.name}}:</td><td><textarea
name="{{criterion.label}}" cols={{criterion.cols}}
rows={{criterion.rows}}></textarea></td></tr>
-{% endifequal %}
-{% endfor %}
-</table><br>
-
-
-
-{% for template in report.templates %}
-<input type="radio" name="type" value={{template}}
checked>{{template}}<br>
-{% endfor %}<br>
-<button type="submit">Run Report</button>
-<p>
-<hr width=25% align="left">
-<p>
-<table>
-<tr><td>Frequency:</td><td><select><option>Daily</option></select></td></tr>
-<tr><td>@</td></tr>
-<tr><td>Hour:</td><td><input type="text"
name="hour" size=4></td></tr>
-<tr><td>Minute:</td><td><input type="text"
name="minute" size=4></td></tr>
-</table><br>
-<button type="submit" name="schedule"
value="1">Schedule</button>
-</form>
-<br><br>
-<a href="../">Back to Report List</a>
-</body>
-</html>
\ No newline at end of file
diff --git a/playpen/Telemetry/src/telemetry_web/templates/report_results.html
b/playpen/Telemetry/src/telemetry_web/templates/report_results.html
deleted file mode 100644
index a63e5b4..0000000
--- a/playpen/Telemetry/src/telemetry_web/templates/report_results.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<html><title>Telemetry - Report Results</title>
-<body>
-<H1>Report Results</H1>
-
-Your Report was executed successfully. <br><br>
-
-Execution Time:<br>
-{{time}} sec(s)<br><br>
-
-
-Report Listing:<br><br>
-
-{% for file in files %}
-<a href="{{config.report_url}}{{file}}">{{file}}</a> <br>
-{% endfor %}
-
-<br><br>
-<a href="../">Back to Report List</a>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/playpen/Telemetry/src/telemetry_web/urls.py
b/playpen/Telemetry/src/telemetry_web/urls.py
deleted file mode 100644
index 9addb1c..0000000
--- a/playpen/Telemetry/src/telemetry_web/urls.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from django.conf.urls.defaults import *
-from telemetry_web.views import *
-
-urlpatterns = patterns('',
- (r'^telemetry/reports[/]$', list_reports),
- (r'^telemetry/reports/reportdetails[/]$', report_details),
- (r'^telemetry/reports/reportresults[/]$', report_results),
- (r'^telemetry[/]$', index_view)
-)
diff --git a/playpen/Telemetry/src/telemetry_web/views.py
b/playpen/Telemetry/src/telemetry_web/views.py
deleted file mode 100644
index 9a76153..0000000
--- a/playpen/Telemetry/src/telemetry_web/views.py
+++ /dev/null
@@ -1,122 +0,0 @@
-from django.template.loader import get_template
-from django.template import Context
-from django.http import HttpResponse
-from django.http import HttpResponsePermanentRedirect
-from crontab import CronTab
-import yaml
-import datetime
-import time
-import os
-import glob
-import sys
-import uuid
-import telemetry
-
-def index_view(request):
- t = get_template("index.html")
- html = t.render(Context())
- return HttpResponse(html)
-
-
-def list_reports(request):
-
- t = get_template("list_reports.html")
-
- html = t.render(Context({'reports': telemetry.getReports()}))
-
- return HttpResponse(html)
-
-
-def report_details(request):
-
- report = telemetry.Report(request.GET['config'])
-
- c = CronTab(user=telemetry.getConfig()['cron_user'], sudo=True)
- crons = c.find_command(report.script)
- data = []
-
- for cron in crons:
- data.append(cron.render().split('# '))
-
- t = get_template("report_details.html")
-
- html = t.render(Context({'report': report, 'crons': data}))
-
- return HttpResponse(html)
-
-def report_results(request):
-
- config = telemetry.getConfig()
- scripts_dir = telemetry.USER_TELEMETRY_DIR + "scripts"
- config_dir = telemetry.USER_TELEMETRY_DIR + "config"
-
- report = telemetry.Report(request.POST['config'])
-
- report_config = request.POST['config']
- username = request.POST['username']
- password = request.POST['password']
- type = request.POST['type']
-
- command = "%s %s %s %s %s" % (os.path.join(scripts_dir, report.script),
report_config, type, username, password)
-
- # Append Criteria
- for criterion in report.criteria:
- if (request.POST.has_key(criterion['label'])):
- command = command + " " + request.POST[criterion['label']]
-
- # Redirect if schedule button was clicked...
- if (request.POST.has_key('schedule') and request.POST['schedule']):
-
- t = CronTab(user=config['cron_user'], sudo=True)
-
- try:
- n = t.new(command=command,comment=str(uuid.uuid4()))
- n.minute().on(int(request.POST['minute']))
- n.hour().on(int(request.POST['hour']))
-
- #print unicode(t.render())
-
- t.write()
-
- except (ValueError):
- pass
-
-
- url = "../reportdetails?config=%s" % report_config
-
- return HttpResponsePermanentRedirect(url)
-
- if (request.POST.has_key('delete') and request.POST['delete']):
-
- t = CronTab(user=config['cron_user'], sudo=True)
- print unicode(t.render())
-
- crons = t.find_command(report.script)
-
- for cron in crons:
- if (cron.meta() == request.POST['delete']):
- t.remove(cron)
- t.write()
-
- url = "../reportdetails?config=%s" % report_config
- return HttpResponsePermanentRedirect(url)
-
- t1 = time.time()
- rc = os.system(command)
- t2 = time.time()
- timeTaken = t2 - t1
-
- t = get_template("report_results.html")
-
- os.chdir(config['report_directory'])
- ext = "%s*.%s" % (str(report.prefix), str(type))
- l = [(os.stat(i).st_mtime, i) for i in glob.glob(ext)]
- l.sort()
- files = [i[1] for i in l]
- files.reverse()
-
- html = t.render(Context({'type': type, 'files': files,
'time': timeTaken, 'config': config}))
-
- return HttpResponse(html)
-
-
\ No newline at end of file
diff --git a/playpen/spacewalk-repo-sync/reposync.py
b/playpen/spacewalk-repo-sync/reposync.py
deleted file mode 100644
index 3beb7f8..0000000
--- a/playpen/spacewalk-repo-sync/reposync.py
+++ /dev/null
@@ -1,30 +0,0 @@
-import sys
-
-from optparse import Option, OptionParser
-
-
-class Runner:
-
- repo =
"http://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/i386/os/"
-
-
- def main():
- print "running"
-
-
-
-
-
- def processCommandLine:
- log2disk(-1, "Commandline: %s" % repr(sys.argv))
- optionsTable = [
-
-
-
-
-
-
-
-
- ]
-
diff --git a/playpen/spacewalk-repo-sync/spacewalk-repo-sync
b/playpen/spacewalk-repo-sync/spacewalk-repo-sync
deleted file mode 100755
index b7187e8..0000000
--- a/playpen/spacewalk-repo-sync/spacewalk-repo-sync
+++ /dev/null
@@ -1,210 +0,0 @@
-#!/usr/bin/python
-#
-# Script to synchronize RHN meta data between Red Hat and a local RHN Satellite.
-#
-# Copyright (c) 2008 Red Hat, Inc.
-#
-# This software is licensed to you under the GNU General Public License,
-# version 2 (GPLv2). There is NO WARRANTY for this software, express or
-# implied, including the implied warranties of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
-# along with this software; if not, see
-#
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
-#
-# Red Hat trademarks are not licensed under GPLv2. No permission is
-# granted to use or replicate Red Hat trademarks that are incorporated
-# in this software or its documentation.
-#
-
-# For return codes see bottom of this file
-
-if __name__ != '__main__':
- raise ImportError, "module cannot be imported"
-
-import sys
-def systemExit(code, msgs=None):
- "Exit with a code and optional message(s). Saved a few lines of code."
-
- if msgs:
- if type(msgs) not in [type([]), type(())]:
- msgs = (msgs, )
- for msg in msgs:
- sys.stderr.write(str(msg)+'\n')
- sys.exit(code)
-
-
-try:
- import os
- import socket
-except KeyboardInterrupt:
- systemExit(0, "\nUser interrupted process.")
-
-
-_LIBPATH = "/usr/share/rhn"
-# add to the path if need be
-if _LIBPATH not in sys.path:
- sys.path.append(_LIBPATH)
-
-# quick check to see if you are a super-user.
-if os.getuid() != 0:
- sys.stderr.write('ERROR: must be root to execute\n')
- sys.exit(8)
-
-
-try:
- from common import rhnLockfile, CFG, fetchTraceback
-except KeyboardInterrupt:
- systemExit(0, "\nUser interrupted process.")
-except ImportError:
- sys.stderr.write("Unable to find RHN code tree.\n"
- "Path not correct? '%s'\n" % _LIBPATH)
- raise
-
-
-### acquire lock/check for other instances of satellite-sync
-# i.e., lock against multiple instances of satellite-sync
-LOCK = None
-try:
- LOCK = rhnLockfile.Lockfile('/var/run/satellite-repo-sync.pid')
-except rhnLockfile.LockfileLockedException:
- systemExit(1, "SYNC ERROR: attempting to run more than one instance of
satellite-sync. Exiting.")
-
-try:
- # NOTE: importing satsync will initialize the logs and CFG
- from satellite_tools import satsync, syncLib
-except KeyboardInterrupt:
- systemExit(0, "\nUser interrupted process.")
-except ImportError, e:
- systemExit(2, "Unable to find synchronization tools.\n"
- "Error: %s" % e)
-
-
-def repr_str(e):
- """ return a repr(e), str(e) string safely
- Will return something like:
- '''
- ...repr(e)...
- ...str(e)...'''
- """
-
- s = ''
-
- hasReprYN = hasattr(e, '__repr__')
- hasStrYN = hasattr(e, '__str__')
-
- if hasReprYN and hasStrYN and e.__repr__ == e.__str__:
- s = '\n%s' % repr(e)
- else:
- if hasReprYN:
- s = '\n%s' % repr(e)
- if hasStrYN:
- s = s + '\n%s' % str(e)
- return s
-
-
-def systemExit_exception(code, msgs, e):
- """ Exit with a code. Message will head exception info.
- Traceback will be added to email log and written to disk.
- Email log is sent.
- """
-
- header = ''
- if msgs:
- if type(msgs) not in [type([]), type(())]:
- msgs = (msgs, )
- for msg in msgs:
- header = header + str(msg) + '\n'
- header = header + '\n'
-
- ## write to disk (log file) and email
- tb = header + fetchTraceback()
- syncLib.log2disk(-1, tb)
- # force the whole email thing
- syncLib.initEMAIL_LOG()
- syncLib.log2email(-1, tb)
-
- ## write to stderr, send the email, and exit
- stderrmsg = header + "(Check logs/email for potentially more detail)\n" +
\
- repr_str(e) + '\n'
- satsync.sendMail(forceEmail=1)
- systemExit(code, stderrmsg)
-
-
-def releaseLOCK():
- global LOCK
- if LOCK:
- LOCK.release()
-
-
-def main():
- # execute
- try:
- return satsync.Runner().main()
- except KeyboardInterrupt:
- systemExit(0, "\nUser interrupted process.")
- except SystemExit:
- satsync.sendMail()
- raise
- except socket.error, e:
- msg = "\nERROR: a general socket occurred:"
- systemExit_exception(3, msg, e)
- except socket.sslerror, e:
- msg = ("""
-ERROR: an SSL error occurred. Recheck your SSL settings. Those settings may
- include URL's, SSL Certificate settings, firewall rules, etc..
- Also, check that your system time has not drifted! Time drift is one
- of the primary reasons for SSL connection failures.""")
- systemExit_exception(4, msg, e)
- except syncLib.RhnSyncException, e:
- msg = "\nSYNC ERROR:"
- systemExit_exception(5, msg, e)
- except Exception, e:
- msg = "\nSYNC ERROR: unhandled exception occurred:"
- systemExit_exception(6, msg, e)
-
- releaseLOCK()
- return 0
-
-
-if __name__ == '__main__':
- try:
- sys.exit(abs(main() or 0))
- except KeyboardInterrupt:
- systemExit(0, "\nUser interrupted process.")
- except SystemExit, e:
- releaseLOCK()
- sys.exit(e.code)
- except Exception, e:
- releaseLOCK()
- systemExit_exception(7, "SYNC ERROR: attempting to display as much
information as possible:", e)
-
-
-#Returned codes means:
-#-1 Could not lock file or KeyboardInterrupt or SystemExit
-#0 User interrupted process.
-#1 attempting to run more than one instance of satellite-sync.
-#2 Unable to find synchronization tools.
-#3 a general socket occurred
-#4 an SSL error occurred. Recheck your SSL settings.
-#5 RHN error
-#6 unhandled exception occurred
-#7 unknown sync error
-#8 ERROR: must be root to execute
-#9 rpclib fault during synchronization init
-#10 synchronization init error
-#11 Error parsing XML stream
-#12 Channel do not exist
-#13 SQL error during importing package metadata
-#14 SQL error during linking channel packages
-#15 SQL error during xml processing
-#16 server.mount_point not set in the configuration file
-#17 SQL error during retrieving the channels already imported in the satellite's
database
-#18 Wrong db connection string in rhn.conf
-#19 Bad arguments
-#20 Could not connect to db.
-#21 Bad debug level
-#22 Not valid step
-#23 error: --rhn-cert requires --mount-point
-#24 no such file
-#25 no such directory
-
diff --git a/playpen/spacewalk-repo-sync/test.py b/playpen/spacewalk-repo-sync/test.py
deleted file mode 100755
index dbb45f1..0000000
--- a/playpen/spacewalk-repo-sync/test.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/python
-import sys
-import os.path
-import yum
-from yum import config
-
-_LIBPATH = "/usr/share/rhn"
-# add to the path if need be
-if _LIBPATH not in sys.path:
- sys.path.append(_LIBPATH)
-
-from server.rhnServer import server_packages
-from server.rhnLib import get_package_path
-from common import CFG, initCFG, rhn_rpm
-
-
-initCFG('server.satellite');
-
-
-# THESE WILL BECOME CONFIG OPTIONS
-name = "satellite-fedora-9"
-org_id = 1
-
-repo = yum.yumRepo.YumRepository(name)
-#repo.baseurl =
['http://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/i386/os/']
-repo.baseurl =
['http://download.fedora.redhat.com/pub/fedora/linux/releases/9/Fedora/i386/os/']
-repo.baseurlSetup()
-repo.basecachedir = "./cache/"
-repo.setup(False)
-sack = repo.getPackageSack()
-sack.populate(repo, 'metadata', None, 0)
-
-list = sack.returnPackages()
-
-if not os.path.exists(repo.hdrdir):
- os.makedirs(repo.hdrdir)
-
-
-for pack in list:
- repo.getHeader(pack)
- hdrPath = pack.localHdr()
- hdrFile = open(hdrPath, "rb")
- nvrea = [pack.name, pack.epoch, pack.version, pack.release, pack.arch]
- hdr = hdrFile.read()
-
- rpm = rhn_rpm.RPM_Header(hdr)
- print rpm.signatures
- print pack.returnIdSum()
- break
- #path = get_package_path(nevra, org_id, prepend=CFG.PREPENDED_DIR,
- # source=0, md5sum=md5sum)
- #does file exist?
- #it does, is its md5sum correct?
- #then push the file to the filesystem
-
-
-
- #rhnServer.server_packages.processPackageKeyAssociation( hdr, pack.checksums)
-
-
-
diff --git a/playpen/spacewalk-repo-sync/upload.py
b/playpen/spacewalk-repo-sync/upload.py
deleted file mode 100644
index f7217d0..0000000
--- a/playpen/spacewalk-repo-sync/upload.py
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/python
-import sys
-import os.path
-import yum
-from yum import config
-
-_LIBPATH = "/usr/share/rhn"
-# add to the path if need be
-if _LIBPATH not in sys.path:
- sys.path.append(_LIBPATH)
-
-from server.rhnLib import get_package_path
-from common import CFG, initCFG
-
-
-
-initCFG('server.satellite')
-
-
-get_package_pathh(nevra, org_id, prepend=CFG.PREPENDED_DIR,
- source=source, md5sum=md5sum)
-
-
-
-