def list_volumes(attrs=None, **q_opts): return Volume.ListAll(attrs, **q_opts)
raise Exception("Volume '%s' exists" % volume_cert.name) # "fake" volume version, since the volume version doesn't exist yet... rc = validate_cert_bundle(cert_bundle, user, volume_cert.volume_id, 0) if not rc: raise Exception("Invalid volume cert bundle") # a user can only create volumes for herself (admin can for anyone) if caller_user.owner_id != user.owner_id and not caller_user.is_admin: raise Exception("Caller cannot create Volumes for other users") # check quota for this user if user.get_volume_quota() >= 0: user_volume_ids_qry = Volume.ListAll( {"Volume.owner_id ==": user.owner_id}, keys_only=True, query_only=True) num_volumes = user_volume_ids_qry.count() if num_volumes > user.get_volume_quota(): raise Exception("User '%s' has exceeded Volume quota of %s" % (user.email, user.get_volume_quota())) # verify the root inode root_inode = volume_cert.root root_inode_sigb64 = root_inode.signature root_inode_sig = base64.b64decode(root_inode_sigb64) root_inode.signature = "" root_inode_nosig = root_inode.SerializeToString()