################################################################################
def package_to_suite(u, suite_name, session):
- if not u.pkg.changes["distribution"].has_key(suite_name):
+ if suite_name not in u.pkg.changes["distribution"]:
return False
- ret = True
+ if 'source' in u.pkg.changes["architecture"]:
+ return True
- if not u.pkg.changes["architecture"].has_key("source"):
- q = session.query(SrcAssociation.sa_id)
- q = q.join(Suite).filter_by(suite_name=suite_name)
- q = q.join(DBSource).filter_by(source=u.pkg.changes['source'])
- q = q.filter_by(version=u.pkg.changes['version']).limit(1)
+ q = session.query(Suite).filter_by(suite_name = suite_name). \
+ filter(Suite.sources.any( \
+ source = u.pkg.changes['source'], \
+ version = u.pkg.changes['version']))
- # NB: Careful, this logic isn't what you would think it is
- # Source is already in the target suite so no need to go to policy
- # Instead, we don't move to the policy area, we just do an ACCEPT
- if q.count() > 0:
- ret = False
-
- return ret
+ # NB: Careful, this logic isn't what you would think it is
+ # Source is already in the target suite so no need to go to policy
+ # Instead, we don't move to the policy area, we just do an ACCEPT
+ if q.count() > 0:
+ return False
+ else:
+ return True
def package_to_queue(u, summary, short_summary, queue, chg, session, announce=None):
cnf = Config()
u.move_to_queue(queue)
chg.in_queue_id = queue.policy_queue_id
session.add(chg)
+
+ # send to build queues
+ if queue.send_to_build_queues:
+ for suite_name in u.pkg.changes["distribution"].keys():
+ suite = get_suite(suite_name, session)
+ for q in suite.copy_queues:
+ q.add_changes_from_policy_queue(queue, chg)
+
session.commit()
# Check for override disparities
def is_unembargo(u):
session = DBConn().session()
- cnf = Config()
# If we dont have the disembargo queue we are not on security and so not interested
# in doing any security queue handling
- if not get_policy_queue("disembargo"):
+ disembargo_queue = get_policy_queue("disembargo")
+ if not disembargo_queue:
return False
# If we already are in newstage, then it means this just got passed through and accepted
session.close()
return True
- oldcwd = os.getcwd()
- os.chdir(cnf["Dir::Queue::Disembargo"])
- disdir = os.getcwd()
- os.chdir(oldcwd)
+ # Ensure we don't have a / on the end or something
+ disdir = os.path.abspath(disembargo_queue.path)
ret = False
if u.pkg.directory == disdir:
if u.pkg.changes["architecture"].has_key("source"):
- session.execute("INSERT INTO disembargo (package, version) VALUES (:package, :version)",
+ session.execute("INSERT INTO disembargo (package, version) VALUES (:source, :version)",
{'source': u.pkg.changes["source"],
'version': u.pkg.changes["version"]})
session.commit()
package_to_queue(u, summary, short_summary,
polq, chg, session,
announce=None)
- for suite_name in u.pkg.changes["distribution"].keys():
- suite = get_suite(suite_name, session)
- for q in suite.copy_queues:
- for f in u.pkg.files.keys():
- copyfile(os.path.join(polq.path, f), os.path.join(q.path, f))
#
#################################################################################
#
package_to_queue(u, summary, short_summary,
polq, chg, session,
announce=None)
- for suite_name in u.pkg.changes["distribution"].keys():
- suite = get_suite(suite_name, session)
- for q in suite.copy_queues:
- for f in u.pkg.files.keys():
- copyfile(os.path.join(polq.path, f), os.path.join(q.path, f))
################################################################################