示例#1
0
    def __init__(self,
                 url=common.DEFAULT_URL,
                 debug=False,
                 quiet=False,
                 use_folder_tree=False,
                 max_size=common.DEFAULT_MAX_SIZE,
                 min_free_size=common.DEFAULT_MIN_FREE_SIZE,
                 store_path=common.DEFAULT_STORE_PATH,
                 config_path=common.DEFAULT_CONFIG_PATH,
                 connection_retry_limit=common.DEFAULT_CONNECTION_RETRY_LIMIT,
                 connection_retry_delay=common.DEFAULT_CONNECTION_RETRY_DELAY,
                 nop2p=True):

        debug = deserialize.flag(debug)
        quiet = deserialize.flag(quiet)

        self.storjnode = None
        self.nop2p = nop2p
        self.url = deserialize.url(url)
        self.use_folder_tree = deserialize.flag(use_folder_tree)
        self.max_size = deserialize.byte_count(max_size)
        self.min_free_size = deserialize.byte_count(min_free_size)

        self.messenger = None  # lazy
        self.btctxstore = BtcTxStore()
        self.retry_limit = deserialize.positive_integer(connection_retry_limit)
        self.retry_delay = deserialize.positive_integer(connection_retry_delay)

        # paths
        self.cfg_path = os.path.realpath(config_path)
        storjnode.util.ensure_path_exists(os.path.dirname(self.cfg_path))
        self.store_path = os.path.realpath(store_path)
        storjnode.util.ensure_path_exists(self.store_path)

        # check for vfat partions
        try:
            fstype = storjnode.util.get_fs_type(self.store_path)

        # FileNotFoundError: [Errno 2] No such file or directory: '/etc/mtab'
        # psutil: https://code.google.com/p/psutil/issues/detail?id=434
        except EnvironmentError as e:
            logger.warning(e)
            fstype = None

        if fstype == "vfat":
            logger.info("Detected vfat partition, using folder tree.")
            self.use_folder_tree = True
        if fstype is None:
            msg = "Couldn't detected partition type for '{0}'"
            logger.warning(msg.format(self.store_path))

        self.cfg = storjnode.config.get(self.btctxstore, self.cfg_path)
    def test_types(self):

        # accepted types
        self.assertEqual(deserialize.byte_count(1), 1)
        self.assertEqual(deserialize.byte_count("1"), 1)
        self.assertEqual(deserialize.byte_count(b"1"), 1)
        self.assertEqual(deserialize.byte_count(u"1"), 1)

        def callback():
            deserialize.byte_count(None)
        self.assertRaises(exceptions.InvalidInput, callback)

        def callback():
            deserialize.byte_count(1.0)
        self.assertRaises(exceptions.InvalidInput, callback)
    def test_base_1024(self):
        self.assertEqual(deserialize.byte_count("1K"), 1 * (1024 ** 1))
        self.assertEqual(deserialize.byte_count("2K"), 2 * (1024 ** 1))

        self.assertEqual(deserialize.byte_count("1M"), 1 * (1024 ** 2))
        self.assertEqual(deserialize.byte_count("2M"), 2 * (1024 ** 2))

        self.assertEqual(deserialize.byte_count("1G"), 1 * (1024 ** 3))
        self.assertEqual(deserialize.byte_count("2G"), 2 * (1024 ** 3))

        self.assertEqual(deserialize.byte_count("1T"), 1 * (1024 ** 4))
        self.assertEqual(deserialize.byte_count("2T"), 2 * (1024 ** 4))

        self.assertEqual(deserialize.byte_count("1P"), 1 * (1024 ** 5))
        self.assertEqual(deserialize.byte_count("2P"), 2 * (1024 ** 5))
    def test_base_1000(self):
        self.assertEqual(deserialize.byte_count("1KB"), 1 * (1000 ** 1))
        self.assertEqual(deserialize.byte_count("2KB"), 2 * (1000 ** 1))

        self.assertEqual(deserialize.byte_count("1MB"), 1 * (1000 ** 2))
        self.assertEqual(deserialize.byte_count("2MB"), 2 * (1000 ** 2))

        self.assertEqual(deserialize.byte_count("1GB"), 1 * (1000 ** 3))
        self.assertEqual(deserialize.byte_count("2GB"), 2 * (1000 ** 3))

        self.assertEqual(deserialize.byte_count("1TB"), 1 * (1000 ** 4))
        self.assertEqual(deserialize.byte_count("2TB"), 2 * (1000 ** 4))

        self.assertEqual(deserialize.byte_count("1PB"), 1 * (1000 ** 5))
        self.assertEqual(deserialize.byte_count("2PB"), 2 * (1000 ** 5))
    def test_base_1024(self):
        self.assertEqual(deserialize.byte_count("1K"), 1 * (1024 ** 1))
        self.assertEqual(deserialize.byte_count("2K"), 2 * (1024 ** 1))

        self.assertEqual(deserialize.byte_count("1M"), 1 * (1024 ** 2))
        self.assertEqual(deserialize.byte_count("2M"), 2 * (1024 ** 2))

        self.assertEqual(deserialize.byte_count("1G"), 1 * (1024 ** 3))
        self.assertEqual(deserialize.byte_count("2G"), 2 * (1024 ** 3))

        self.assertEqual(deserialize.byte_count("1T"), 1 * (1024 ** 4))
        self.assertEqual(deserialize.byte_count("2T"), 2 * (1024 ** 4))

        self.assertEqual(deserialize.byte_count("1P"), 1 * (1024 ** 5))
        self.assertEqual(deserialize.byte_count("2P"), 2 * (1024 ** 5))
    def test_base_1000(self):
        self.assertEqual(deserialize.byte_count("1KB"), 1 * (1000 ** 1))
        self.assertEqual(deserialize.byte_count("2KB"), 2 * (1000 ** 1))

        self.assertEqual(deserialize.byte_count("1MB"), 1 * (1000 ** 2))
        self.assertEqual(deserialize.byte_count("2MB"), 2 * (1000 ** 2))

        self.assertEqual(deserialize.byte_count("1GB"), 1 * (1000 ** 3))
        self.assertEqual(deserialize.byte_count("2GB"), 2 * (1000 ** 3))

        self.assertEqual(deserialize.byte_count("1TB"), 1 * (1000 ** 4))
        self.assertEqual(deserialize.byte_count("2TB"), 2 * (1000 ** 4))

        self.assertEqual(deserialize.byte_count("1PB"), 1 * (1000 ** 5))
        self.assertEqual(deserialize.byte_count("2PB"), 2 * (1000 ** 5))
    def test_types(self):

        # accepted types
        self.assertEqual(deserialize.byte_count(1), 1)
        self.assertEqual(deserialize.byte_count("1"), 1)
        self.assertEqual(deserialize.byte_count(b"1"), 1)
        self.assertEqual(deserialize.byte_count(u"1"), 1)

        def callback():
            deserialize.byte_count(None)
        self.assertRaises(exceptions.InvalidInput, callback)

        def callback():
            deserialize.byte_count(1.0)
        self.assertRaises(exceptions.InvalidInput, callback)
示例#8
0
    def __init__(self, url=common.DEFAULT_URL, debug=False, quiet=False,
                 use_folder_tree=False, max_size=common.DEFAULT_MAX_SIZE,
                 min_free_size=common.DEFAULT_MIN_FREE_SIZE,
                 store_path=common.DEFAULT_STORE_PATH,
                 config_path=common.DEFAULT_CONFIG_PATH,
                 connection_retry_limit=common.DEFAULT_CONNECTION_RETRY_LIMIT,
                 connection_retry_delay=common.DEFAULT_CONNECTION_RETRY_DELAY,
                 nop2p=True):

        debug = deserialize.flag(debug)
        quiet = deserialize.flag(quiet)

        self.storjnode = None
        self.nop2p = nop2p
        self.url = deserialize.url(url)
        self.use_folder_tree = deserialize.flag(use_folder_tree)
        self.max_size = deserialize.byte_count(max_size)
        self.min_free_size = deserialize.byte_count(min_free_size)

        self.messenger = None  # lazy
        self.btctxstore = BtcTxStore()
        self.retry_limit = deserialize.positive_integer(connection_retry_limit)
        self.retry_delay = deserialize.positive_integer(connection_retry_delay)

        # paths
        self.cfg_path = os.path.realpath(config_path)
        storjnode.util.ensure_path_exists(os.path.dirname(self.cfg_path))
        self.store_path = os.path.realpath(store_path)
        storjnode.util.ensure_path_exists(self.store_path)

        # check for vfat partions
        try:
            fstype = storjnode.util.get_fs_type(self.store_path)

        # FileNotFoundError: [Errno 2] No such file or directory: '/etc/mtab'
        # psutil: https://code.google.com/p/psutil/issues/detail?id=434
        except EnvironmentError as e:
            logger.warning(e)
            fstype = None

        if fstype == "vfat":
            logger.info("Detected vfat partition, using folder tree.")
            self.use_folder_tree = True
        if fstype is None:
            msg = "Couldn't detected partition type for '{0}'"
            logger.warning(msg.format(self.store_path))

        self.cfg = storjnode.config.get(self.btctxstore, self.cfg_path)
示例#9
0
    def __init__(self, url=common.DEFAULT_URL, debug=False,
                 max_size=common.DEFAULT_MAX_SIZE,
                 store_path=common.DEFAULT_STORE_PATH,
                 config_path=common.DEFAULT_CONFIG_PATH,
                 set_master_secret=None, set_payout_address=None,
                 connection_retry_limit=common.DEFAULT_CONNECTION_RETRY_LIMIT,
                 connection_retry_delay=common.DEFAULT_CONNECTION_RETRY_DELAY):

        # FIXME validate master_secret

        self.url = url
        self.config = None  # lazy
        self.messanger = None  # lazy
        self.debug = debug  # TODO validate
        self.retry_limit = deserialize.positive_integer(connection_retry_limit)
        self.retry_delay = deserialize.positive_integer(connection_retry_delay)
        self.max_size = deserialize.byte_count(max_size)

        # paths
        self.config_path = os.path.realpath(config_path)  # TODO validate
        self._ensure_path_exists(os.path.dirname(self.config_path))
        self.store_path = os.path.realpath(store_path)
        self._ensure_path_exists(self.store_path)

        # validate payout address
        self.btctxstore = BtcTxStore()
        if set_payout_address and (not self.btctxstore.validate_address(set_payout_address)):
            raise exceptions.InvalidAddress(set_payout_address)

        self._initialize_config(set_master_secret, set_payout_address)
示例#10
0
    def __init__(self, url=common.DEFAULT_URL, debug=False, quiet=False,
                 use_folder_tree=False, max_size=common.DEFAULT_MAX_SIZE,
                 store_path=common.DEFAULT_STORE_PATH,
                 config_path=common.DEFAULT_CONFIG_PATH,
                 connection_retry_limit=common.DEFAULT_CONNECTION_RETRY_LIMIT,
                 connection_retry_delay=common.DEFAULT_CONNECTION_RETRY_DELAY):

        debug = deserialize.flag(debug)
        quiet = deserialize.flag(quiet)

        self.url = deserialize.url(url)
        self.use_folder_tree = deserialize.flag(use_folder_tree)
        self.max_size = deserialize.byte_count(max_size)

        self.messenger = None  # lazy
        self.btctxstore = BtcTxStore()
        self.retry_limit = deserialize.positive_integer(connection_retry_limit)
        self.retry_delay = deserialize.positive_integer(connection_retry_delay)

        # paths
        self.cfg_path = os.path.realpath(config_path)
        control.util.ensure_path_exists(os.path.dirname(self.cfg_path))
        self.store_path = os.path.realpath(store_path)
        control.util.ensure_path_exists(self.store_path)

        # check for vfat partions
        fstype = control.util.get_fs_type(self.store_path)
        if fstype == "vfat":
            logger.info("Detected vfat partition, using folder tree.")
            self.use_folder_tree = True
        if fstype is None:
            msg = "Couldn't detected partition type for '{0}'"
            logger.warning(msg.format(self.store_path))

        self.cfg = control.config.get(self.btctxstore, self.cfg_path)
示例#11
0
    def __init__(self,
                 address=None,
                 url=common.DEFAULT_URL,
                 debug=False,
                 max_size=common.DEFAULT_MAX_SIZE,
                 store_path=common.DEFAULT_STORE_PATH,
                 connection_retry_limit=common.DEFAULT_CONNECTION_RETRY_LIMIT,
                 connection_retry_delay=common.DEFAULT_CONNECTION_RETRY_DELAY):

        self.url = url
        self.debug = debug
        self.address = address
        self.max_size = deserialize.byte_count(max_size)
        self.store_path = os.path.realpath(store_path)

        # FIXME add deserialize.positive_integer
        if int(connection_retry_limit) < 0:
            raise exceptions.InvalidArgument()
        self.connection_retry_limit = int(connection_retry_limit)

        # FIXME add deserialize.positive_integer
        if int(connection_retry_delay) < 0:
            raise exceptions.InvalidArgument()
        self.connection_retry_delay = int(connection_retry_delay)

        # ensure storage dir exists
        if not os.path.exists(self.store_path):
            os.makedirs(self.store_path)
示例#12
0
    def __init__(self, url=common.DEFAULT_URL, debug=False, quiet=False,
                 use_folder_tree=False, max_size=common.DEFAULT_MAX_SIZE,
                 store_path=common.DEFAULT_STORE_PATH,
                 config_path=common.DEFAULT_CONFIG_PATH,
                 connection_retry_limit=common.DEFAULT_CONNECTION_RETRY_LIMIT,
                 connection_retry_delay=common.DEFAULT_CONNECTION_RETRY_DELAY):

        debug = deserialize.flag(debug)
        quiet = deserialize.flag(quiet)

        self.url = deserialize.url(url)
        self.use_folder_tree = deserialize.flag(use_folder_tree)
        self.max_size = deserialize.byte_count(max_size)

        self.messenger = None  # lazy
        self.btctxstore = BtcTxStore()
        self.retry_limit = deserialize.positive_integer(connection_retry_limit)
        self.retry_delay = deserialize.positive_integer(connection_retry_delay)

        # paths
        self.cfg_path = os.path.realpath(config_path)
        control.util.ensure_path_exists(os.path.dirname(self.cfg_path))
        self.store_path = os.path.realpath(store_path)
        control.util.ensure_path_exists(self.store_path)

        # check for vfat partions
        if control.util.get_fs_type(self.store_path) == "vfat":
            self.use_folder_tree = True

        self.cfg = control.config.get(self.btctxstore, self.cfg_path)
示例#13
0
    def __init__(self, url=common.DEFAULT_URL, debug=False,
                 max_size=common.DEFAULT_MAX_SIZE,
                 store_path=common.DEFAULT_STORE_PATH,
                 config_path=common.DEFAULT_CONFIG_PATH,
                 connection_retry_limit=common.DEFAULT_CONNECTION_RETRY_LIMIT,
                 connection_retry_delay=common.DEFAULT_CONNECTION_RETRY_DELAY):

        self.url = url
        self.messanger = None  # lazy
        self.debug = debug
        self.btctxstore = BtcTxStore()
        self.retry_limit = deserialize.positive_integer(connection_retry_limit)
        self.retry_delay = deserialize.positive_integer(connection_retry_delay)
        self.max_size = deserialize.byte_count(max_size)

        # paths
        self.cfg_path = os.path.realpath(config_path)
        self._ensure_path_exists(os.path.dirname(self.cfg_path))
        self.store_path = os.path.realpath(store_path)
        self._ensure_path_exists(self.store_path)

        self.cfg = config.get(self.btctxstore, self.cfg_path)
示例#14
0
    def __init__(self,
                 url=common.DEFAULT_URL,
                 debug=False,
                 max_size=common.DEFAULT_MAX_SIZE,
                 store_path=common.DEFAULT_STORE_PATH,
                 config_path=common.DEFAULT_CONFIG_PATH,
                 connection_retry_limit=common.DEFAULT_CONNECTION_RETRY_LIMIT,
                 connection_retry_delay=common.DEFAULT_CONNECTION_RETRY_DELAY):

        self.url = url
        self.messanger = None  # lazy
        self.debug = debug
        self.btctxstore = BtcTxStore()
        self.retry_limit = deserialize.positive_integer(connection_retry_limit)
        self.retry_delay = deserialize.positive_integer(connection_retry_delay)
        self.max_size = deserialize.byte_count(max_size)

        # paths
        self.cfg_path = os.path.realpath(config_path)
        self._ensure_path_exists(os.path.dirname(self.cfg_path))
        self.store_path = os.path.realpath(store_path)
        self._ensure_path_exists(self.store_path)

        self.cfg = config.get(self.btctxstore, self.cfg_path)
    def test_decimal(self):
        # test unit boundries base 1024
        self.assertEqual(deserialize.byte_count("1.0K"), 1024 ** 1 )
        self.assertEqual(deserialize.byte_count("1.0M"), 1024 ** 2 )
        self.assertEqual(deserialize.byte_count("1.0G"), 1024 ** 3 )
        self.assertEqual(deserialize.byte_count("1.0T"), 1024 ** 4 )
        self.assertEqual(deserialize.byte_count("1.0P"), 1024 ** 5 )

        # test unit boundries base 1000
        self.assertEqual(deserialize.byte_count("1.0KB"), 1000 ** 1 )
        self.assertEqual(deserialize.byte_count("1.0MB"), 1000 ** 2 )
        self.assertEqual(deserialize.byte_count("1.0GB"), 1000 ** 3 )
        self.assertEqual(deserialize.byte_count("1.0TB"), 1000 ** 4 )
        self.assertEqual(deserialize.byte_count("1.0PB"), 1000 ** 5 )

        # test between unit boundries base 1024
        self.assertEqual(deserialize.byte_count("0.5K"), (1024 ** 1 / 2))
        self.assertEqual(deserialize.byte_count("0.5M"), (1024 ** 2 / 2))
        self.assertEqual(deserialize.byte_count("0.5G"), (1024 ** 3 / 2))
        self.assertEqual(deserialize.byte_count("0.5T"), (1024 ** 4 / 2))
        self.assertEqual(deserialize.byte_count("0.5P"), (1024 ** 5 / 2))

        # test between unit boundries base 1000
        self.assertEqual(deserialize.byte_count("0.5KB"), (1000 ** 1 / 2))
        self.assertEqual(deserialize.byte_count("0.5MB"), (1000 ** 2 / 2))
        self.assertEqual(deserialize.byte_count("0.5GB"), (1000 ** 3 / 2))
        self.assertEqual(deserialize.byte_count("0.5TB"), (1000 ** 4 / 2))
        self.assertEqual(deserialize.byte_count("0.5PB"), (1000 ** 5 / 2))

        # test type
        self.assertTrue(isinstance(deserialize.byte_count("0.49K"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49M"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49G"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49T"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49P"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49KB"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49MB"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49GB"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49TB"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49PB"), int))
 def callback():
     deserialize.byte_count(1.0)
    def test_decimal(self):
        # test unit boundries base 1024
        self.assertEqual(deserialize.byte_count("1.0K"), 1024 ** 1)
        self.assertEqual(deserialize.byte_count("1.0M"), 1024 ** 2)
        self.assertEqual(deserialize.byte_count("1.0G"), 1024 ** 3)
        self.assertEqual(deserialize.byte_count("1.0T"), 1024 ** 4)
        self.assertEqual(deserialize.byte_count("1.0P"), 1024 ** 5)

        # test unit boundries base 1000
        self.assertEqual(deserialize.byte_count("1.0KB"), 1000 ** 1)
        self.assertEqual(deserialize.byte_count("1.0MB"), 1000 ** 2)
        self.assertEqual(deserialize.byte_count("1.0GB"), 1000 ** 3)
        self.assertEqual(deserialize.byte_count("1.0TB"), 1000 ** 4)
        self.assertEqual(deserialize.byte_count("1.0PB"), 1000 ** 5)

        # test between unit boundries base 1024
        self.assertEqual(deserialize.byte_count("0.5K"), (1024 ** 1 / 2))
        self.assertEqual(deserialize.byte_count("0.5M"), (1024 ** 2 / 2))
        self.assertEqual(deserialize.byte_count("0.5G"), (1024 ** 3 / 2))
        self.assertEqual(deserialize.byte_count("0.5T"), (1024 ** 4 / 2))
        self.assertEqual(deserialize.byte_count("0.5P"), (1024 ** 5 / 2))

        # test between unit boundries base 1000
        self.assertEqual(deserialize.byte_count("0.5KB"), (1000 ** 1 / 2))
        self.assertEqual(deserialize.byte_count("0.5MB"), (1000 ** 2 / 2))
        self.assertEqual(deserialize.byte_count("0.5GB"), (1000 ** 3 / 2))
        self.assertEqual(deserialize.byte_count("0.5TB"), (1000 ** 4 / 2))
        self.assertEqual(deserialize.byte_count("0.5PB"), (1000 ** 5 / 2))

        # test type
        self.assertTrue(isinstance(deserialize.byte_count("0.49K"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49M"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49G"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49T"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49P"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49KB"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49MB"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49GB"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49TB"), int))
        self.assertTrue(isinstance(deserialize.byte_count("0.49PB"), int))
 def test_no_postfix(self):
     self.assertEqual(deserialize.byte_count("1"), 1)
     self.assertEqual(deserialize.byte_count("2"), 2)
 def test_int(self):
     self.assertEqual(deserialize.byte_count(1), 1)
 def callback():
     deserialize.byte_count(1.0)
 def callback():
     deserialize.byte_count(None)
 def callback():
     deserialize.byte_count(None)
示例#23
0
 def test_int(self):
     self.assertEqual(deserialize.byte_count(0), 0)
     self.assertEqual(deserialize.byte_count(1), 1)
示例#24
0
 def test_no_postfix(self):
     self.assertEqual(deserialize.byte_count("0"), 0)
     self.assertEqual(deserialize.byte_count("1"), 1)
     self.assertEqual(deserialize.byte_count("2"), 2)