Merge lp:~brian-murray/oops-repository/src-version-buckets into lp:~daisy-pluckers/oops-repository/trunk

Proposed by Brian Murray
Status: Merged
Merged at revision: 64
Proposed branch: lp:~brian-murray/oops-repository/src-version-buckets
Merge into: lp:~daisy-pluckers/oops-repository/trunk
Diff against target: 56 lines (+24/-2)
3 files modified
oopsrepository/oopses.py (+7/-2)
oopsrepository/schema.py (+5/-0)
oopsrepository/tests/test_oopses.py (+12/-0)
To merge this branch: bzr merge lp:~brian-murray/oops-repository/src-version-buckets
Reviewer Review Type Date Requested Status
Evan (community) Approve
Review via email: mp+155628@code.launchpad.net

Description of the change

This adds in a ColumnFamily that will track source package versions and buckets that affect them.

To post a comment you must log in.
65. By Brian Murray

add CF to the schema

Revision history for this message
Evan (ev) wrote :

Bucket keys can be UTF8, so the comparator_type will need to be UTF8Type(). Also, you insert using a composite type for the row key, but use an AsciiType() in the definition for it in schema.

All together, this should be something like:
9 + if 'SourceVersionBuckets' not in cfs:
30 + composite = CompositeType(AsciiType(), AsciiType())
31 + workaround_1779(mgr.create_column_family, keyspace,
32 + 'SourceVersionBuckets', key_validation_class=composite,
33 + comparator_type=UTF8_TYPE)

Also, can we have a simple test of this new function in oopsrepository/test/test_oopses.py?

Thanks!

review: Needs Fixing
66. By Brian Murray

update branch based on evan's feedback

67. By Brian Murray

fix test failures

Revision history for this message
Brian Murray (brian-murray) wrote :

It should be good now.

Revision history for this message
Evan (ev) wrote :

Looks good to me. Feel free to merge and file an RT for this.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'oopsrepository/oopses.py'
2--- oopsrepository/oopses.py 2013-03-12 09:28:49 +0000
3+++ oopsrepository/oopses.py 2013-03-27 21:27:19 +0000
4@@ -251,9 +251,14 @@
5 metadata['Source'] = source
6 bucketmetadata_cf.insert(bucketid, metadata)
7
8-def update_bucket_systems(config, bucket, system):
9+def update_bucket_systems(config, bucketid, system):
10 if not system:
11 return
12 pool = connection_pool(config)
13 bucketsystems_cf = pycassa.ColumnFamily(pool, 'BucketSystems')
14- bucketsystems_cf.insert(bucket, {system: ''})
15+ bucketsystems_cf.insert(bucketid, {system: ''})
16+
17+def update_source_version_buckets(config, source, version, bucketid):
18+ pool = connection_pool(config)
19+ srcversionbuckets_cf = pycassa.ColumnFamily(pool, 'SourceVersionBuckets')
20+ srcversionbuckets_cf.insert((source, version), {bucketid: ''})
21
22=== modified file 'oopsrepository/schema.py'
23--- oopsrepository/schema.py 2013-03-12 04:12:56 +0000
24+++ oopsrepository/schema.py 2013-03-27 21:27:19 +0000
25@@ -90,6 +90,11 @@
26 default_validation_class=DateType(),
27 key_validation_class=composite,
28 comparator_type=TIME_UUID_TYPE)
29+ if 'SourceVersionBuckets' not in cfs:
30+ composite = CompositeType(AsciiType(), AsciiType())
31+ workaround_1779(mgr.create_column_family, keyspace,
32+ 'SourceVersionBuckets', key_validation_class=composite,
33+ comparator_type=UTF8_TYPE)
34 finally:
35 mgr.close()
36
37
38=== modified file 'oopsrepository/tests/test_oopses.py'
39--- oopsrepository/tests/test_oopses.py 2013-03-12 05:56:08 +0000
40+++ oopsrepository/tests/test_oopses.py 2013-03-27 21:27:19 +0000
41@@ -219,3 +219,15 @@
42 self.assertEqual(today, d)
43 d = errorsbyrelease.get((release, today)).values()[0]
44 self.assertEqual(today, d)
45+
46+ def test_update_source_version_buckets(self):
47+ keyspace = self.useFixture(TemporaryOOPSDB()).keyspace
48+ srcversbuckets = pycassa.ColumnFamily(self.pool, 'SourceVersionBuckets')
49+ src_package = 'whoopsie'
50+ version = '1.2.3'
51+ oops_id = str(uuid.uuid1())
52+ oopses.update_source_version_buckets(self.config, src_package,
53+ version, oops_id)
54+
55+ bucket_id = srcversbuckets.get((src_package, version)).keys()[0]
56+ self.assertEqual(oops_id, bucket_id)

Subscribers

People subscribed via source and target branches

to all changes: