def testSumListValue2(self): """testSumValores should return the sum of the last 5 values of the list of values""" p = myredis() p.insert_window_size(tenantid, windowsize) expected = ["''", 1111100, 2222200, 3333300, 4444400, '5000000'] p.insert(tenantid, serverid, [serverid, 1, 2, 3, 4, '5']) p.insert(tenantid, serverid, [serverid, 10, 20, 30, 40, '50']) p.insert(tenantid, serverid, [serverid, 100, 200, 300, 400, 500]) p.insert(tenantid, serverid, [serverid, 1000, 2000, 3000, 4000, 5000]) p.insert(tenantid, serverid, [serverid, 10000, 20000, 30000, 40000, 50000]) p.insert(tenantid, serverid, [serverid, 100000, 200000, 300000, 400000, 500000]) p.insert(tenantid, serverid, [serverid, 1000000, 2000000, 3000000, 4000000, 5000000]) li = p.range(tenantid, serverid) result = p.sum(li) self.assertEqual(expected, result.data)
def testMultitenacyData(self): """Test with real data to check if multitenacy is working""" p = myredis() p.insert_window_size(tenantid, windowsize) p.insert_window_size(tenantid2, windowsize) p1 = "[serverId, 1.0, 0.14, 0.25, 0.30, '2014-03-29T19:18:25.784424']" p2 = "[different_server_id, 2.0, 0.48, 0.25, 0.30, '2014-03-29T19:18:26.784424']" expected = ["'serverId'", 1.0, 0.14, 0.25, 0.30, '2014-03-29T19:18:25.784424'] expected2 = ["'different_server_id'", 2.0, 0.48, 0.25, 0.30, '2014-03-29T19:18:26.784424'] p11 = mylist.parselist(p1) p21 = mylist.parselist(p2) p.insert(tenantid, serverid, p11) p.insert(tenantid, serverid, p11) p.insert(tenantid, serverid, p11) p.insert(tenantid, serverid, p11) p.insert(tenantid, serverid, p11) p.insert(tenantid2, serverid2, p21) p.insert(tenantid2, serverid2, p21) p.insert(tenantid2, serverid2, p21) p.insert(tenantid2, serverid2, p21) p.insert(tenantid2, serverid2, p21) result = p.media(p.range(tenantid, serverid), windowsize) result2 = p.media(p.range(tenantid2, serverid2), windowsize) self.assertEqual(expected, result.data) self.assertEqual(expected2, result2.data)
def testSumZeroValue(self): """testSumValores should return the sum of a list of values""" p = myredis() expected = '[]' result = p.sum(p.range(tenantid, serverid)) self.assertEqual(expected, result)
def testGetWidowSizeOfAnUnexistingTenant(self): """test should return an empty list retriving a window size of an unexisting tenant.""" p = myredis() expectedvalue = [] result = p.get_windowsize(tenantid) self.assertEqual(expectedvalue, result)
def testInsertListWithMoreThanFiveElements(self): """testInsertOneElement should always return [] due to we insert a list with more than 5 elements""" p = myredis() expectedvalue = [] p.insert(tenantid, serverid, [serverid, 1, 2, 3, 4, 5, 6]) result = p.range(tenantid, serverid) self.assertEqual(expectedvalue, result)
def testInsertListWithOneElement(self): """testInsertOneElement should always return [] due to we insert a list with no elements""" p = myredis() expectedvalue = [] p.insert(tenantid, serverid, [1]) result = p.range(tenantid, serverid) self.assertEqual(expectedvalue, result)
def testGetWindowSize(self): """test should return a window size of a given tenant.""" p = myredis() expectedvalue = ["4"] p.insert_window_size(tenantid, 4) result = p.get_windowsize(tenantid) self.assertEqual(expectedvalue, result)
def testInsertListWithFiveElements(self): """testInsertListWithFiveElements should return a list with the element inserted""" p = myredis() p.insert_window_size(tenantid, windowsize) expectedvalue = ["['', 1, 2, 3, 4, 5]"] p.insert(tenantid, serverid, [serverid, 1, 2, 3, 4, 5]) result = p.range(tenantid, serverid) self.assertEqual(expectedvalue, result)
def testInsertTwoCorrectElements(self): """testInsertTwoElement should always return two element in the list""" p = myredis() p.insert_window_size(tenantid, windowsize) expectedvalue = ["['', 1, 2, 3, 4, 5]", "['', 7, 8, 9, 10, 11]"] p.insert(tenantid, serverid, [serverid, 1, 2, 3, 4, 5]) p.insert(tenantid, serverid, [serverid, 7, 8, 9, 10, 11]) result = p.range(tenantid, serverid) self.assertEqual(expectedvalue, result)
def testSumOneValue(self): """testSumValores should return the sum of a list of values""" p = myredis() p.insert_window_size(tenantid, windowsize) expected = [["''", 1.0, 2.0, 3.0, 4.0, '5']] p.insert(tenantid, serverid, [serverid, 1, 2, 3, 4, 5]) result = p.sum(p.range(tenantid, serverid)) self.assertEqual(expected, result.data)
def testGetWindowSize_diferent_tenants(self): """test should return the window size of different tenant to check multitenacy""" p = myredis() expectedvalue1 = ["4"] expectedvalue2 = ["5"] p.insert_window_size(tenantid, 4) p.insert_window_size(tenantid2, 5) result = p.get_windowsize(tenantid) result2 = p.get_windowsize(tenantid2) self.assertEqual(expectedvalue1, result) self.assertEqual(expectedvalue2, result2)
def testRealData(self): """Test with real data""" p = myredis() p1 = "[1.0, 0.14, 0.25, 0.30, '2014-03-29T19:18:25.784424']" expected = [] p2 = mylist.parselist(p1) p.insert(tenantid, serverid, p2) p.insert(tenantid, serverid, p2) result = p.media(p.range(tenantid, serverid), windowsize) self.assertEqual(expected, result.data)
def testSumListValue(self): """testSumValores should return the sum of a list of values""" p = myredis() p.insert_window_size(tenantid, windowsize) expected = ["''", 4, 8, 12, 16, '5'] p.insert(tenantid, serverid, [serverid, 1, 2, 3, 4, 5]) p.insert(tenantid, serverid, [serverid, 1, 2, 3, 4, 5]) p.insert(tenantid, serverid, [serverid, 1, 2, 3, 4, 5]) p.insert(tenantid, serverid, [serverid, 1, 2, 3, 4, 5]) li = p.range(tenantid, serverid) result = p.sum(li) self.assertEqual(expected, result.data)
def testInsertGTFiveElement(self): """testInsertGTFiveElement should always return five element if we have five or more than five element in the list""" p = myredis() p.insert_window_size(tenantid, windowsize) expectedvalue = ["['', 6, 7, 8, 9, '10']", "['', 11, 12, 13, 14, '15']", "['', 16, 17, 18, 19, '20']", "['', 21, 22, 23, 24, '25']", "['', 26, 27, 28, 29, '30']"] p.insert(tenantid, serverid, [serverid, 1, 2, 3, 4, '5']) p.insert(tenantid, serverid, [serverid, 6, 7, 8, 9, '10']) p.insert(tenantid, serverid, [serverid, 11, 12, 13, 14, '15']) p.insert(tenantid, serverid, [serverid, 16, 17, 18, 19, '20']) p.insert(tenantid, serverid, [serverid, 21, 22, 23, 24, '25']) p.insert(tenantid, serverid, [serverid, 26, 27, 28, 29, '30']) result = p.range(tenantid, serverid) self.assertEqual(expectedvalue, result)
def testMediaListof4Values(self): """ return the media of a list of 4 values with window size in a list """ p = myredis() p.insert_window_size(tenantid, windowsize) expected = ["''", 10.8, 11.8, 12.8, 14, '25'] p.insert(tenantid, serverid, [serverid, 0, 1, 2, 4, 5]) p.insert(tenantid, serverid, [serverid, 6, 7, 8, 9, 10]) p.insert(tenantid, serverid, [serverid, 11, 12, 13, 14, 15]) p.insert(tenantid, serverid, [serverid, 16, 17, 18, 19, 20]) p.insert(tenantid, serverid, [serverid, 21, 22, 23, 24, 25]) li = p.range(tenantid, serverid) result = p.media(li, windowsize_list) self.assertEqual(expected, result.data)
def testInsertGTFiveElement(self): """testInsertGTFiveElement should always return five element if we have five or more than five element in the list""" p = myredis() p.insert_window_size(tenantid, windowsize) expectedvalue = [ "['', 6, 7, 8, 9, '10']", "['', 11, 12, 13, 14, '15']", "['', 16, 17, 18, 19, '20']", "['', 21, 22, 23, 24, '25']", "['', 26, 27, 28, 29, '30']" ] p.insert(tenantid, serverid, [serverid, 1, 2, 3, 4, '5']) p.insert(tenantid, serverid, [serverid, 6, 7, 8, 9, '10']) p.insert(tenantid, serverid, [serverid, 11, 12, 13, 14, '15']) p.insert(tenantid, serverid, [serverid, 16, 17, 18, 19, '20']) p.insert(tenantid, serverid, [serverid, 21, 22, 23, 24, '25']) p.insert(tenantid, serverid, [serverid, 26, 27, 28, 29, '30']) result = p.range(tenantid, serverid) self.assertEqual(expectedvalue, result)
def testCheckTimeStampInvalid(self): """Test if the time stamp of the new element is invalid comparing to the last element.""" p = myredis() p.insert_window_size(tenantid, windowsize) p1 = "['serverId', 1.0, 0.14, 0.25, 0.30, '2014-03-29T19:18:25.784424']" p2 = "['serverId', 1.0, 0.14, 0.25, 0.30, '2014-03-29T19:18:30.784424']" p3 = "['serverId', 1.0, 0.14, 0.25, 0.30, '2014-03-29T19:18:35.784424']" p4 = "['serverId', 1.0, 0.14, 0.25, 0.30, '2014-03-29T19:18:40.784424']" p5 = ['serverId', 1.0, 0.14, 0.25, 0.30, '2014-03-30T19:18:45.784424'] expected = False p.insert(tenantid, serverid, mylist.parselist(p1)) p.insert(tenantid, serverid, mylist.parselist(p2)) p.insert(tenantid, serverid, mylist.parselist(p3)) p.insert(tenantid, serverid, mylist.parselist(p4)) result = p.check_time_stamps(tenantid, serverid, p.range(tenantid, serverid), p5) self.assertEqual(expected, result)
def testMultitenacyData(self): """Test with real data to check if multitenacy is working""" p = myredis() p.insert_window_size(tenantid, windowsize) p.insert_window_size(tenantid2, windowsize) p1 = "[serverId, 1.0, 0.14, 0.25, 0.30, '2014-03-29T19:18:25.784424']" p2 = "[different_server_id, 2.0, 0.48, 0.25, 0.30, '2014-03-29T19:18:26.784424']" expected = [ "'serverId'", 1.0, 0.14, 0.25, 0.30, '2014-03-29T19:18:25.784424' ] expected2 = [ "'different_server_id'", 2.0, 0.48, 0.25, 0.30, '2014-03-29T19:18:26.784424' ] p11 = mylist.parselist(p1) p21 = mylist.parselist(p2) p.insert(tenantid, serverid, p11) p.insert(tenantid, serverid, p11) p.insert(tenantid, serverid, p11) p.insert(tenantid, serverid, p11) p.insert(tenantid, serverid, p11) p.insert(tenantid2, serverid2, p21) p.insert(tenantid2, serverid2, p21) p.insert(tenantid2, serverid2, p21) p.insert(tenantid2, serverid2, p21) p.insert(tenantid2, serverid2, p21) result = p.media(p.range(tenantid, serverid), windowsize) result2 = p.media(p.range(tenantid2, serverid2), windowsize) self.assertEqual(expected, result.data) self.assertEqual(expected2, result2.data)
__version_info__ = tuple([int(num) for num in __version__.split('.')]) gevent.monkey.patch_all() content_type = JSON_TYPE from facts.config import config, cfg_filename, cfg_defaults """Flask server initialization. Uses Redis server as a message queue and server exchange with the fiware-cloto. """ app = Flask(__name__) """ Initialize the redis connection library """ mredis = myredis() """ Initialize the mysql connection library """ myClotoDBClient = cloto_db_client.cloto_db_client() """ Initialize the pid of the process """ pid = 0 # Flask/Gevent server need to send {'serverId': 'serverId', 'cpu': 80, 'mem': 80, 'time': '2014-03-24 16:21:29.384631'} # to the topic @app.route('/v1.0', methods=['GET'])
gevent.monkey.patch_all() content_type = 'application/json' from facts.config import config, cfg_filename, cfg_defaults """Flask server initialization. Uses Redis server as a message queue and server exchange with the fiware-cloto. """ app = Flask(__name__) """ Initialize the redis connection library """ mredis = myredis() """ Initialize the mysql connection library """ myClotoDBClient = cloto_db_client.cloto_db_client() """ Initialize the pid of the process """ pid = 0 # Flask/Gevent server need to send {'serverId': 'serverId', 'cpu': 80, 'mem': 80, 'time': '2014-03-24 16:21:29.384631'} # to the topic