Example #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)
Example #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)
Example #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)
Example #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'")
Example #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)
Example #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'")
Example #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)
Example #8
0
 def testCreateMissingLBs(self):
     msg = {
         c.ACTION_FIELD: 'UPDATE'
     }
     controller = c(self.logger, self.driver, msg)
     response = controller.run()
     self.assertIn('badRequest', response)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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")
Example #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)
Example #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)
Example #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")
Example #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.")
Example #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.")
Example #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)
Example #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'")
Example #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)
Example #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.")
Example #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)
Example #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.")
Example #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'")
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)