summaryrefslogtreecommitdiffstats
path: root/requirements.txt
blob: 43d7120db6060d659b43fa6d930938c96844d733 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################

Babel==2.3.4            # BSD; OSI Approved  BSD License
Jinja2==2.9.6           # BSD; OSI Approved  BSD License
SQLAlchemy==1.1.12      # MIT License; OSI Approved  MIT License
PTable==0.9.2           # BSD (3 clause); OSI Approved  BSD License
ansible==2.5.5          # GPLv3; OSI Approved  GNU General Public License v3 or later (GPLv3+)
backport-ipaddress==0.1; python_version <= "2.7"    # OSI Approved  Python Software Foundation License
chainmap==1.0.2         # Python Software Foundation License; OSI Approved  Python Software Foundation License
cmd2==0.8.6             # MIT License; OSI Approved  MIT License
django==1.8.17          # BSD; OSI Approved  BSD License
                        # NOTE(ralonsoh): django must be bumped to 1.11.8; consider the migration notes [1]
                        # [1] https://docs.djangoproject.com/ja/1.11/ref/templates/upgrading/
docker-py==1.10.6       # OSI Approved  Apache Software License
extras==1.0.0           # OSI Approved  MIT License
flasgger==0.5.13        # MIT
flask-restful-swagger==0.19 # MIT
flask-restful==0.3.5    # BSD; OSI Approved  BSD License
flask==0.11.1           # BSD; OSI Approved  BSD License
functools32==3.2.3.post2; python_version <= "2.7"    # PSF license
futures==3.1.1;python_version=='2.7'    # BSD; OSI Approved  BSD License
influxdb==4.1.1         # MIT License; OSI Approved  MIT License
IxNetwork==8.40.1124.9  # MIT License; OSI Approved  MIT License
jinja2schema==0.1.4     # OSI Approved  BSD License
keystoneauth1==3.3.0    # OSI Approved  Apache Software License
kubernetes==6.0.0       # OSI Approved  Apache Software License
mock==2.0.0             # OSI Approved  BSD License; `BSD License`_; http://github.com/testing-cabal/mock/blob/master/LICENSE.txt
msgpack-python==0.4.8   # OSI Approved  Apache Software License
netaddr==0.7.19         # BSD License; OSI Approved  BSD License; OSI Approved  MIT License
netifaces==0.10.6       # MIT License; OSI Approved  MIT License
os-client-config==1.28.0    # OSI Approved  Apache Software License
osc-lib==1.8.0          # OSI Approved  Apache Software License
oslo.config==5.1.0     # OSI Approved  Apache Software License
oslo.i18n==3.17.0       # OSI Approved  Apache Software License
oslo.messaging==5.36.0 # OSI Approved  Apache Software License
oslo.privsep==1.23.0   # OSI Approved  Apache Software License
oslo.serialization==2.20.1  # OSI Approved  Apache Software License
oslo.utils==3.33.0      # OSI Approved  Apache Software License
paramiko==2.2.1         # LGPL; OSI Approved  GNU Library or Lesser General Public License (LGPL)
pbr==3.1.1              # OSI Approved  Apache Software License; Apache License, Version 2.0
pika==0.10.0            # BSD; OSI Approved  BSD License
pip==9.0.1              # MIT
positional==1.1.2       # OSI Approved  Apache Software License
pycrypto==2.6.1         # Public Domain
pyparsing==2.2.0        # MIT License; OSI Approved  MIT License
pyroute2==0.4.21        # dual license GPLv2+ and Apache v2; OSI Approved  GNU General Public License v2 or later (GPLv2+); OSI Approved  Apache Software License
pyrsistent==0.14.1      # LICENSE.mit; OSI Approved  MIT License
python-cinderclient==3.3.0      # OSI Approved  Apache Software License
python-glanceclient==2.8.0      # OSI Approved  Apache Software License
python-keystoneclient==3.13.0   # OSI Approved  Apache Software License
python-neutronclient==6.5.0     # OSI Approved  Apache Software License
python-novaclient==9.1.1        # OSI Approved  Apache Software License
pyzmq==16.0.2           # LGPL+BSD; OSI Approved  GNU Library or Lesser General Public License (LGPL); OSI Approved  BSD License
requests==2.14.2        # Apache 2.0; OSI Approved  Apache Software License
requestsexceptions==1.3.0   # OSI Approved  Apache Software License
scp==0.10.2             # LGPL
shade==1.22.2           # OSI Approved  Apache Software License
simplejson==3.13.2      # MIT License; OSI Approved  MIT License; OSI Approved  Academic Free License (AFL)
six==1.10.0             # MIT; OSI Approved  MIT License
stevedore==1.25.0       # OSI Approved  Apache Software License
traceback2==1.4.0       # OSI Approved  Python Software Foundation License
unicodecsv==0.14.1      # BSD License; OSI Approved  BSD License
wrapt==1.10.10          # BSD
cm"> * Defines sub allocator api * * Copyright (C) 2003, 2004 Oracle. All rights reserved. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 021110-1307, USA. */ #ifndef _CHAINALLOC_H_ #define _CHAINALLOC_H_ struct ocfs2_suballoc_result; typedef int (group_search_t)(struct inode *, struct buffer_head *, u32, /* bits_wanted */ u32, /* min_bits */ u64, /* max_block */ struct ocfs2_suballoc_result *); /* found bits */ struct ocfs2_alloc_context { struct inode *ac_inode; /* which bitmap are we allocating from? */ struct buffer_head *ac_bh; /* file entry bh */ u32 ac_alloc_slot; /* which slot are we allocating from? */ u32 ac_bits_wanted; u32 ac_bits_given; #define OCFS2_AC_USE_LOCAL 1 #define OCFS2_AC_USE_MAIN 2 #define OCFS2_AC_USE_INODE 3 #define OCFS2_AC_USE_META 4 u32 ac_which; /* these are used by the chain search */ u16 ac_chain; int ac_disable_chain_relink; group_search_t *ac_group_search; u64 ac_last_group; u64 ac_max_block; /* Highest block number to allocate. 0 is is the same as ~0 - unlimited */ int ac_find_loc_only; /* hack for reflink operation ordering */ struct ocfs2_suballoc_result *ac_find_loc_priv; /* */ struct ocfs2_alloc_reservation *ac_resv; }; void ocfs2_init_steal_slots(struct ocfs2_super *osb); void ocfs2_free_alloc_context(struct ocfs2_alloc_context *ac); static inline int ocfs2_alloc_context_bits_left(struct ocfs2_alloc_context *ac) { return ac->ac_bits_wanted - ac->ac_bits_given; } /* * Please note that the caller must make sure that root_el is the root * of extent tree. So for an inode, it should be &fe->id2.i_list. Otherwise * the result may be wrong. */ int ocfs2_reserve_new_metadata(struct ocfs2_super *osb, struct ocfs2_extent_list *root_el, struct ocfs2_alloc_context **ac); int ocfs2_reserve_new_metadata_blocks(struct ocfs2_super *osb, int blocks, struct ocfs2_alloc_context **ac); int ocfs2_reserve_new_inode(struct ocfs2_super *osb, struct ocfs2_alloc_context **ac); int ocfs2_reserve_clusters(struct ocfs2_super *osb, u32 bits_wanted, struct ocfs2_alloc_context **ac); int ocfs2_alloc_dinode_update_counts(struct inode *inode, handle_t *handle, struct buffer_head *di_bh, u32 num_bits, u16 chain); void ocfs2_rollback_alloc_dinode_counts(struct inode *inode, struct buffer_head *di_bh, u32 num_bits, u16 chain); int ocfs2_block_group_set_bits(handle_t *handle, struct inode *alloc_inode, struct ocfs2_group_desc *bg, struct buffer_head *group_bh, unsigned int bit_off, unsigned int num_bits); int ocfs2_claim_metadata(handle_t *handle, struct ocfs2_alloc_context *ac, u32 bits_wanted, u64 *suballoc_loc, u16 *suballoc_bit_start, u32 *num_bits, u64 *blkno_start); int ocfs2_claim_new_inode(handle_t *handle, struct inode *dir, struct buffer_head *parent_fe_bh, struct ocfs2_alloc_context *ac, u64 *suballoc_loc, u16 *suballoc_bit, u64 *fe_blkno); int ocfs2_claim_clusters(handle_t *handle, struct ocfs2_alloc_context *ac, u32 min_clusters, u32 *cluster_start, u32 *num_clusters); /* * Use this variant of ocfs2_claim_clusters to specify a maxiumum * number of clusters smaller than the allocation reserved. */ int __ocfs2_claim_clusters(handle_t *handle, struct ocfs2_alloc_context *ac, u32 min_clusters, u32 max_clusters, u32 *cluster_start, u32 *num_clusters); int ocfs2_free_suballoc_bits(handle_t *handle, struct inode *alloc_inode, struct buffer_head *alloc_bh, unsigned int start_bit, u64 bg_blkno, unsigned int count); int ocfs2_free_dinode(handle_t *handle, struct inode *inode_alloc_inode, struct buffer_head *inode_alloc_bh, struct ocfs2_dinode *di); int ocfs2_free_clusters(handle_t *handle, struct inode *bitmap_inode, struct buffer_head *bitmap_bh, u64 start_blk, unsigned int num_clusters); int ocfs2_release_clusters(handle_t *handle, struct inode *bitmap_inode, struct buffer_head *bitmap_bh, u64 start_blk, unsigned int num_clusters); static inline u64 ocfs2_which_suballoc_group(u64 block, unsigned int bit) { u64 group = block - (u64) bit; return group; } static inline u32 ocfs2_cluster_from_desc(struct ocfs2_super *osb, u64 bg_blkno) { /* This should work for all block group descriptors as only * the 1st group descriptor of the cluster bitmap is * different. */ if (bg_blkno == osb->first_cluster_group_blkno) return 0; /* the rest of the block groups are located at the beginning * of their 1st cluster, so a direct translation just * works. */ return ocfs2_blocks_to_clusters(osb->sb, bg_blkno); } static inline int ocfs2_is_cluster_bitmap(struct inode *inode) { struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); return osb->bitmap_blkno == OCFS2_I(inode)->ip_blkno; } /* This is for local alloc ONLY. Others should use the task-specific * apis above. */ int ocfs2_reserve_cluster_bitmap_bits(struct ocfs2_super *osb, struct ocfs2_alloc_context *ac); void ocfs2_free_ac_resource(struct ocfs2_alloc_context *ac); /* given a cluster offset, calculate which block group it belongs to * and return that block offset. */ u64 ocfs2_which_cluster_group(struct inode *inode, u32 cluster); /* * By default, ocfs2_read_group_descriptor() calls ocfs2_error() when it * finds a problem. A caller that wants to check a group descriptor * without going readonly should read the block with ocfs2_read_block[s]() * and then checking it with this function. This is only resize, really. * Everyone else should be using ocfs2_read_group_descriptor(). */ int ocfs2_check_group_descriptor(struct super_block *sb, struct ocfs2_dinode *di, struct buffer_head *bh); /* * Read a group descriptor block into *bh. If *bh is NULL, a bh will be * allocated. This is a cached read. The descriptor will be validated with * ocfs2_validate_group_descriptor(). */ int ocfs2_read_group_descriptor(struct inode *inode, struct ocfs2_dinode *di, u64 gd_blkno, struct buffer_head **bh); int ocfs2_lock_allocators(struct inode *inode, struct ocfs2_extent_tree *et, u32 clusters_to_add, u32 extents_to_split, struct ocfs2_alloc_context **data_ac, struct ocfs2_alloc_context **meta_ac); int ocfs2_test_inode_bit(struct ocfs2_super *osb, u64 blkno, int *res); /* * The following two interfaces are for ocfs2_create_inode_in_orphan(). */ int ocfs2_find_new_inode_loc(struct inode *dir, struct buffer_head *parent_fe_bh, struct ocfs2_alloc_context *ac, u64 *fe_blkno); int ocfs2_claim_new_inode_at_loc(handle_t *handle, struct inode *dir, struct ocfs2_alloc_context *ac, u64 *suballoc_loc, u16 *suballoc_bit, u64 di_blkno); #endif /* _CHAINALLOC_H_ */