implement api call to get days since last freeze

This commit is contained in:
Stephan Kulow
2014-03-03 14:54:27 +01:00
parent acc9872a67
commit ad71b0843b
4 changed files with 38 additions and 0 deletions

View File

@@ -10,6 +10,7 @@ from xml.etree import cElementTree as ET
import yaml
import re
import urllib2
import time
from osc import oscerr
from osc.core import change_review_state
@@ -452,6 +453,20 @@ class StagingAPI(object):
# The only case we are green
return True
def days_since_last_freeze(self, project):
"""
Checks the last update for the frozen links
:param project: project to check
:return age in days(float) of the last update
"""
u = self.makeurl(['source', project, '_project'], { 'meta': '1' })
f = http_GET(u)
root = ET.parse(f).getroot()
for entry in root.findall('entry'):
if entry.get('name') == '_frozenlinks':
return (time.time() - float(entry.get('mtime')))/3600/24
return 100000 # quite some!
def find_openqa_state(self, project):
"""
Checks the openqa state of the project

View File

@@ -327,3 +327,19 @@ class TestApiCalls(unittest.TestCase):
[{'path': 'standard/i586', 'pkg': 'glibc', 'state': 'broken'},
{'path': 'standard/i586', 'pkg': 'openSUSE-images', 'state': 'failed'}]])
@httpretty.activate
def test_check_project_status_red(self):
"""
Test checking project status
"""
# Register OBS
self.obs.register_obs()
# Testing frozen mtime
self.obs.responses['GET']['/source/openSUSE:Factory:Staging:A/_project'] = 'project-a-metalist.xml'
self.assertTrue(self.obs.api.days_since_last_freeze('openSUSE:Factory:Staging:A') > 8)
# U == unfrozen
self.obs.responses['GET']['/source/openSUSE:Factory:Staging:U/_project'] = 'project-u-metalist.xml'
self.assertTrue(self.obs.api.days_since_last_freeze('openSUSE:Factory:Staging:U') > 1000)

4
tests/fixtures/project-a-metalist.xml vendored Normal file
View File

@@ -0,0 +1,4 @@
<directory name="_project" rev="808" vrev="" srcmd5="b035cbe899ee7b4e92e1f19f3a7de02c">
<entry name="_frozenlinks" md5="546a8835fe25c5400c9fa0fa731f1185" size="81720" mtime="1393152777" />
<entry name="_meta" md5="92b5f2ed45df2fedd5030725083d36c5" size="1200" mtime="1393847918" />
</directory>

3
tests/fixtures/project-u-metalist.xml vendored Normal file
View File

@@ -0,0 +1,3 @@
<directory name="_project" rev="808" vrev="" srcmd5="b035cbe899ee7b4e92e1f19f3a7de02c">
<entry name="_meta" md5="92b5f2ed45df2fedd5030725083d36c5" size="1200" mtime="1393847918" />
</directory>