コード例 #1
0
    def test_port_tuple_update_invalid_port_config(self):
        """
        Port Tuple update failure scenario: Port config construction failure.

        """
        # Create a test Service Instance.
        si = self.__create_test_si()

        #Create first Port Tuple.
        pt = test_utils.create_test_port_tuple(
            'fake-domain:fake-project:fake-si-uuid:fake-port-tuple', si.uuid)

        # Stash orginal port config construction function.
        self.orig_port_config_fn = self.pt_agent.get_port_config

        # Mock port config construction to return None.
        self.pt_agent.get_port_config = mock.MagicMock(return_value=None)

        # Invoke port tuple update. Update should fail with error.
        self.pt_agent.update_port_tuple(pt_id=pt.uuid)

        # Verify failure is logged.
        self.logger.debug.assert_called_with( \
             'Failed to construct port config for Port Tuple fake-port-tuple', \
             svc_monitor.sandesh.port_tuple.ttypes.PortTupleDebugLog)

        # Restore the port config construction function.
        self.pt_agent.get_port_config = self.orig_port_config_fn

        # Remove the failed port tuple from DB.
        test_utils.delete_test_port_tuple(pt)
コード例 #2
0
    def test_port_tuple_update_invalid_vmi(self):
        """
        Port Tuple update failure scenario: Invalid VMI.

        """
        # Create a test Service Instance.
        si = self.__create_test_si()

        #Create a Port Tuple.
        pt = test_utils.create_test_port_tuple(
            'fake-domain:fake-project:fake-si-uuid:fake-port-tuple', si.uuid)

        # Create test virtual machines inteface for the Port Tuple.
        lvmi = self.__create_test_vmi(pt, 'left')

        # Delete the VMI from VMI db, so a lookup for that will fail.
        test_utils.delete_test_vmi(lvmi)
        pt.virtual_machine_interfaces.add(lvmi.uuid)

        # Update Port Tuple. This will fail due to VMI lookup failure.
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple')

        # Verify failure is logged.
        self.logger.debug.assert_called_with( \
             'VMI fake-vmi-uuid-left not found for Port Tuple fake-port-tuple', \
             svc_monitor.sandesh.port_tuple.ttypes.PortTupleDebugLog)

        # Remove the failed port tuple from DB.
        test_utils.delete_test_port_tuple(pt)
コード例 #3
0
    def test_port_tuple_update_invalid_port_config(self):
        """
        Port Tuple update failure scenario: Port config construction failure.

        """
        # Create a test Service Instance.
        si = self.__create_test_si()

        #Create first Port Tuple.
        pt = test_utils.create_test_port_tuple(
                      'fake-domain:fake-project:fake-si-uuid:fake-port-tuple',
                      si.uuid)

        # Stash orginal port config construction function.
        self.orig_port_config_fn = self.pt_agent.get_port_config

        # Mock port config construction to return None.
        self.pt_agent.get_port_config = mock.MagicMock(return_value=None)

        # Invoke port tuple update. Update should fail with error.
        self.pt_agent.update_port_tuple(pt_id = pt.uuid)

        # Verify failure is logged.
        self.logger.debug.assert_called_with( \
             'Failed to construct port config for Port Tuple fake-port-tuple', \
             svc_monitor.sandesh.port_tuple.ttypes.PortTupleDebugLog)

        # Restore the port config construction function.
        self.pt_agent.get_port_config = self.orig_port_config_fn

        # Remove the failed port tuple from DB.
        test_utils.delete_test_port_tuple(pt)
コード例 #4
0
    def test_port_tuple_update_invalid_vmi(self):
        """
        Port Tuple update failure scenario: Invalid VMI.

        """
        # Create a test Service Instance.
        si = self.__create_test_si()

        #Create a Port Tuple.
        pt = test_utils.create_test_port_tuple(
                       'fake-domain:fake-project:fake-si-uuid:fake-port-tuple',
                       si.uuid)

        # Create test virtual machines inteface for the Port Tuple.
        lvmi = self.__create_test_vmi(pt, 'left')

        # Delete the VMI from VMI db, so a lookup for that will fail.
        test_utils.delete_test_vmi(lvmi)
        pt.virtual_machine_interfaces.add(lvmi.uuid)

        # Update Port Tuple. This will fail due to VMI lookup failure.
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple')

        # Verify failure is logged.
        self.logger.debug.assert_called_with( \
             'VMI fake-vmi-uuid-left not found for Port Tuple fake-port-tuple', \
             svc_monitor.sandesh.port_tuple.ttypes.PortTupleDebugLog)

        # Remove the failed port tuple from DB.
        test_utils.delete_test_port_tuple(pt)
コード例 #5
0
    def test_port_tuple_update_invalid_vmi_params(self):
        """
        Port Tuple update failure scenarios: Invalid VMI parameters.

        """
        # Create a test Service Instance.
        si = self.__create_test_si()

        #Create a Port Tuple.
        pt = test_utils.create_test_port_tuple(
            'fake-domain:fake-project:fake-si-uuid:fake-port-tuple', si.uuid)

        # Create test virtual machines inteface for the Port Tuple.
        lvmi = self.__create_test_vmi(pt, 'left')
        lvmi.params = {}

        # Update Port Tuple. Update should fail due to invalid VMI params.
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple')

        # Verify failure is logged.
        self.logger.debug.assert_called_with( \
            'VMI fake-vmi-uuid-left has invalid params for Port Tuple fake-port-tuple', \
            svc_monitor.sandesh.port_tuple.ttypes.PortTupleDebugLog)

        # Remove the failed port tuple from DB.
        test_utils.delete_test_port_tuple(pt)
コード例 #6
0
    def test_port_tuple_update_invalid_vmi_params(self):
        """
        Port Tuple update failure scenarios: Invalid VMI parameters.

        """
        # Create a test Service Instance.
        si = self.__create_test_si()

        #Create a Port Tuple.
        pt = test_utils.create_test_port_tuple(
                       'fake-domain:fake-project:fake-si-uuid:fake-port-tuple',
                       si.uuid)

        # Create test virtual machines inteface for the Port Tuple.
        lvmi = self.__create_test_vmi(pt, 'left')
        lvmi.params = {}

        # Update Port Tuple. Update should fail due to invalid VMI params.
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple')

        # Verify failure is logged.
        self.logger.debug.assert_called_with( \
            'VMI fake-vmi-uuid-left has invalid params for Port Tuple fake-port-tuple', \
            svc_monitor.sandesh.port_tuple.ttypes.PortTupleDebugLog)

        # Remove the failed port tuple from DB.
        test_utils.delete_test_port_tuple(pt)
コード例 #7
0
    def test_two_vm_port_tuple_create(self):
        """
        Verify multiple (two) Port Tuple creates for a service instance.

        """

        # Create a test Service Instance.
        si = self.__create_test_si()

        #Create first Port Tuple.
        pt1 = test_utils.create_test_port_tuple(
            'fake-domain:fake-project:fake-si-uuid:fake-port-tuple1', si.uuid)

        # Create the two virtual machines intefaces for the Port Tuple.
        lvmi1 = self.__create_test_vmi(pt1, 'left', 'left1')
        rvmi1 = self.__create_test_vmi(pt1, 'right', 'right1')

        # Update frist Port Tuple.
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple1')

        # Create second Port Tuple.
        pt2 = test_utils.create_test_port_tuple(
            'fake-domain:fake-project:fake-si-uuid:fake-port-tuple2', si.uuid)

        # Create the two virtual machines intefaces for the Port Tuple.
        lvmi2 = self.__create_test_vmi(pt2, 'left', 'left2')
        rvmi2 = self.__create_test_vmi(pt2, 'right', 'right2')

        # Update second Port Tuple.
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple2')

        # Validate the expected API invocations.
        self.mocked_vnc.ref_update.assert_any_call(
            'instance-ip', 'fake-iip-uuid', 'virtual-machine-interface',
            lvmi1.uuid, None, 'ADD')

        self.mocked_vnc.ref_update.assert_any_call(
            'instance-ip', 'fake-iip-uuid', 'virtual-machine-interface',
            rvmi1.uuid, None, 'ADD')

        self.mocked_vnc.ref_update.assert_any_call(
            'instance-ip', 'fake-iip-uuid', 'virtual-machine-interface',
            lvmi2.uuid, None, 'ADD')

        self.mocked_vnc.ref_update.assert_any_call(
            'instance-ip', 'fake-iip-uuid', 'virtual-machine-interface',
            rvmi2.uuid, None, 'ADD')

        self.mocked_vnc.ref_update.assert_any_call('service-instance', si.uuid,
                                                   'instance-ip',
                                                   'fake-iip-uuid', None,
                                                   'ADD',
                                                   ServiceInterfaceTag('left'))

        self.mocked_vnc.ref_update.assert_any_call(
            'service-instance', si.uuid, 'instance-ip', 'fake-iip-uuid', None,
            'ADD', ServiceInterfaceTag('right'))
        test_utils.delete_test_port_tuple(pt1)
        test_utils.delete_test_port_tuple(pt2)
コード例 #8
0
    def test_update_port_static_route(self):
        """
        Verify that we are able to add / delete static routes on a port
        through Port Tuple update.

        """

        # Create a test Service Instance.
        si = self.__create_test_si()

        #Create a Port Tuple.
        pt = test_utils.create_test_port_tuple(
                       'fake-domain:fake-project:fake-si-uuid:fake-port-tuple',
                       si.uuid)

        # Create the two virtual machines intefaces for the Port Tuple.
        lvmi = self.__create_test_vmi(pt, 'left')
        rvmi = self.__create_test_vmi(pt, 'right')

        #
        # Test ADD of interface route table
        #

        # Create the interface-route-table object.
        irt_obj = self.__create_interface_route_table(si, 'left')

        # Update Port Tuple.
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple')

        # Validate the expected ADD API invocations.
        self.mocked_vnc.ref_update.assert_any_call(
                            'virtual-machine-interface', lvmi.uuid,
                            'interface-route-table', irt_obj.uuid,
                            None, 'ADD')

        #
        # Test DELETE of interface route table
        #

        # Remove the irt from service-instance.
        del si.interface_route_tables[irt_obj.uuid]

        # Simulate the case where irt is attached to the vmi.
        lvmi.interface_route_tables = {irt_obj.uuid}

        # Update Port Tuple.
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple')

        # Validate the expected DELETE API invocation.
        self.mocked_vnc.ref_update.assert_any_call(
                            'virtual-machine-interface', lvmi.uuid,
                            'interface-route-table', irt_obj.uuid,
                            None, 'DELETE')
        test_utils.delete_test_port_tuple(pt)
コード例 #9
0
    def test_update_port_static_route(self):
        """
        Verify that we are able to add / delete static routes on a port
        through Port Tuple update.

        """

        # Create a test Service Instance.
        si = self.__create_test_si()

        #Create a Port Tuple.
        pt = test_utils.create_test_port_tuple(
            'fake-domain:fake-project:fake-si-uuid:fake-port-tuple', si.uuid)

        # Create the two virtual machines intefaces for the Port Tuple.
        lvmi = self.__create_test_vmi(pt, 'left')
        rvmi = self.__create_test_vmi(pt, 'right')

        #
        # Test ADD of interface route table
        #

        # Create the interface-route-table object.
        irt_obj = self.__create_interface_route_table(si, 'left')

        # Update Port Tuple.
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple')

        # Validate the expected ADD API invocations.
        self.mocked_vnc.ref_update.assert_any_call('virtual-machine-interface',
                                                   lvmi.uuid,
                                                   'interface-route-table',
                                                   irt_obj.uuid, None, 'ADD')

        #
        # Test DELETE of interface route table
        #

        # Remove the irt from service-instance.
        del si.interface_route_tables[irt_obj.uuid]

        # Simulate the case where irt is attached to the vmi.
        lvmi.interface_route_tables = {irt_obj.uuid}

        # Update Port Tuple.
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple')

        # Validate the expected DELETE API invocation.
        self.mocked_vnc.ref_update.assert_any_call('virtual-machine-interface',
                                                   lvmi.uuid,
                                                   'interface-route-table',
                                                   irt_obj.uuid, None,
                                                   'DELETE')
        test_utils.delete_test_port_tuple(pt)
コード例 #10
0
    def test_vmi_delete_service_health_check(self):
        """
        Verify that we are able to delete service health check from an
        interface.

        """

        # Create a test Service Instance.
        si = self.__create_test_si()
        st = self.__get_service_template(si)

        #Create a Port Tuple.
        pt = test_utils.create_test_port_tuple(
                       'fake-domain:fake-project:fake-si-uuid:fake-port-tuple',
                       si.uuid)

        # Create the two virtual machines intefaces for the Port Tuple.
        lvmi = self.__create_test_vmi(pt, 'left')
        rvmi = self.__create_test_vmi(pt, 'right')


        # Create ServiceHealthCheck object.
        test_utils.create_test_service_health_check(
                                              'fake-domain:fake-project:lhiip',
                                              si.uuid)

        # Create and attach a service-health-check iip on the vmi under test.
        iip_name  = si.uuid + '-' + 'left-v4-health-check-' + 'llip'
        iip_fq_name = 'fake-domain:fake-project:' + iip_name
        iip = test_utils.create_test_iip(iip_fq_name)
        iip.virtual_machine_interfaces = {lvmi.uuid}
        iip.service_health_check_ip = True
        lvmi.service_health_checks = ['lhiip']
        lvmi.instance_ips = [iip.uuid]

        # Update Port Tuple.
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple')

        # Validate the expected DELETE API invocations.

        self.mocked_vnc.ref_update.assert_any_call(
                                'virtual-machine-interface', lvmi.uuid,
                                'service-health-check', 'lhiip',
                                None, 'DELETE')

        self.mocked_vnc.ref_update.assert_any_call(
                                'instance-ip', 'fake-iip-uuid',
                                'virtual-machine-interface', lvmi.uuid,
                                None, 'DELETE')
        test_utils.delete_test_port_tuple(pt)
コード例 #11
0
    def test_vmi_delete_service_health_check(self):
        """
        Verify that we are able to delete service health check from an
        interface.

        """

        # Create a test Service Instance.
        si = self.__create_test_si()
        st = self.__get_service_template(si)

        #Create a Port Tuple.
        pt = test_utils.create_test_port_tuple(
            'fake-domain:fake-project:fake-si-uuid:fake-port-tuple', si.uuid)

        # Create the two virtual machines intefaces for the Port Tuple.
        lvmi = self.__create_test_vmi(pt, 'left')
        rvmi = self.__create_test_vmi(pt, 'right')

        # Create ServiceHealthCheck object.
        test_utils.create_test_service_health_check(
            'fake-domain:fake-project:lhiip', si.uuid)

        # Create and attach a service-health-check iip on the vmi under test.
        iip_name = si.uuid + '-' + 'left-v4-health-check-' + 'llip'
        iip_fq_name = 'fake-domain:fake-project:' + iip_name
        iip = test_utils.create_test_iip(iip_fq_name)
        iip.virtual_machine_interfaces = {lvmi.uuid}
        iip.service_health_check_ip = True
        lvmi.service_health_checks = ['lhiip']
        lvmi.instance_ips = [iip.uuid]

        # Update Port Tuple.
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple')

        # Validate the expected DELETE API invocations.

        self.mocked_vnc.ref_update.assert_any_call('virtual-machine-interface',
                                                   lvmi.uuid,
                                                   'service-health-check',
                                                   'lhiip', None, 'DELETE')

        self.mocked_vnc.ref_update.assert_any_call(
            'instance-ip', 'fake-iip-uuid', 'virtual-machine-interface',
            lvmi.uuid, None, 'DELETE')
        test_utils.delete_test_port_tuple(pt)
コード例 #12
0
    def test_port_tuple_vmi_update(self):
        """
        Validate that updating Port Tuple with VMI, results in
        VNC api invocation with expected parameters.

        """
        # Create a test Service Instance.
        si = self.__create_test_si()

        #Create a Port Tuple.
        pt = test_utils.create_test_port_tuple(
            'fake-domain:fake-project:fake-si-uuid:fake-port-tuple',
            si.uuid)

        # Create the two virtual machines intefaces for the Port Tuple.
        lvmi = self.__create_test_vmi(pt, 'left')
        rvmi = self.__create_test_vmi(pt, 'right')

        # Invoke Port Tuple update with created vmi's
        self.pt_agent.update_vmi_port_tuples(lvmi)
        self.pt_agent.update_vmi_port_tuples(rvmi)

        # Validate the expected API invocations.
        self.mocked_vnc.ref_update.assert_any_call(
                                    'instance-ip', 'fake-iip-uuid',
                                    'virtual-machine-interface', lvmi.uuid,
                                    None, 'ADD')

        self.mocked_vnc.ref_update.assert_any_call(
                                    'instance-ip', 'fake-iip-uuid',
                                    'virtual-machine-interface', rvmi.uuid,
                                    None, 'ADD')

        self.mocked_vnc.ref_update.assert_any_call(
                                    'service-instance', si.uuid,
                                    'instance-ip', 'fake-iip-uuid',
                                    None, 'ADD',
                                    ServiceInterfaceTag('left'))

        self.mocked_vnc.ref_update.assert_any_call(
                                    'service-instance', si.uuid,
                                    'instance-ip', 'fake-iip-uuid',
                                    None, 'ADD',
                                    ServiceInterfaceTag('right'))
        test_utils.delete_test_port_tuple(pt)
コード例 #13
0
    def test_single_vm_port_tuple_create(self):
        """
        Verify Port Tuple create for a service instance.

        """

        # Create a test Service Instance.
        si = self.__create_test_si()

        #Create a Port Tuple.
        pt = test_utils.create_test_port_tuple(
                       'fake-domain:fake-project:fake-si-uuid:fake-port-tuple',
                       si.uuid)

        # Create the two virtual machines intefaces for the Port Tuple.
        lvmi = self.__create_test_vmi(pt, 'left')
        rvmi = self.__create_test_vmi(pt, 'right')

        # Update Port Tuple.
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple')

        # Validate the expected API invocations.
        self.mocked_vnc.ref_update.assert_any_call(
                                     'instance-ip', 'fake-iip-uuid',
                                     'virtual-machine-interface', lvmi.uuid,
                                     None, 'ADD')

        self.mocked_vnc.ref_update.assert_any_call(
                                     'instance-ip', 'fake-iip-uuid',
                                     'virtual-machine-interface', rvmi.uuid,
                                     None, 'ADD')

        self.mocked_vnc.ref_update.assert_any_call(
                                     'service-instance', si.uuid,
                                     'instance-ip', 'fake-iip-uuid',
                                     None, 'ADD',
                                     ServiceInterfaceTag('left'))

        self.mocked_vnc.ref_update.assert_any_call(
                                     'service-instance', si.uuid,
                                     'instance-ip', 'fake-iip-uuid',
                                     None, 'ADD',
                                     ServiceInterfaceTag('right'))
        test_utils.delete_test_port_tuple(pt)
コード例 #14
0
    def test_vmi_add_service_health_check(self):
        """
        Verify that we are able to add service health check on an
        interface.

        """

        # Create a test Service Instance.
        si = self.__create_test_si()
        st = self.__get_service_template(si)

        #Create a Port Tuple.
        pt = test_utils.create_test_port_tuple(
                       'fake-domain:fake-project:fake-si-uuid:fake-port-tuple',
                       si.uuid)

        # Create the two virtual machines intefaces for the Port Tuple.
        lvmi = self.__create_test_vmi(pt, 'left')
        rvmi = self.__create_test_vmi(pt, 'right')

        # Create ServiceHealthCheck object.
        test_utils.create_test_service_health_check(
                                              'fake-domain:fake-project:lhiip',
                                              si.uuid)

        # Enable ServiceHealthCheck on test SI.
        si.service_health_checks['lhiip'] = {'interface_type':'left'}

        # Update Port Tuple.
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple')

        # Validate the expected ADD API invocations.
        self.mocked_vnc.ref_update.assert_any_call(
                            'virtual-machine-interface', lvmi.uuid,
                            'service-health-check', 'lhiip',
                            None, 'ADD')

        self.mocked_vnc.ref_update.assert_any_call(
                            'instance-ip', 'fake-iip-uuid',
                            'virtual-machine-interface', lvmi.uuid,
                            None, 'ADD')
        test_utils.delete_test_port_tuple(pt)
コード例 #15
0
    def test_port_tuple_update_invalid_si(self):
        """
        Port Tuple update failure scenario: Service instance not found.

        """

        # Create a Port Tuple without a valid service instance.
        pt = test_utils.create_test_port_tuple(
                       'fake-domain:fake-project:fake-si-uuid:fake-port-tuple',
                       'invalid-si')

        # Invoke port tuple update. Update should fail with error.
        self.pt_agent.update_port_tuple(pt_id = pt.uuid)

        # Verify failure is logged.
        self.logger.debug.assert_called_with('Service Instance invalid-si not found', \
                               svc_monitor.sandesh.port_tuple.ttypes.PortTupleDebugLog)

        # Remove the failed port tuple from DB.
        test_utils.delete_test_port_tuple(pt)
コード例 #16
0
    def test_port_tuple_update_invalid_si(self):
        """
        Port Tuple update failure scenario: Service instance not found.

        """

        # Create a Port Tuple without a valid service instance.
        pt = test_utils.create_test_port_tuple(
            'fake-domain:fake-project:fake-si-uuid:fake-port-tuple',
            'invalid-si')

        # Invoke port tuple update. Update should fail with error.
        self.pt_agent.update_port_tuple(pt_id=pt.uuid)

        # Verify failure is logged.
        self.logger.debug.assert_called_with('Service Instance invalid-si not found', \
                               svc_monitor.sandesh.port_tuple.ttypes.PortTupleDebugLog)

        # Remove the failed port tuple from DB.
        test_utils.delete_test_port_tuple(pt)
コード例 #17
0
    def test_port_tuple_vmi_update(self):
        """
        Validate that updating Port Tuple with VMI, results in
        VNC api invocation with expected parameters.

        """
        # Create a test Service Instance.
        si = self.__create_test_si()

        #Create a Port Tuple.
        pt = test_utils.create_test_port_tuple(
            'fake-domain:fake-project:fake-si-uuid:fake-port-tuple', si.uuid)

        # Create the two virtual machines intefaces for the Port Tuple.
        lvmi = self.__create_test_vmi(pt, 'left')
        rvmi = self.__create_test_vmi(pt, 'right')

        # Invoke Port Tuple update with created vmi's
        self.pt_agent.update_vmi_port_tuples(lvmi)
        self.pt_agent.update_vmi_port_tuples(rvmi)

        # Validate the expected API invocations.
        self.mocked_vnc.ref_update.assert_any_call(
            'instance-ip', 'fake-iip-uuid', 'virtual-machine-interface',
            lvmi.uuid, None, 'ADD')

        self.mocked_vnc.ref_update.assert_any_call(
            'instance-ip', 'fake-iip-uuid', 'virtual-machine-interface',
            rvmi.uuid, None, 'ADD')

        self.mocked_vnc.ref_update.assert_any_call('service-instance', si.uuid,
                                                   'instance-ip',
                                                   'fake-iip-uuid', None,
                                                   'ADD',
                                                   ServiceInterfaceTag('left'))

        self.mocked_vnc.ref_update.assert_any_call(
            'service-instance', si.uuid, 'instance-ip', 'fake-iip-uuid', None,
            'ADD', ServiceInterfaceTag('right'))
        test_utils.delete_test_port_tuple(pt)
コード例 #18
0
    def test_vmi_add_service_health_check(self):
        """
        Verify that we are able to add service health check on an
        interface.

        """

        # Create a test Service Instance.
        si = self.__create_test_si()
        st = self.__get_service_template(si)

        #Create a Port Tuple.
        pt = test_utils.create_test_port_tuple(
            'fake-domain:fake-project:fake-si-uuid:fake-port-tuple', si.uuid)

        # Create the two virtual machines intefaces for the Port Tuple.
        lvmi = self.__create_test_vmi(pt, 'left')
        rvmi = self.__create_test_vmi(pt, 'right')

        # Create ServiceHealthCheck object.
        test_utils.create_test_service_health_check(
            'fake-domain:fake-project:lhiip', si.uuid)

        # Enable ServiceHealthCheck on test SI.
        si.service_health_checks['lhiip'] = {'interface_type': 'left'}

        # Update Port Tuple.
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple')

        # Validate the expected ADD API invocations.
        self.mocked_vnc.ref_update.assert_any_call('virtual-machine-interface',
                                                   lvmi.uuid,
                                                   'service-health-check',
                                                   'lhiip', None, 'ADD')

        self.mocked_vnc.ref_update.assert_any_call(
            'instance-ip', 'fake-iip-uuid', 'virtual-machine-interface',
            lvmi.uuid, None, 'ADD')
        test_utils.delete_test_port_tuple(pt)
コード例 #19
0
    def test_multiple_si_service_health_check_common_vmi(self):
        """
        Verify that we are able to add service health check on an
        interface.

        """
        # Create a test Service Instance.
        si1 = self.__create_test_si(name='fake-si1-uuid')
        si2 = self.__create_test_si(name='fake-si2-uuid')
        si3 = self.__create_test_si(name='fake-si3-uuid')

        # Create ServiceHealthCheck object.
        test_utils.create_test_service_health_check(
            'fake-domain:fake-project:rhiip1', si1.uuid)
        test_utils.create_test_service_health_check(
            'fake-domain:fake-project:rhiip2', si2.uuid)
        test_utils.create_test_service_health_check(
            'fake-domain:fake-project:rhiip3', si3.uuid)

        # Enable ServiceHealthCheck on test SI.
        si1.service_health_checks['rhiip1'] = {'interface_type': 'right'}
        si2.service_health_checks['rhiip2'] = {'interface_type': 'right'}
        si3.service_health_checks['rhiip3'] = {'interface_type': 'right'}

        #Create a Port Tuple.
        pt1 = test_utils.create_test_port_tuple(
            'fake-domain:fake-project:fake-si1-uuid:fake-port-tuple1',
            si1.uuid)
        l1vmi = self.__create_test_vmi(pt1, 'left', 'left1')
        rvmi = self.__create_test_vmi(pt1, 'right', 'right1')

        pt2 = test_utils.create_test_port_tuple(
            'fake-domain:fake-project:fake-si2-uuid:fake-port-tuple2',
            si2.uuid)
        l2vmi = self.__create_test_vmi(pt2, 'left', 'left2')
        pt2.virtual_machine_interfaces.add(rvmi.uuid)
        rvmi.port_tuples.add(pt2.uuid)

        pt3 = test_utils.create_test_port_tuple(
            'fake-domain:fake-project:fake-si3-uuid:fake-port-tuple3',
            si3.uuid)
        l3vmi = self.__create_test_vmi(pt3, 'left', 'left3')
        pt3.virtual_machine_interfaces.add(rvmi.uuid)
        rvmi.port_tuples.add(pt3.uuid)

        # Update PortTuple
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple1')
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple2')
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple3')

        # Validate the expected ADD API invocations.
        self.mocked_vnc.ref_update.assert_any_call('virtual-machine-interface',
                                                   rvmi.uuid,
                                                   'service-health-check',
                                                   'rhiip1', None, 'ADD')
        self.mocked_vnc.ref_update.assert_any_call('virtual-machine-interface',
                                                   rvmi.uuid,
                                                   'service-health-check',
                                                   'rhiip2', None, 'ADD')
        self.mocked_vnc.ref_update.assert_any_call('virtual-machine-interface',
                                                   rvmi.uuid,
                                                   'service-health-check',
                                                   'rhiip3', None, 'ADD')
        self.mocked_vnc.ref_update.assert_any_call(
            'instance-ip', 'fake-iip-uuid', 'virtual-machine-interface',
            rvmi.uuid, None, 'ADD')
        self.mocked_vnc.ref_update.assert_any_call(
            'instance-ip', 'fake-iip-uuid', 'virtual-machine-interface',
            rvmi.uuid, None, 'ADD')
        self.mocked_vnc.ref_update.assert_any_call(
            'instance-ip', 'fake-iip-uuid', 'virtual-machine-interface',
            rvmi.uuid, None, 'ADD')
        test_utils.delete_test_port_tuple(pt1)
        test_utils.delete_test_port_tuple(pt2)
        test_utils.delete_test_port_tuple(pt3)
コード例 #20
0
    def test_multiple_si_service_health_check_common_vmi(self):
        """
        Verify that we are able to add service health check on an
        interface.

        """
        # Create a test Service Instance.
        si1 = self.__create_test_si(name='fake-si1-uuid')
        si2 = self.__create_test_si(name='fake-si2-uuid')
        si3 = self.__create_test_si(name='fake-si3-uuid')

        # Create ServiceHealthCheck object.
        test_utils.create_test_service_health_check(
                                              'fake-domain:fake-project:rhiip1',
                                              si1.uuid)
        test_utils.create_test_service_health_check(
                                              'fake-domain:fake-project:rhiip2',
                                              si2.uuid)
        test_utils.create_test_service_health_check(
                                              'fake-domain:fake-project:rhiip3',
                                              si3.uuid)

        # Enable ServiceHealthCheck on test SI.
        si1.service_health_checks['rhiip1'] = {'interface_type':'right'}
        si2.service_health_checks['rhiip2'] = {'interface_type':'right'}
        si3.service_health_checks['rhiip3'] = {'interface_type':'right'}

        #Create a Port Tuple.
        pt1 = test_utils.create_test_port_tuple(
                       'fake-domain:fake-project:fake-si1-uuid:fake-port-tuple1',
                       si1.uuid)
        l1vmi = self.__create_test_vmi(pt1, 'left', 'left1')
        rvmi = self.__create_test_vmi(pt1, 'right', 'right1')

        pt2 = test_utils.create_test_port_tuple(
                       'fake-domain:fake-project:fake-si2-uuid:fake-port-tuple2',
                       si2.uuid)
        l2vmi = self.__create_test_vmi(pt2, 'left', 'left2')
        pt2.virtual_machine_interfaces.add(rvmi.uuid)
        rvmi.port_tuples.add(pt2.uuid)

        pt3 = test_utils.create_test_port_tuple(
                       'fake-domain:fake-project:fake-si3-uuid:fake-port-tuple3',
                       si3.uuid)
        l3vmi = self.__create_test_vmi(pt3, 'left', 'left3')
        pt3.virtual_machine_interfaces.add(rvmi.uuid)
        rvmi.port_tuples.add(pt3.uuid)

        # Update PortTuple
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple1')
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple2')
        self.pt_agent.update_port_tuple(pt_id='fake-port-tuple3')

        # Validate the expected ADD API invocations.
        self.mocked_vnc.ref_update.assert_any_call(
                            'virtual-machine-interface', rvmi.uuid,
                            'service-health-check', 'rhiip1',
                            None, 'ADD')
        self.mocked_vnc.ref_update.assert_any_call(
                            'virtual-machine-interface', rvmi.uuid,
                            'service-health-check', 'rhiip2',
                            None, 'ADD')
        self.mocked_vnc.ref_update.assert_any_call(
                            'virtual-machine-interface', rvmi.uuid,
                            'service-health-check', 'rhiip3',
                            None, 'ADD')
        self.mocked_vnc.ref_update.assert_any_call(
                            'instance-ip', 'fake-iip-uuid',
                            'virtual-machine-interface', rvmi.uuid,
                            None, 'ADD')
        self.mocked_vnc.ref_update.assert_any_call(
                            'instance-ip', 'fake-iip-uuid',
                            'virtual-machine-interface', rvmi.uuid,
                            None, 'ADD')
        self.mocked_vnc.ref_update.assert_any_call(
                            'instance-ip', 'fake-iip-uuid',
                            'virtual-machine-interface', rvmi.uuid,
                            None, 'ADD')
        test_utils.delete_test_port_tuple(pt1)
        test_utils.delete_test_port_tuple(pt2)
        test_utils.delete_test_port_tuple(pt3)