def __getitem__(self, promotion_name): """get promotion by name.""" for row in self._data.get('processes', []): if row["name"] == promotion_name: return self.get_jenkins_obj().Promotion(row['url'], promotion_name, self.job) raise exception.UnknownPromotion(promotion_name)
def promote(self, name): """force promotion by name.""" if self.is_running: raise exception.NotStopYet("%s is still running." % self.name) url = "%s/promotion/forcePromotion?name=%s" % (self.url, name) try: self.get_jenkins_obj().requester.post_and_confirm_status(url, data='') except exception.RequestError: raise exception.UnknownPromotion(name) # update info self.poll()