Exemplo n.º 1
0
    def testArchiveSwiftRequiredParams(self):
        null_driver = LoadBalancerDriver()

        # Missing basepath field
        msg = {
            c.ACTION_FIELD: 'ARCHIVE',
            c.OBJ_STORE_TYPE_FIELD: 'Swift',
            c.OBJ_STORE_ENDPOINT_FIELD: "https://example.com",
            c.OBJ_STORE_TOKEN_FIELD: "XXXX",
            c.LBLIST_FIELD: [{'protocol': 'http', 'id': '123'}]
        }
        controller = c(self.logger, null_driver, msg)
        response = controller.run()
        self.assertIn('badRequest', response)

        # Missing endpoint field
        msg = {
            c.ACTION_FIELD: 'ARCHIVE',
            c.OBJ_STORE_TYPE_FIELD: 'Swift',
            c.OBJ_STORE_BASEPATH_FIELD: "/lbaaslogs",
            c.OBJ_STORE_TOKEN_FIELD: "XXXX",
            c.LBLIST_FIELD: [{'protocol': 'http', 'id': '123'}]
        }
        controller = c(self.logger, null_driver, msg)
        response = controller.run()
        self.assertIn('badRequest', response)

        # Missing token field
        msg = {
            c.ACTION_FIELD: 'ARCHIVE',
            c.OBJ_STORE_TYPE_FIELD: 'Swift',
            c.OBJ_STORE_BASEPATH_FIELD: "/lbaaslogs",
            c.OBJ_STORE_ENDPOINT_FIELD: "https://example.com",
            c.LBLIST_FIELD: [{'protocol': 'http', 'id': '123'}]
        }
        controller = c(self.logger, null_driver, msg)
        response = controller.run()
        self.assertIn('badRequest', response)

        # Missing load balancer field
        msg = {
            c.ACTION_FIELD: 'ARCHIVE',
            c.OBJ_STORE_TYPE_FIELD: 'Swift',
            c.OBJ_STORE_BASEPATH_FIELD: "/lbaaslogs",
            c.OBJ_STORE_ENDPOINT_FIELD: "https://example.com",
            c.OBJ_STORE_TOKEN_FIELD: "XXXX"
        }
        controller = c(self.logger, null_driver, msg)
        response = controller.run()
        self.assertIn('badRequest', response)
Exemplo n.º 2
0
 def testUpdateGoodMonitor(self):
     msg = {
         c.ACTION_FIELD: 'UPDATE',
         c.LBLIST_FIELD: [
             {
                 'protocol': 'http',
                 'nodes': [
                     {
                         'id': 1234,
                         'address': '10.0.0.1',
                         'port': 80
                     }
                 ],
                 'monitor': {
                     'type': 'CONNECT',
                     'delay': 60,
                     'timeout': 30,
                     'attempts': 1,
                     'path': '/healthcheck'
                 }
             }
         ]
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertNotIn('badRequest', response)
     self.assertEqual(response[c.RESPONSE_FIELD], c.RESPONSE_SUCCESS)
Exemplo n.º 3
0
 def testUpdateMissingLBs(self):
     msg = {c.ACTION_FIELD: 'UPDATE'}
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
     msg = response['badRequest']['validationErrors']['message']
     self.assertEqual(msg, "Missing '%s' element" % c.LBLIST_FIELD)
Exemplo n.º 4
0
 def testUpdateMonitorMissingAttempts(self):
     msg = {
         c.ACTION_FIELD:
         'UPDATE',
         c.LBLIST_FIELD: [{
             'protocol':
             'http',
             'nodes': [{
                 'id': 1234,
                 'address': '10.0.0.1',
                 'port': 80
             }],
             'monitor': {
                 'type': 'CONNECT',
                 'delay': 60,
                 'timeout': 30,
                 'path': '/healthcheck'
             }
         }]
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
     msg = response['badRequest']['validationErrors']['message']
     self.assertEqual(msg, "Missing monitor value 'attempts'")
Exemplo n.º 5
0
 def testUpdateMonitorMissingPath(self):
     msg = {
         c.ACTION_FIELD: 'UPDATE',
         c.LBLIST_FIELD: [
             {
                 'protocol': 'http',
                 'nodes': [
                     {
                         'id': 1234,
                         'address': '10.0.0.1',
                         'port': 80
                     }
                 ],
                 'monitor': {
                     'type': 'CONNECT',
                     'delay': 60,
                     'timeout': 30,
                     'attempts': 1
                 }
             }
         ]
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn(c.RESPONSE_FIELD, response)
     self.assertEquals(response[c.RESPONSE_FIELD], c.RESPONSE_SUCCESS)
Exemplo n.º 6
0
 def testUpdateMonitorMissingAttempts(self):
     msg = {
         c.ACTION_FIELD: 'UPDATE',
         c.LBLIST_FIELD: [
             {
                 'protocol': 'http',
                 'nodes': [
                     {
                         'id': 1234,
                         'address': '10.0.0.1',
                         'port': 80
                     }
                 ],
                 'monitor': {
                     'type': 'CONNECT',
                     'delay': 60,
                     'timeout': 30,
                     'path': '/healthcheck'
                 }
             }
         ]
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
     msg = response['badRequest']['validationErrors']['message']
     self.assertEquals(msg, "Missing monitor value 'attempts'")
Exemplo n.º 7
0
 def testUpdateGoodMonitor(self):
     msg = {
         c.ACTION_FIELD:
         'UPDATE',
         c.LBLIST_FIELD: [{
             'protocol':
             'http',
             'nodes': [{
                 'id': 1234,
                 'address': '10.0.0.1',
                 'port': 80
             }],
             'monitor': {
                 'type': 'CONNECT',
                 'delay': 60,
                 'timeout': 30,
                 'attempts': 1,
                 'path': '/healthcheck'
             }
         }]
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertNotIn('badRequest', response)
     self.assertEqual(response[c.RESPONSE_FIELD], c.RESPONSE_SUCCESS)
Exemplo n.º 8
0
 def testCreateMissingLBs(self):
     msg = {
         c.ACTION_FIELD: 'UPDATE'
     }
     controller = c(self.logger, self.driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
Exemplo n.º 9
0
 def testDelete(self):
     msg = {
         c.ACTION_FIELD: 'DELETE'
     }
     controller = c(self.logger, self.driver, msg)
     response = controller.run()
     self.assertIn(c.RESPONSE_FIELD, response)
     self.assertEquals(response[c.RESPONSE_FIELD], c.RESPONSE_SUCCESS)
Exemplo n.º 10
0
 def testEnable(self):
     msg = {
         c.ACTION_FIELD: 'ENABLE'
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn(c.RESPONSE_FIELD, response)
     self.assertEquals(response[c.RESPONSE_FIELD], c.RESPONSE_SUCCESS)
Exemplo n.º 11
0
 def testCreateMissingNodes(self):
     msg = {
         c.ACTION_FIELD: 'UPDATE',
         c.LBLIST_FIELD: [{'protocol': 'http'}]
     }
     controller = c(self.logger, self.driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
Exemplo n.º 12
0
 def testArchiveMissingMethod(self):
     msg = {
         c.ACTION_FIELD: 'ARCHIVE'
     }
     null_driver = LoadBalancerDriver()
     controller = c(self.logger, null_driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
Exemplo n.º 13
0
 def testCaseSensitive(self):
     msg = {
         c.ACTION_FIELD: 'UPDATE',
         'LoAdBaLaNcErS': [{'protocol': 'http'}]
     }
     controller = c(self.logger, self.driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
Exemplo n.º 14
0
 def testArchiveMissingMethod(self):
     msg = {c.ACTION_FIELD: 'ARCHIVE'}
     null_driver = LoadBalancerDriver()
     controller = c(null_driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
     msg = response['badRequest']['validationErrors']['message']
     self.assertEqual(msg, "Missing '%s' element" % c.OBJ_STORE_TYPE_FIELD)
Exemplo n.º 15
0
 def testSuspend(self):
     msg = {
         c.ACTION_FIELD: 'SUSPEND'
     }
     controller = c(self.logger, self.driver, msg)
     response = controller.run()
     self.assertIn(c.RESPONSE_FIELD, response)
     self.assertEquals(response[c.RESPONSE_FIELD], c.RESPONSE_SUCCESS)
Exemplo n.º 16
0
 def testBadAction(self):
     msg = {
         c.ACTION_FIELD: 'BOGUS'
     }
     controller = c(self.logger, self.driver, msg)
     response = controller.run()
     self.assertIn(c.RESPONSE_FIELD, response)
     self.assertEquals(response[c.RESPONSE_FIELD], c.RESPONSE_FAILURE)
Exemplo n.º 17
0
 def testUpdateMissingLBs(self):
     msg = {
         c.ACTION_FIELD: 'UPDATE'
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
     msg = response['badRequest']['validationErrors']['message']
     self.assertEquals(msg, "Missing '%s' element" % c.LBLIST_FIELD)
Exemplo n.º 18
0
 def testDiscover(self):
     msg = {c.ACTION_FIELD: 'DISCOVER'}
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn('version', response)
     self.assertIn('release', response)
     self.assertEqual(response[c.RESPONSE_FIELD], c.RESPONSE_SUCCESS)
     self.assertEqual(response['version'], libra_version)
     self.assertEqual(response['release'], libra_release)
Exemplo n.º 19
0
 def testArchiveInvalidMethod(self):
     msg = {
         c.ACTION_FIELD: 'ARCHIVE',
         c.OBJ_STORE_TYPE_FIELD: 'bad'
     }
     null_driver = LoadBalancerDriver()
     controller = c(self.logger, null_driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
Exemplo n.º 20
0
 def testCaseSensitive(self):
     msg = {
         c.ACTION_FIELD: 'UPDATE',
         'LoAdBaLaNcErS': [{
             'protocol': 'http'
         }]
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
Exemplo n.º 21
0
 def testUpdateMissingNodes(self):
     msg = {
         c.ACTION_FIELD: 'UPDATE',
         c.LBLIST_FIELD: [{'protocol': 'http'}]
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
     msg = response['badRequest']['validationErrors']['message']
     self.assertEquals(msg, "Missing 'nodes' element")
Exemplo n.º 22
0
 def testArchiveMissingMethod(self):
     msg = {
         c.ACTION_FIELD: 'ARCHIVE'
     }
     null_driver = LoadBalancerDriver()
     controller = c(null_driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
     msg = response['badRequest']['validationErrors']['message']
     self.assertEquals(msg, "Missing '%s' element" % c.OBJ_STORE_TYPE_FIELD)
Exemplo n.º 23
0
 def testDiscover(self):
     msg = {
         c.ACTION_FIELD: 'DISCOVER'
     }
     controller = c(self.logger, self.driver, msg)
     response = controller.run()
     self.assertIn('version', response)
     self.assertIn('release', response)
     self.assertEquals(response[c.RESPONSE_FIELD], c.RESPONSE_SUCCESS)
     self.assertEquals(response['version'], libra_version)
     self.assertEquals(response['release'], libra_release)
Exemplo n.º 24
0
 def testUpdateMissingNodes(self):
     msg = {
         c.ACTION_FIELD: 'UPDATE',
         c.LBLIST_FIELD: [{
             'protocol': 'http'
         }]
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
     msg = response['badRequest']['validationErrors']['message']
     self.assertEqual(msg, "Missing 'nodes' element")
Exemplo n.º 25
0
 def testArchiveNotImplemented(self):
     msg = {
         c.ACTION_FIELD: 'ARCHIVE',
         c.OBJ_STORE_TYPE_FIELD: 'Swift',
         c.OBJ_STORE_BASEPATH_FIELD: "/lbaaslogs",
         c.OBJ_STORE_ENDPOINT_FIELD: "https://example.com",
         c.OBJ_STORE_TOKEN_FIELD: "XXXX",
         c.LBLIST_FIELD: [{'protocol': 'http', 'id': '123'}]
     }
     null_driver = LoadBalancerDriver()
     controller = c(self.logger, null_driver, msg)
     response = controller.run()
     self.assertEquals(response[c.RESPONSE_FIELD], c.RESPONSE_FAILURE)
     self.assertIn(c.ERROR_FIELD, response)
     self.assertEquals(response[c.ERROR_FIELD],
                       "Selected driver does not support ARCHIVE action.")
Exemplo n.º 26
0
 def testUpdateMissingProto(self):
     msg = {
         c.ACTION_FIELD:
         'UPDATE',
         c.LBLIST_FIELD: [{
             'nodes': [{
                 'id': 1234,
                 'address': '10.0.0.1',
                 'port': 80
             }]
         }]
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
     msg = response['badRequest']['validationErrors']['message']
     self.assertEquals(msg, "Missing required 'protocol' value.")
Exemplo n.º 27
0
 def testCreateMissingProto(self):
     msg = {
         c.ACTION_FIELD: 'UPDATE',
         c.LBLIST_FIELD: [
             {
                 'nodes': [
                     {
                         'address': '10.0.0.1',
                         'port': 80
                     }
                 ]
             }
         ]
     }
     controller = c(self.logger, self.driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
Exemplo n.º 28
0
 def testUpdateMissingNodeID(self):
     msg = {
         c.ACTION_FIELD:
         'UPDATE',
         c.LBLIST_FIELD: [{
             'protocol': 'http',
             'nodes': [{
                 'address': '10.0.0.1',
                 'port': 80
             }]
         }]
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
     msg = response['badRequest']['validationErrors']['message']
     self.assertEqual(msg, "Missing node 'id'")
Exemplo n.º 29
0
 def testUpdate(self):
     msg = {
         c.ACTION_FIELD:
         'UPDATE',
         c.LBLIST_FIELD: [{
             'protocol':
             'http',
             'nodes': [{
                 'id': 1234,
                 'address': '10.0.0.1',
                 'port': 80
             }]
         }]
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn(c.RESPONSE_FIELD, response)
     self.assertEqual(response[c.RESPONSE_FIELD], c.RESPONSE_SUCCESS)
Exemplo n.º 30
0
 def testArchiveNotImplemented(self):
     msg = {
         c.ACTION_FIELD: 'ARCHIVE',
         c.OBJ_STORE_TYPE_FIELD: 'Swift',
         c.OBJ_STORE_BASEPATH_FIELD: "/lbaaslogs",
         c.OBJ_STORE_ENDPOINT_FIELD: "https://example.com",
         c.OBJ_STORE_TOKEN_FIELD: "XXXX",
         c.LBLIST_FIELD: [{
             'protocol': 'http',
             'id': '123'
         }]
     }
     null_driver = LoadBalancerDriver()
     controller = c(null_driver, msg)
     response = controller.run()
     self.assertEqual(response[c.RESPONSE_FIELD], c.RESPONSE_FAILURE)
     self.assertIn(c.ERROR_FIELD, response)
     self.assertEqual(response[c.ERROR_FIELD],
                      "Selected driver does not support ARCHIVE action.")
Exemplo n.º 31
0
 def testUpdate(self):
     msg = {
         c.ACTION_FIELD: 'UPDATE',
         c.LBLIST_FIELD: [
             {
                 'protocol': 'http',
                 'nodes': [
                     {
                         'address': '10.0.0.1',
                         'port': 80
                     }
                 ]
             }
         ]
     }
     controller = c(self.logger, self.driver, msg)
     response = controller.run()
     self.assertIn(c.RESPONSE_FIELD, response)
     self.assertEquals(response[c.RESPONSE_FIELD], c.RESPONSE_SUCCESS)
Exemplo n.º 32
0
 def testUpdateMissingProto(self):
     msg = {
         c.ACTION_FIELD: 'UPDATE',
         c.LBLIST_FIELD: [
             {
                 'nodes': [
                     {
                         'id': 1234,
                         'address': '10.0.0.1',
                         'port': 80
                     }
                 ]
             }
         ]
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
     msg = response['badRequest']['validationErrors']['message']
     self.assertEqual(msg, "Missing required 'protocol' value.")
Exemplo n.º 33
0
 def testUpdateMissingNodeID(self):
     msg = {
         c.ACTION_FIELD: 'UPDATE',
         c.LBLIST_FIELD: [
             {
                 'protocol': 'http',
                 'nodes': [
                     {
                         'address': '10.0.0.1',
                         'port': 80
                     }
                 ]
             }
         ]
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
     msg = response['badRequest']['validationErrors']['message']
     self.assertEquals(msg, "Missing node 'id'")
Exemplo n.º 34
0
 def testBadAlgorithm(self):
     msg = {
         c.ACTION_FIELD:
         'UPDATE',
         c.LBLIST_FIELD: [{
             'protocol':
             'http',
             'algorithm':
             'BOGUS',
             'nodes': [{
                 'id': 1234,
                 'address': '10.0.0.1',
                 'port': 80
             }]
         }]
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn(c.RESPONSE_FIELD, response)
     self.assertEquals(response[c.RESPONSE_FIELD], c.RESPONSE_FAILURE)
Exemplo n.º 35
0
 def testBadAlgorithm(self):
     msg = {
         c.ACTION_FIELD: 'UPDATE',
         c.LBLIST_FIELD: [
             {
                 'protocol': 'http',
                 'algorithm': 'BOGUS',
                 'nodes': [
                     {
                         'id': 1234,
                         'address': '10.0.0.1',
                         'port': 80
                     }
                 ]
             }
         ]
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn(c.RESPONSE_FIELD, response)
     self.assertEquals(response[c.RESPONSE_FIELD], c.RESPONSE_FAILURE)
Exemplo n.º 36
0
 def testUpdateMonitorMissingPath(self):
     msg = {
         c.ACTION_FIELD:
         'UPDATE',
         c.LBLIST_FIELD: [{
             'protocol':
             'http',
             'nodes': [{
                 'id': 1234,
                 'address': '10.0.0.1',
                 'port': 80
             }],
             'monitor': {
                 'type': 'CONNECT',
                 'delay': 60,
                 'timeout': 30,
                 'attempts': 1
             }
         }]
     }
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn(c.RESPONSE_FIELD, response)
     self.assertEquals(response[c.RESPONSE_FIELD], c.RESPONSE_SUCCESS)
Exemplo n.º 37
0
 def testDelete(self):
     msg = {c.ACTION_FIELD: 'DELETE'}
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn(c.RESPONSE_FIELD, response)
     self.assertEqual(response[c.RESPONSE_FIELD], c.RESPONSE_SUCCESS)
Exemplo n.º 38
0
 def testSuspend(self):
     msg = {c.ACTION_FIELD: 'SUSPEND'}
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn(c.RESPONSE_FIELD, response)
     self.assertEqual(response[c.RESPONSE_FIELD], c.RESPONSE_SUCCESS)
Exemplo n.º 39
0
    def testArchiveSwiftRequiredParams(self):
        null_driver = LoadBalancerDriver()

        # Missing basepath field
        msg = {
            c.ACTION_FIELD: 'ARCHIVE',
            c.OBJ_STORE_TYPE_FIELD: 'Swift',
            c.OBJ_STORE_ENDPOINT_FIELD: "https://example.com",
            c.OBJ_STORE_TOKEN_FIELD: "XXXX",
            c.LBLIST_FIELD: [{
                'protocol': 'http',
                'id': '123'
            }]
        }
        controller = c(null_driver, msg)
        response = controller.run()
        self.assertIn('badRequest', response)
        msg = response['badRequest']['validationErrors']['message']
        self.assertEqual(msg,
                         "Missing '%s' element" % c.OBJ_STORE_BASEPATH_FIELD)

        # Missing endpoint field
        msg = {
            c.ACTION_FIELD: 'ARCHIVE',
            c.OBJ_STORE_TYPE_FIELD: 'Swift',
            c.OBJ_STORE_BASEPATH_FIELD: "/lbaaslogs",
            c.OBJ_STORE_TOKEN_FIELD: "XXXX",
            c.LBLIST_FIELD: [{
                'protocol': 'http',
                'id': '123'
            }]
        }
        controller = c(null_driver, msg)
        response = controller.run()
        self.assertIn('badRequest', response)
        msg = response['badRequest']['validationErrors']['message']
        self.assertEqual(msg,
                         "Missing '%s' element" % c.OBJ_STORE_ENDPOINT_FIELD)

        # Missing token field
        msg = {
            c.ACTION_FIELD: 'ARCHIVE',
            c.OBJ_STORE_TYPE_FIELD: 'Swift',
            c.OBJ_STORE_BASEPATH_FIELD: "/lbaaslogs",
            c.OBJ_STORE_ENDPOINT_FIELD: "https://example.com",
            c.LBLIST_FIELD: [{
                'protocol': 'http',
                'id': '123'
            }]
        }
        controller = c(null_driver, msg)
        response = controller.run()
        self.assertIn('badRequest', response)
        msg = response['badRequest']['validationErrors']['message']
        self.assertEqual(msg, "Missing '%s' element" % c.OBJ_STORE_TOKEN_FIELD)

        # Missing load balancer field
        msg = {
            c.ACTION_FIELD: 'ARCHIVE',
            c.OBJ_STORE_TYPE_FIELD: 'Swift',
            c.OBJ_STORE_BASEPATH_FIELD: "/lbaaslogs",
            c.OBJ_STORE_ENDPOINT_FIELD: "https://example.com",
            c.OBJ_STORE_TOKEN_FIELD: "XXXX"
        }
        controller = c(null_driver, msg)
        response = controller.run()
        self.assertIn('badRequest', response)
        msg = response['badRequest']['validationErrors']['message']
        self.assertEqual(msg, "Missing '%s' element" % c.LBLIST_FIELD)
Exemplo n.º 40
0
 def testArchiveInvalidMethod(self):
     msg = {c.ACTION_FIELD: 'ARCHIVE', c.OBJ_STORE_TYPE_FIELD: 'bad'}
     null_driver = LoadBalancerDriver()
     controller = c(null_driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
Exemplo n.º 41
0
 def testBadAction(self):
     msg = {c.ACTION_FIELD: 'BOGUS'}
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn(c.RESPONSE_FIELD, response)
     self.assertEqual(response[c.RESPONSE_FIELD], c.RESPONSE_FAILURE)
Exemplo n.º 42
0
 def testEnable(self):
     msg = {c.ACTION_FIELD: 'ENABLE'}
     controller = c(self.driver, msg)
     response = controller.run()
     self.assertIn(c.RESPONSE_FIELD, response)
     self.assertEquals(response[c.RESPONSE_FIELD], c.RESPONSE_SUCCESS)