diff --git a/superset/connectors/druid/models.py b/superset/connectors/druid/models.py index 99aff0cb02..d958730db1 100644 --- a/superset/connectors/druid/models.py +++ b/superset/connectors/druid/models.py @@ -577,38 +577,6 @@ class DruidDatasource(Model, BaseDatasource): db.session, i_datasource, lookup_cluster, lookup_datasource, import_time) - @staticmethod - def version_higher(v1, v2): - """is v1 higher than v2 - - >>> DruidDatasource.version_higher('0.8.2', '0.9.1') - False - >>> DruidDatasource.version_higher('0.8.2', '0.6.1') - True - >>> DruidDatasource.version_higher('0.8.2', '0.8.2') - False - >>> DruidDatasource.version_higher('0.8.2', '0.9.BETA') - False - >>> DruidDatasource.version_higher('0.8.2', '0.9') - False - """ - def int_or_0(v): - try: - v = int(v) - except (TypeError, ValueError): - v = 0 - return v - v1nums = [int_or_0(n) for n in v1.split('.')] - v2nums = [int_or_0(n) for n in v2.split('.')] - v1nums = (v1nums + [0, 0, 0])[:3] - v2nums = (v2nums + [0, 0, 0])[:3] - return ( - v1nums[0] > v2nums[0] or - (v1nums[0] == v2nums[0] and v1nums[1] > v2nums[1]) or - (v1nums[0] == v2nums[0] and v1nums[1] == v2nums[1] and - v1nums[2] > v2nums[2]) - ) - def latest_metadata(self): """Returns segment metadata from the latest segment""" logging.info('Syncing datasource [{}]'.format(self.datasource_name)) @@ -627,7 +595,7 @@ class DruidDatasource(Model, BaseDatasource): # realtime segments, which triggered a bug (fixed in druid 0.8.2). # https://groups.google.com/forum/#!topic/druid-user/gVCqqspHqOQ lbound = (max_time - timedelta(days=7)).isoformat() - if not self.version_higher(self.cluster.druid_version, '0.8.2'): + if LooseVersion(self.cluster.druid_version) < LooseVersion('0.8.2'): rbound = (max_time - timedelta(1)).isoformat() else: rbound = max_time.isoformat() @@ -644,7 +612,7 @@ class DruidDatasource(Model, BaseDatasource): if not segment_metadata: # if no segments in the past 7 days, look at all segments lbound = datetime(1901, 1, 1).isoformat()[:10] - if not self.version_higher(self.cluster.druid_version, '0.8.2'): + if LooseVersion(self.cluster.druid_version) < LooseVersion('0.8.2'): rbound = datetime.now().isoformat() else: rbound = datetime(2050, 1, 1).isoformat()[:10]