Revision d1e7d2b4 snf-pithos-backend/pithos/backends/lib/sqlalchemy/node.py
b/snf-pithos-backend/pithos/backends/lib/sqlalchemy/node.py | ||
---|---|---|
449 | 449 |
self.conn.execute(s).close() |
450 | 450 |
return True |
451 | 451 |
|
452 |
def node_accounts(self): |
|
453 |
s = select([self.nodes.c.path]) |
|
454 |
s = s.where(and_(self.nodes.c.node != 0, self.nodes.c.parent == 0)) |
|
455 |
account_nodes = self.conn.execute(s).fetchall() |
|
456 |
return sorted(i[0] for i in account_nodes) |
|
452 |
def node_accounts(self, accounts=()): |
|
453 |
s = select([self.nodes.c.path, self.nodes.c.node]) |
|
454 |
s = s.where(and_(self.nodes.c.node != 0, |
|
455 |
self.nodes.c.parent == 0)) |
|
456 |
if accounts: |
|
457 |
s = s.where(self.nodes.c.path.in_(accounts)) |
|
458 |
r = self.conn.execute(s) |
|
459 |
rows = r.fetchall() |
|
460 |
r.close() |
|
461 |
return rows |
|
462 |
|
|
463 |
def node_account_usage(self, account_node, cluster): |
|
464 |
select_children = select( |
|
465 |
[self.nodes.c.node]).where(self.nodes.c.parent == account_node) |
|
466 |
select_descendants = select([self.nodes.c.node]).where( |
|
467 |
or_(self.nodes.c.parent.in_(select_children), |
|
468 |
self.nodes.c.node.in_(select_children))) |
|
469 |
s = select([func.sum(self.versions.c.size)]) |
|
470 |
s = s.group_by(self.versions.c.cluster) |
|
471 |
s = s.where(self.nodes.c.node == self.versions.c.node) |
|
472 |
s = s.where(self.nodes.c.node.in_(select_descendants)) |
|
473 |
s = s.where(self.versions.c.cluster == cluster) |
|
474 |
r = self.conn.execute(s) |
|
475 |
usage = r.fetchone()[0] |
|
476 |
r.close() |
|
477 |
return usage |
|
457 | 478 |
|
458 | 479 |
def policy_get(self, node): |
459 | 480 |
s = select([self.policy.c.key, self.policy.c.value], |
Also available in: Unified diff