예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
    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)
예제 #6
0
    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)
예제 #7
0
    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)
예제 #8
0
    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)
예제 #9
0
    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)
예제 #10
0
    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)
예제 #11
0
    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)
예제 #12
0
    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)
예제 #13
0
    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)
예제 #14
0
    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)
예제 #15
0
    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)
예제 #16
0
    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)
예제 #17
0
    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)
예제 #18
0
    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)
예제 #19
0
    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)
예제 #20
0
    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)
예제 #21
0
    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)
예제 #22
0
    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)
예제 #23
0
    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)
예제 #24
0
    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)
예제 #25
0
    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)
예제 #26
0
    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)
예제 #27
0
    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)
예제 #28
0
    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)
예제 #29
0
    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)
예제 #30
0
    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)
예제 #31
0
    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)
예제 #32
0
    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)
예제 #33
0
__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'])
예제 #34
0
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