return self._db.exists('%s%s' % (self._prefix, key))
def __getitem__(self, key):
- return self._db.hgetall("%s%s" % (self._prefix, key))
- #self._db.get('%s%s' % (self._prefix, key))
+ key = "%s%s" % (self._prefix, key)
+
+ if self._db.type(key) == 'hash':
+ return self._db.hgetall(key)
+ elif self._db.type(key) == 'list':
+ return self._db.lrange(key, 0, -1)
+ elif self._db.type(key) == 'string':
+ return self._db.get(key)
def __setitem__(self, key, value):
- self._db.hmset("%s%s" % (self._prefix, key), value)
+ key = "%s%s" % (self._prefix, key)
+
+ if isinstance(value, dict):
+ self._db.hmset(key, value)
+ elif isinstance(value, list):
+ for item in value:
+ self._db.rpush(key, item)
+ else:
+ self._db.set(key, value)
def delete(self, key):
"""Remove key starting with the prefix from the db."""
for name in db_list.difference(names):
db_repos.delete(name)
+ def get_release_ids(self):
+ """Return release id entity object."""
+ return Entity(self._redis, "releaseid:")
+
+ def get_release_id(self, key):
+ """Return latest release id."""
+ return self.get_release_ids()[key]
+
+ def get_repo(self, name):
+ """Return all info of one repo conf.
+
+ Args:
+ name (str): the obs project name, like "Tizen:Main"
+
+ """
+ db_repos = self.get_repos()
+
+ for repo_name in db_repos:
+ repo = db_repos[repo_name]
+ if repo['Project'] == name:
+ return repo
+
+ def get_repo_by_name(self, name):
+ """Return all info of one repo conf.
+
+ Args:
+ name (str): the repo name in repos.yaml, like "Tizen-main"
+
+ """
+ return self.get_repos()[name]
+
+ def get_repo_data(self, name):
+ """Return all need info of repo conf.
+
+ Args:
+ name (str): the obs project name, like "Tizen:Main"
+
+ """
+ data = {}
+
+ repo = self.get_repo(name)
+ release_id = self.get_release_id('%s-%s' % (repo['PartOf'],
+ repo['Release']))
+
+ data['latest_snapshot'] = '%s_%s' % (repo['Release'], release_id)
+ snapshot_dir = repo['SnapshotDir']
+ data['snapshot_dir'] = snapshot_dir[snapshot_dir.find('snapshots/'):]
+ data['prerelease_dir'] = data['snapshot_dir'].replace('snapshots/', 'prerelease/', 1)
+
+ return data
+
+ def get_repo_data_by_name(self, name):
+ """Return all need info of repo conf.
+
+ Args:
+ name (str): the repo name in repos.yaml, like "Tizen-main"
+
+ """
+ data = {}
+
+ repo = self.get_repo_by_name(name)
+ release_id = self.get_release_id('%s-%s' % (repo['PartOf'],
+ repo['Release']))
+
+ data['latest_snapshot'] = '%s_%s' % (repo['Release'], release_id)
+ snapshot_dir = repo['SnapshotDir']
+ data['snapshot_dir'] = snapshot_dir[snapshot_dir.find('snapshots/'):]
+ data['prerelease_dir'] = data['snapshot_dir'].replace('snapshots/', 'prerelease/', 1)
+
+ return data