コード例 #1
0
ファイル: storage.py プロジェクト: scottjiang1415/syndicate
def list_volumes(attrs=None, **q_opts):
    return Volume.ListAll(attrs, **q_opts)
コード例 #2
0
ファイル: storage.py プロジェクト: iychoi/syndicate-core
        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()