def dps_top_brands(kwargs): granularity = chg_granularity(kwargs['granularity']) if kwargs['start_date'] > kwargs['end_date']: return "wrong end_date" qry_field = "paired_brand.keyword" date_field = "pairing_created_on" cardinal_field = "paired_device_id" if kwargs['mno'] == 'all': qry_dsl = dps_query_without_mno(granularity, kwargs['trend_qty'], qry_field, date_field, cardinal_field, kwargs) else: match_para = "operator_name" qry_dsl = dps_query_with_mno(granularity, kwargs['trend_qty'], qry_field, date_field, match_para, cardinal_field, kwargs) qry = es.search(index=conf['dps_index'], body=qry_dsl, request_timeout=conf['request_timeout']) return qry
def lsds_01_total_reported_devices(kwargs): granularity = chg_granularity(kwargs['granularity']) if kwargs['start_date'] > kwargs['end_date']: return "wrong end_date" qry_dsl = { "aggs": { "time_range": { "date_histogram": { "field": "case_reported_date", "interval": granularity }, "aggs": { "unique_devices": { "cardinality": { "field": "case_id", "precision_threshold": conf['precision_threshold'] } } } } }, "size": 0, "query": { "bool": { "must": [{ "range": { "case_reported_date": { "gte": kwargs['start_date'], "lte": kwargs['end_date'] } } }], "filter": [{ "bool": { "should": [{ "exists": { "field": "reported_imeis.keyword" } }], "minimum_should_match": 1 } }] } } } qry = es.search(index=conf['lsds_index'], body=qry_dsl, request_timeout=conf['request_timeout']) return qry
def drs_registered_imeis_approved(kwargs): granularity = chg_granularity(kwargs['granularity']) if kwargs['start_date'] > kwargs['end_date']: return "wrong end_date" qry_dsl = { "aggs": { "time_range": { "date_histogram": { "field": "registration_date", "interval": granularity } } }, "size": 0, "query": { "bool": { "must": [{ "match_all": {} }, { "match": { "registration_status.keyword": "Approved" } }, { "range": { "registration_date": { "gte": kwargs['start_date'], "lte": kwargs['end_date'] } } }], "filter": [{ "bool": { "should": [{ "exists": { "field": "imeis.keyword" } }], "minimum_should_match": 1 } }] } } } qry = es.search(index=conf['drs_reg_index'], body=qry_dsl, request_timeout=conf['request_timeout']) return qry
def core_num_of_blacklisted_imeis(kwargs): granularity = chg_granularity(kwargs['granularity']) if kwargs['start_date'] > kwargs['end_date']: return "wrong end_date" qry_field = "imei_norm.keyword" date_field = "block_date" qry_dsl = sngl_aggs_dsl_query(granularity, qry_field, date_field, kwargs) qry = es.search(index=conf['core_indices']['core_blacklist_index'], body=qry_dsl, request_timeout=conf['request_timeout']) return qry
def drs_devices_manufacturing_location(kwargs): granularity = chg_granularity(kwargs['granularity']) if kwargs['start_date'] > kwargs['end_date']: return "wrong end_date" qry_field = "manufacturing_location.keyword" date_field = "registration_date" kwargs['trend_qty'] = 2 qry_dsl = multi_aggs_dsl_query(granularity, kwargs['trend_qty'], qry_field, date_field, kwargs) qry = es.search(index=conf['drs_reg_index'], body=qry_dsl, request_timeout=conf['request_timeout']) return qry
def lsds_05_top_stolen_model(kwargs): granularity = chg_granularity(kwargs['granularity']) if kwargs['start_date'] > kwargs['end_date']: return "wrong end_date" qry_field = "reported_model.keyword" date_field = "case_reported_date" cardinal_field = "case_id" qry_dsl = lsds_multi_aggs_query(granularity, kwargs['trend_qty'], qry_field, date_field, cardinal_field, kwargs) qry = es.search(index=conf['lsds_index'], body=qry_dsl, request_timeout=conf['request_timeout']) return qry
def lsds_03_case_status(kwargs): """ to be populated later""" granularity = chg_granularity(kwargs['granularity']) if kwargs['start_date'] > kwargs['end_date']: return "wrong end_date" qry_field = "case_status.keyword" date_field = "case_reported_date" cardinal_field = "case_id" kwargs['trend_qty'] = 4 qry_dsl = lsds_multi_aggs_query(granularity, kwargs['trend_qty'], qry_field, date_field, cardinal_field, kwargs) qry = es.search(index=conf['lsds_index'], body=qry_dsl, request_timeout=conf['request_timeout']) return qry
def drs_rat_type(kwargs): granularity = chg_granularity(kwargs['granularity']) if kwargs['start_date'] > kwargs['end_date']: return "wrong end_date" qry_field = "technologies.keyword" date_field = "registration_date" kwargs['trend_qty'] = 16 qry_dsl = multi_aggs_dsl_query(granularity, kwargs['trend_qty'], qry_field, date_field, kwargs) qry = es.search(index=conf['drs_reg_index'], body=qry_dsl, request_timeout=conf['request_timeout']) return qry
def drs_top_models(kwargs): granularity = chg_granularity(kwargs['granularity']) if kwargs['start_date'] > kwargs['end_date']: return "wrong end_date" qry_field = "registered_model.keyword" date_field = "registration_date" cardinal_field = "device_id" qry_dsl = dps_query_without_mno(granularity, kwargs['trend_qty'], qry_field, date_field, cardinal_field, kwargs) qry = es.search(index=conf['drs_reg_index'], body=qry_dsl, request_timeout=conf['request_timeout']) return qry
def dps_total_permanent_pairs(kwargs): granularity = chg_granularity(kwargs['granularity']) if kwargs['start_date'] > kwargs['end_date']: return "wrong end_date" if kwargs['mno'] == 'all': qry_dsl = { "aggs": { "time_range": { "date_histogram": { "field": "pairing_created_on", "interval": granularity } } }, "size": 0, "query": { "bool": { "must": [{ "match_all": {} }, { "match": { "is_pair_active": "true" } }, { "range": { "pairing_created_on": { "gte": kwargs['start_date'], "lte": kwargs['end_date'] } } }] } } } else: qry_dsl = { "aggs": { "time_range": { "date_histogram": { "field": "pairing_created_on", "interval": granularity } } }, "size": 0, "query": { "bool": { "must": [{ "match_all": {} }, { "match": { "operator_name": kwargs['mno'] } }, { "match": { "is_pair_active": "true" } }, { "range": { "pairing_created_on": { "gte": kwargs['start_date'], "lte": kwargs['end_date'] } } }] } } } qry = es.search(index=conf['dps_index'], body=qry_dsl, request_timeout=conf['request_timeout']) return qry
def dps_deleted_primary_secondary_pairs(kwargs): granularity = chg_granularity(kwargs['granularity']) if kwargs['start_date'] > kwargs['end_date']: return "wrong end_date" if kwargs['mno'] == 'all': qry_dsl = { "aggs": { "time_range": { "date_histogram": { "field": "pairing_created_on", "interval": granularity }, "aggs": { "aggs_2": { "terms": { "field": "primary_pair", "size": 2 } } } } }, "size": 0, "query": { "bool": { "must": [ { "match_all": {} }, { "range": { "pairing_created_on": { "gte": kwargs['start_date'], "lte": kwargs['end_date'] } } }, { "exists": { "field": "pairing_ended_on" } }, { "match_phrase": { "is_pair_active": { "query": True } } }, { "exists": { "field": "imsi" } } ] } } } else: qry_dsl = { "aggs": { "time_range": { "date_histogram": { "field": "pairing_created_on", "interval": granularity }, "aggs": { "aggs_2": { "terms": { "field": "primary_pair", "size": 2 } } } } }, "size": 0, "query": { "bool": { "must": [ { "match_all": {} }, { "match": { "operator_name": kwargs['mno'] } }, { "range": { "pairing_created_on": { "gte": kwargs['start_date'], "lte": kwargs['end_date'] } } }, { "exists": { "field": "pairing_ended_on" } }, { "match_phrase": { "is_pair_active": { "query": True } } }, { "exists": { "field": "imsi" } } ] } } } qry = es.search(index=conf['dps_index'], body=qry_dsl, request_timeout=conf['request_timeout']) return qry
def dps_num_of_connections_msisdns_imsis(kwargs): granularity = chg_granularity(kwargs['granularity']) if kwargs['start_date'] > kwargs['end_date']: return "wrong end_date" if kwargs['mno'] == 'all': qry_dsl = { "aggs": { "time_range": { "date_histogram": { "field": "pairing_created_on", "interval": granularity }, "aggs": { "unique_msisdn": { "cardinality": { "field": "msisdn.keyword", "precision_threshold": kwargs['precision_threshold'] } }, "unique_imsi": { "cardinality": { "field": "imsi.keyword", "precision_threshold": kwargs['precision_threshold'] } } } } }, "size": 0, "query": { "bool": { "must": [{ "match_all": {} }, { "range": { "pairing_created_on": { "gte": kwargs['start_date'], "lte": kwargs['end_date'] } } }] } } } else: qry_dsl = { "aggs": { "time_range": { "date_histogram": { "field": "pairing_created_on", "interval": granularity }, "aggs": { "unique_msisdn": { "cardinality": { "field": "msisdn.keyword", "precision_threshold": kwargs['precision_threshold'] } }, "unique_imsi": { "cardinality": { "field": "imsi.keyword", "precision_threshold": kwargs['precision_threshold'] } } } } }, "size": 0, "query": { "bool": { "must": [{ "match_all": {} }, { "match": { "operator_name": kwargs['mno'] } }, { "range": { "pairing_created_on": { "gte": kwargs['start_date'], "lte": kwargs['end_date'] } } }] } } } qry = es.search(index=conf['dps_index'], body=qry_dsl, request_timeout=conf['request_timeout']) return qry
def core_reglist_top_models(kwargs): granularity = chg_granularity(kwargs['granularity']) if kwargs['start_date'] > kwargs['end_date']: return "wrong end_date" qry_dsl = { "aggs": { "time_range": { "date_histogram": { "field": "start_date", "interval": granularity }, "aggs": { "aggs_2": { "terms": { "field": "model.keyword", "size": kwargs['trend_qty'], "order": { "_count": "desc" } } } } } }, "size": 0, "query": { "bool": { "must": [{ "match_all": {} }, { "exists": { "field": "model.keyword" } }, { "match": { "status.keyword": "whitelist" } }, { "range": { "start_date": { "gte": kwargs['start_date'], "lte": kwargs['end_date'] } } }], "must_not": [{ "exists": { "field": "end_date" } }] } } } qry = es.search(index=conf['core_indices']['core_reglist_index'], body=qry_dsl, request_timeout=conf['request_timeout']) return qry