Ejemplo n.º 1
0
    def test_router_interface_validate(self):
        def find_rsrc(resource, name_or_id, cmd_resource=None):
            id_mapping = {
                'router': 'ae478782-53c0-4434-ab16-49900c88016c',
                'subnet': '8577cafd-8e98-4059-a2e6-8a771b4d318e',
                'port': '9577cafd-8e98-4059-a2e6-8a771b4d318e'
            }
            return id_mapping.get(resource)

        self.find_rsrc_mock.side_effect = find_rsrc

        t = template_format.parse(neutron_template)
        json = t['resources']['router_interface']
        json['properties'] = {
            'router_id': 'ae478782-53c0-4434-ab16-49900c88016c',
            'subnet_id': '8577cafd-8e98-4059-a2e6-8a771b4d318e',
            'port_id': '9577cafd-8e98-4059-a2e6-8a771b4d318e'
        }
        stack = utils.parse_stack(t)
        resource_defns = stack.t.resource_definitions(stack)
        res = router.RouterInterface('router_interface',
                                     resource_defns['router_interface'], stack)
        self.assertRaises(exception.ResourcePropertyConflict, res.validate)
        json['properties'] = {
            'router_id': 'ae478782-53c0-4434-ab16-49900c88016c',
            'port_id': '9577cafd-8e98-4059-a2e6-8a771b4d318e'
        }
        stack = utils.parse_stack(t)
        resource_defns = stack.t.resource_definitions(stack)
        res = router.RouterInterface('router_interface',
                                     resource_defns['router_interface'], stack)
        self.assertIsNone(res.validate())
        json['properties'] = {
            'router_id': 'ae478782-53c0-4434-ab16-49900c88016c',
            'subnet_id': '8577cafd-8e98-4059-a2e6-8a771b4d318e'
        }
        stack = utils.parse_stack(t)
        resource_defns = stack.t.resource_definitions(stack)
        res = router.RouterInterface('router_interface',
                                     resource_defns['router_interface'], stack)
        self.assertIsNone(res.validate())
        json['properties'] = {
            'router_id': 'ae478782-53c0-4434-ab16-49900c88016c'
        }
        stack = utils.parse_stack(t)
        resource_defns = stack.t.resource_definitions(stack)
        res = router.RouterInterface('router_interface',
                                     resource_defns['router_interface'], stack)
        ex = self.assertRaises(exception.PropertyUnspecifiedError,
                               res.validate)
        self.assertEqual(
            "At least one of the following properties "
            "must be specified: subnet, port.", six.text_type(ex))
Ejemplo n.º 2
0
 def create_router_interface(self, t, stack, resource_name,
                             properties=None):
     properties = properties or {}
     t['resources'][resource_name]['properties'] = properties
     resource_defns = stack.t.resource_definitions(stack)
     rsrc = router.RouterInterface(
         'router_interface',
         resource_defns[resource_name],
         stack)
     scheduler.TaskRunner(rsrc.create)()
     self.assertEqual((rsrc.CREATE, rsrc.COMPLETE), rsrc.state)
     return rsrc
Ejemplo n.º 3
0
 def test_router_interface_validate(self):
     neutronV20.find_resourceid_by_name_or_id(
         mox.IsA(neutronclient.Client),
         'port',
         '9577cafd-8e98-4059-a2e6-8a771b4d318e',
         cmd_resource=None,
     ).MultipleTimes().AndReturn('9577cafd-8e98-4059-a2e6-8a771b4d318e')
     neutronV20.find_resourceid_by_name_or_id(
         mox.IsA(neutronclient.Client),
         'router',
         'ae478782-53c0-4434-ab16-49900c88016c',
         cmd_resource=None,
     ).MultipleTimes().AndReturn('ae478782-53c0-4434-ab16-49900c88016c')
     neutronV20.find_resourceid_by_name_or_id(
         mox.IsA(neutronclient.Client),
         'subnet',
         '9577cafd-8e98-4059-a2e6-8a771b4d318e',
         cmd_resource=None,
     ).MultipleTimes().AndReturn('9577cafd-8e98-4059-a2e6-8a771b4d318e')
     self.m.ReplayAll()
     t = template_format.parse(neutron_template)
     json = t['resources']['router_interface']
     json['properties'] = {
         'router_id': 'ae478782-53c0-4434-ab16-49900c88016c',
         'subnet_id': '9577cafd-8e98-4059-a2e6-8a771b4d318e',
         'port_id': '9577cafd-8e98-4059-a2e6-8a771b4d318e'}
     stack = utils.parse_stack(t)
     resource_defns = stack.t.resource_definitions(stack)
     res = router.RouterInterface('router_interface',
                                  resource_defns['router_interface'],
                                  stack)
     self.assertRaises(exception.ResourcePropertyConflict, res.validate)
     json['properties'] = {
         'router_id': 'ae478782-53c0-4434-ab16-49900c88016c',
         'port_id': '9577cafd-8e98-4059-a2e6-8a771b4d318e'}
     stack = utils.parse_stack(t)
     resource_defns = stack.t.resource_definitions(stack)
     res = router.RouterInterface('router_interface',
                                  resource_defns['router_interface'],
                                  stack)
     self.assertIsNone(res.validate())
     json['properties'] = {
         'router_id': 'ae478782-53c0-4434-ab16-49900c88016c',
         'subnet_id': '9577cafd-8e98-4059-a2e6-8a771b4d318e'}
     stack = utils.parse_stack(t)
     resource_defns = stack.t.resource_definitions(stack)
     res = router.RouterInterface('router_interface',
                                  resource_defns['router_interface'],
                                  stack)
     self.assertIsNone(res.validate())
     json['properties'] = {
         'router_id': 'ae478782-53c0-4434-ab16-49900c88016c'}
     stack = utils.parse_stack(t)
     resource_defns = stack.t.resource_definitions(stack)
     res = router.RouterInterface('router_interface',
                                  resource_defns['router_interface'],
                                  stack)
     ex = self.assertRaises(exception.PropertyUnspecifiedError,
                            res.validate)
     self.assertEqual("At least one of the following properties "
                      "must be specified: subnet, port.",
                      six.text_type(ex))
     self.m.VerifyAll()