Add byte unit constants

A lots of numeric expressions are needed to caculate byte number
across Nova project, such as 1024*1024 , 1024**3 etc. This patch
add constants and will replace these numeric expressions in
following patches. That makes code more readable.Use these constants
like: root_disk_gb = 5 * unit.Gi

blueprint byte-unit-clean

Change-Id: Ic9aad949733d375aaa695d4292ff1b171d1def78
This commit is contained in:
Chang Bo Guo
2013-10-16 19:12:40 -07:00
parent 5f913171c9
commit a1d9bb567c
2 changed files with 61 additions and 0 deletions

31
nova/tests/test_unit.py Normal file
View File

@@ -0,0 +1,31 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
# Copyright 2013 IBM Corp
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from nova import test
from nova import unit
class UnitTest(test.NoDBTestCase):
def test_byte_unit(self):
self.assertEqual(unit.Ki, 1024)
self.assertEqual(unit.Mi, 1024 ** 2)
self.assertEqual(unit.Gi, 1024 ** 3)
self.assertEqual(unit.Ti, 1024 ** 4)
self.assertEqual(unit.Pi, 1024 ** 5)
self.assertEqual(unit.Ei, 1024 ** 6)
self.assertEqual(unit.Zi, 1024 ** 7)
self.assertEqual(unit.Yi, 1024 ** 8)

30
nova/unit.py Normal file
View File

@@ -0,0 +1,30 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
# Copyright 2013 IBM Corp
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""
Unit constants
"""
#Byte unit constant.
Ki = 1024
Mi = 1024 ** 2
Gi = 1024 ** 3
Ti = 1024 ** 4
Pi = 1024 ** 5
Ei = 1024 ** 6
Zi = 1024 ** 7
Yi = 1024 ** 8