Пример #1
0
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
Пример #2
0
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
Пример #3
0
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
Пример #6
0
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
Пример #7
0
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
Пример #8
0
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
Пример #9
0
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
Пример #10
0
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
Пример #11
0
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
Пример #12
0
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
Пример #13
0
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