Esempio n. 1
0
 def get_or_create(self, key, creation_function, **kw):
     r = mc.get(key)
     if r is None:
         r = creation_function()
         expiretime = kw.get("timeout", ONE_HOUR)
         mc.set(key, r, expiretime)
     return r
Esempio n. 2
0
def get_release(repository):
    '''get latest successed release info

    return: a dict with keys {annotate, changesets, message, first_rev,
                              last_rev, pre_release_rev, status,
                              project_source, release_manger, release_time,
                              url}
    '''
    if not repository.startswith('http:'):
        repository = 'http://code.dapps.douban.com/' + repository
    if not repository.endswith('.git'):
        repository = repository + '.git'

    key = MC_KEY_REPOSITORY_RELEASE % repository
    info = mc.get(key)

    if info is not None:
        return info

    try:
        info = fetch_release(repository)
        mc.set(key, info, ONE_DAY)
        return info
    except:
        return {}
Esempio n. 3
0
def get_release(repository):
    '''get latest successed release info

    return: a dict with keys {annotate, changesets, message, first_rev,
                              last_rev, pre_release_rev, status,
                              project_source, release_manger, release_time,
                              url}
    '''
    if not repository.startswith('http:'):
        repository = 'http://code.dapps.douban.com/' + repository
    if not repository.endswith('.git'):
        repository = repository + '.git'

    key = MC_KEY_REPOSITORY_RELEASE % repository
    info = mc.get(key)

    if info is not None:
        return info

    try:
        info = fetch_release(repository)
        mc.set(key, info, ONE_DAY)
        return info
    except:
        return {}
Esempio n. 4
0
 def get_or_create(self, key, creation_function, **kw):
     r = mc.get(key)
     if r is None:
         r = creation_function()
         expiretime = kw.get('timeout', ONE_HOUR)
         mc.set(key, r, expiretime)
     return r
Esempio n. 5
0
 def up_to_date(self):
     # Already builds the source
     last_commit_hash = mc.get(PROJECT_BUILD_HASH_MC_KEY % (
         self.project.id, self.builder_name))
     if not last_commit_hash:
         return False
     repo = self.project.repo
     commit_len = len(repo.get_commits(
         self.builder.commit_hex, last_commit_hash))
     if not commit_len:
         return True
     last_tree_hash = mc.get(PROJECT_BUILD_TREE_HASH_MC_KEY % (
         self.project.id, self.builder_name))
     if not last_tree_hash:
         return False
     if last_tree_hash == self.builder.tree_hex:
         return True
     return False
Esempio n. 6
0
 def award(self, item_id, reason=None, kind=KIND_USER):
     params = (item_id, self.id, reason, kind, datetime.now())
     store.execute(
         "insert into badge_item(item_id, badge_id, reason, kind, date) "
         "values(%s, %s, %s, %s, %s)", params)
     store.commit()
     mc_key = MC_NEW_BADGE % (item_id, kind)
     badges = mc.get(mc_key) or []
     badges.append(str(self.id))
     mc.set(mc_key, badges)
Esempio n. 7
0
 def need_rebuild(self):
     last_tree_hash = mc.get(LAST_TREE_HASH_MC_KEY %
                             (self.project_id, self.builder))
     if self.config['checkout_root']:
         current_tree_hash = _tree_hash(self.project_id, '')
     else:
         current_tree_hash = _tree_hash(self.project_id, self.dir)
     if not last_tree_hash:
         return True
     if last_tree_hash != current_tree_hash:
         return True
     return False
Esempio n. 8
0
 def need_rebuild(self):
     last_tree_hash = mc.get(
         LAST_TREE_HASH_MC_KEY % (self.project_id, self.builder))
     if self.config['checkout_root']:
         current_tree_hash = _tree_hash(self.project_id, '')
     else:
         current_tree_hash = _tree_hash(self.project_id, self.dir)
     if not last_tree_hash:
         return True
     if last_tree_hash != current_tree_hash:
         return True
     return False
Esempio n. 9
0
def get_unreleased_commit_num(project):
    last_release_info = get_release(project.repository)
    from_ref = last_release_info['last_rev'] if last_release_info else None
    key = MC_KEY_UNRELEASE_COMMITS % (project.id, project.default_sha,
                                      from_ref)
    num = mc.get(key)
    if num is None:
        commits = project.repo.get_commits(project.default_branch,
                                           from_ref=from_ref,
                                           max_count=100)
        num = len(commits)
        mc.set(key, num, ONE_DAY)
    return num
Esempio n. 10
0
def get_unreleased_commit_num(project):
    last_release_info = get_release(project.repository)
    from_ref = last_release_info['last_rev'] if last_release_info else None
    key = MC_KEY_UNRELEASE_COMMITS % (project.id,
                                      project.default_sha,
                                      from_ref)
    num = mc.get(key)
    if num is None:
        commits = project.repo.get_commits(project.default_branch,
                                           from_ref=from_ref,
                                           max_count=100)
        num = len(commits)
        mc.set(key, num, ONE_DAY)
    return num
Esempio n. 11
0
 def check(cls, apikey, code):
     key = cls.__mc_key(apikey, code)
     user_id = mc.get(key)
     if user_id:
         mc.delete(key)
     return user_id
Esempio n. 12
0
 def get_value(self):
     return mc.get(self.mc_key)
Esempio n. 13
0
 def get(self, key, **kw):
     return mc.get(key)
Esempio n. 14
0
 def count(self, target_id):
     return mc.get(self.mc_key(target_id))
Esempio n. 15
0
 def get_value(self):
     return mc.get(self.mc_key)
Esempio n. 16
0
 def get_new_badges(cls, item_id, kind=KIND_USER):
     badges = mc.get(MC_NEW_BADGE % (item_id, kind)) or []
     return [cls.get(bid) for bid in badges]
Esempio n. 17
0
 def get(self, key, **kw):
     return mc.get(key)
Esempio n. 18
0
 def confirm(cls, user_id, cid):
     key = OAUTH_CONFIRM % (user_id, cid)
     if mc.get(key):
         mc.delete(key)
         return True
Esempio n. 19
0
 def check(cls, apikey, code):
     key = cls.__mc_key(apikey, code)
     user_id = mc.get(key)
     if user_id:
         mc.delete(key)
     return user_id
Esempio n. 20
0
 def last_build_info(self):
     return mc.get(LAST_BUILD_MC_KEY % self.project_id)
Esempio n. 21
0
 def confirm(cls, user_id, cid):
     key = OAUTH_CONFIRM % (user_id, cid)
     if mc.get(key):
         mc.delete(key)
         return True
Esempio n. 22
0
 def count(self, target_id):
     return mc.get(self.mc_key(target_id))
Esempio n. 23
0
 def last_build_info(self):
     return mc.get(LAST_BUILD_MC_KEY % self.project_id)