コード例 #1
0
    def convert_integer(self, int_value, metadata):
        if len(str(int_value)) == 0:
            # The value collected from the database is empty
            return 0
        try:
            try:
                converted = int(int_value)
            except ValueError:
                converted = int(float(int_value))

        except ValueError:
            if metadata.unit == KnobUnitType.BYTES:
                converted = ConversionUtil.get_raw_size(
                    int_value, system=self.bytes_system)
            elif metadata.unit == KnobUnitType.MILLISECONDS:
                converted = ConversionUtil.get_raw_size(
                    int_value, system=self.time_system)
            else:
                # If vartype is OTHER, try to decode it with bytes and time systems
                converted = ConversionUtil.get_raw_size(
                    int_value, system=self.bytes_system)
                if converted is None:
                    converted = ConversionUtil.get_raw_size(
                        int_value, system=self.time_system)
        if converted is None:
            raise Exception('Invalid integer format for {}: {}'.format(
                metadata.name, int_value))
        return converted
コード例 #2
0
    def test_get_raw_size(self):
        # Bytes
        for hr_value, exp_value in zip(self.from_hr_bytes, self.as_bytes):
            byte_conversion = ConversionUtil.get_raw_size(
                hr_value, system=ConversionUtil.DEFAULT_BYTES_SYSTEM)
            self.assertEqual(byte_conversion, exp_value)

        # Time
        for hr_value, exp_value in zip(self.from_hr_times, self.as_ms):
            time_conversion = ConversionUtil.get_raw_size(
                hr_value, system=ConversionUtil.DEFAULT_TIME_SYSTEM)
            self.assertEqual(time_conversion, exp_value)
コード例 #3
0
ファイル: test_utils.py プロジェクト: guoyiteng/cs6320
    def test_get_raw_size_simple(self):
        # Bytes
        for hr_value, exp_value in zip(self.from_hr_bytes_simple, self.as_bytes_simple):
            value = ConversionUtil.get_raw_size(
                hr_value, system=ConversionUtil.DEFAULT_BYTES_SYSTEM)
            self.assertEqual(value, exp_value)

        # Time
        for hr_value, exp_value in zip(self.from_hr_times_simple, self.as_ms_simple):
            value = ConversionUtil.get_raw_size(
                hr_value, system=ConversionUtil.DEFAULT_TIME_SYSTEM)
            self.assertEqual(value, exp_value)
コード例 #4
0
ファイル: test_utils.py プロジェクト: FullStackHan/ottertune
    def test_get_raw_size(self):
        # Bytes - In Bytes
        byte_test_convert = ['1PB', '2TB', '3GB', '4MB', '5kB', '6B']
        byte_ans = [1024**5, 2 * 1024**4, 3 * 1024**3, 4 * 1024**2, 5 * 1024**1, 6]
        for i, byte_test in enumerate(byte_test_convert):
            byte_conversion = ConversionUtil.get_raw_size(
                byte_test, system=PostgresParser.POSTGRES_BYTES_SYSTEM)
            self.assertEqual(byte_conversion, byte_ans[i])

        # Time - In Milliseconds
        day_test_convert = ['1000ms', '1s', '10min', '20h', '1d']
        day_ans = [1000, 1000, 600000, 72000000, 86400000]
        for i, day_test in enumerate(day_test_convert):
            day_conversion = ConversionUtil.get_raw_size(
                day_test, system=PostgresParser.POSTGRES_TIME_SYSTEM)
            self.assertEqual(day_conversion, day_ans[i])
コード例 #5
0
    def test_get_raw_size(self):
        # Bytes - In Bytes
        byte_test_convert = ['1PB', '2TB', '3GB', '4MB', '5kB', '6B']
        byte_ans = [1024**5, 2 * 1024**4, 3 * 1024**3, 4 * 1024**2, 5 * 1024**1, 6]
        for i, byte_test in enumerate(byte_test_convert):
            byte_conversion = ConversionUtil.get_raw_size(
                byte_test, system=PostgresParser.POSTGRES_BYTES_SYSTEM)
            self.assertEqual(byte_conversion, byte_ans[i])

        # Time - In Milliseconds
        day_test_convert = ['1000ms', '1s', '10min', '20h', '1d']
        day_ans = [1000, 1000, 600000, 72000000, 86400000]
        for i, day_test in enumerate(day_test_convert):
            day_conversion = ConversionUtil.get_raw_size(
                day_test, system=PostgresParser.POSTGRES_TIME_SYSTEM)
            self.assertEqual(day_conversion, day_ans[i])
コード例 #6
0
ファイル: myrocks.py プロジェクト: willible/ottertune
 def convert_integer(self, int_value, metadata):
     converted = None
     try:
         converted = super().convert_integer(int_value, metadata)
     except ValueError:
         if metadata.unit == KnobUnitType.BYTES:
             converted = ConversionUtil.get_raw_size(
                 int_value, system=ConversionUtil.DEFAULT_BYTES_SYSTEM)
         elif metadata.unit == KnobUnitType.MILLISECONDS:
             converted = ConversionUtil.get_raw_size(
                 int_value, system=ConversionUtil.DEFAULT_TIME_SYSTEM)
         else:
             raise Exception('Unknown unit type: {}'.format(metadata.unit))
     if converted is None:
         raise Exception('Invalid integer format for {}: {}'.format(
             metadata.name, int_value))
     return converted
コード例 #7
0
ファイル: myrocks.py プロジェクト: FullStackHan/ottertune
 def convert_integer(self, int_value, metadata):
     converted = None
     try:
         converted = super(MyRocksParser, self).convert_integer(
             int_value, metadata)
     except ValueError:
         if metadata.unit == KnobUnitType.BYTES:
             converted = ConversionUtil.get_raw_size(
                 int_value, system=self.MYROCKS_BYTES_SYSTEM)
         elif metadata.unit == KnobUnitType.MILLISECONDS:
             converted = ConversionUtil.get_raw_size(
                 int_value, system=self.MYROCKS_TIME_SYSTEM)
         else:
             raise Exception('Unknown unit type: {}'.format(metadata.unit))
     if converted is None:
         raise Exception('Invalid integer format for {}: {}'.format(
             metadata.name, int_value))
     return converted
コード例 #8
0
    def convert_integer(self, int_value, metadata):
        try:
            try:
                converted = int(int_value)
            except ValueError:
                converted = int(float(int_value))

        except ValueError:
            if metadata.unit == KnobUnitType.BYTES:
                converted = ConversionUtil.get_raw_size(
                    int_value, system=self.bytes_system)
            elif metadata.unit == KnobUnitType.MILLISECONDS:
                converted = ConversionUtil.get_raw_size(
                    int_value, system=self.time_system)
            else:
                raise Exception('Unknown unit type: {}'.format(metadata.unit))
        if converted is None:
            raise Exception('Invalid integer format for {}: {}'.format(
                metadata.name, int_value))
        return converted