Ejemplo n.º 1
0
def get_statistics_map(fledge_url):
    _connection = http.client.HTTPConnection(fledge_url)
    _connection.request("GET", '/fledge/statistics')
    r = _connection.getresponse()
    assert 200 == r.status
    r = r.read().decode()
    jdoc = json.loads(r)
    return utils.serialize_stats_map(jdoc)
Ejemplo n.º 2
0
 def get_statistics_map(self, foglamp_url):
     conn = http.client.HTTPConnection(foglamp_url)
     conn.request("GET", '/foglamp/statistics')
     r = conn.getresponse()
     assert 200 == r.status
     r = r.read().decode()
     jdoc = json.loads(r)
     return utils.serialize_stats_map(jdoc)
Ejemplo n.º 3
0
    def test_statistics_history_with_service_enabled(self, start_south_coap, fledge_url, wait_time):
        # Allow CoAP listener to start
        time.sleep(wait_time)

        # ingest one reading via fogbench
        subprocess.run(["cd $FLEDGE_ROOT/extras/python; python3 -m fogbench -t ../../data/{}; cd -"
                       .format(TEMPLATE_NAME)], shell=True, check=True)
        # Let the readings to be Ingressed
        time.sleep(wait_time)

        # verify stats
        conn = http.client.HTTPConnection(fledge_url)
        conn.request("GET", '/fledge/statistics')
        r = conn.getresponse()
        assert 200 == r.status
        r = r.read().decode()
        jdoc = json.loads(r)
        assert len(jdoc), "No data found"
        stats = utils.serialize_stats_map(jdoc)
        assert 1 == stats[ASSET_NAME.upper()]
        assert 1 == stats['READINGS']

        # Allow stats collector schedule to run i.e. by default 15s
        time.sleep(wait_time * 2 + 1)

        # check stats history
        conn.request("GET", '/fledge/statistics/history')
        r = conn.getresponse()
        assert 200 == r.status
        r = r.read().decode()
        jdoc = json.loads(r)
        assert len(jdoc), "No data found"
        stats_history = jdoc['statistics']

        # READINGS & ASSET_NAME keys and verify no duplicate entry found with value 1
        read = [r['READINGS'] for r in stats_history]
        assert 1 in read
        assert 1 == read.count(1)
        # print(stats_history)
        asset_stats_history = [a for a in stats_history if ASSET_NAME.upper() in a.keys()]
        assert any(ash[ASSET_NAME.upper()] == 1 for ash in asset_stats_history), "Failed to find statistics history " \
                                                                                 "record for " + ASSET_NAME.upper()

        # verify stats history by READINGS key only
        conn.request("GET", '/fledge/statistics/history?key={}'.format('READINGS'))
        r = conn.getresponse()
        assert 200 == r.status
        r = r.read().decode()
        jdoc = json.loads(r)
        assert len(jdoc), "No data found"
        read = [r['READINGS'] for r in jdoc['statistics']]
        assert 1 in read
        assert 1 == read.count(1)

        # verify stats history by ASSET_NAME key only
        conn.request("GET", '/fledge/statistics/history?key={}'.format(ASSET_NAME.upper()))
        r = conn.getresponse()
        assert 200 == r.status
        r = r.read().decode()
        jdoc = json.loads(r)
        assert len(jdoc), "No data found"
        asset = [a[ASSET_NAME.upper()] for a in jdoc['statistics']]
        assert 1 in asset
        assert 1 == asset.count(1)