コード例 #1
0
 def setUp(self):
     super(TestOVSFirewallLoggingDriver, self).setUp()
     mock_bridge = mock.patch.object(ovs_lib, 'OVSBridge',
                                     autospec=True).start()
     self.log_driver = ovsfw_log.OVSFirewallLoggingDriver(mock_bridge)
     resource_rpc_mock = mock.patch.object(agent_rpc,
                                           'LoggingApiStub',
                                           autospec=True).start()
     self.log_driver.start_logapp = mock.Mock()
     self.log_driver.initialize(resource_rpc_mock)
     self.log_driver.SUPPORTED_LOGGING_TYPES = ['security_group']
     self.mock_bridge = self.log_driver.int_br
     self.mock_bridge.reset_mock()
     self.fake_ovs_port = FakeOVSPort('port', 1, '00:00:00:00:00:00')
     self.mock_bridge.br.get_vif_port_by_id.return_value = \
         self.fake_ovs_port
     log_data = {
         'context': None,
         'name': 'test1',
         'id': LOG_ID,
         'project_id': PROJECT_ID,
         'event': 'ALL',
         'resource_type': 'security_group'
     }
     self.log_resource = log_object.Log(**log_data)
コード例 #2
0
def _create_log(
    context,
    project_id,
    resource_id=None,
    target_id=None,
    event='ALL',
    enabled=True,
):

    log_data = {
        'id': uuidutils.generate_uuid(),
        'name': 'test',
        'resource_type': 'security_group',
        'project_id': project_id,
        'event': event,
        'enabled': enabled
    }
    if resource_id:
        log_data['resource_id'] = resource_id
    if target_id:
        log_data['target_id'] = target_id
    with n_db_api.CONTEXT_WRITER.using(context):
        _log_obj = log_object.Log(context, **log_data)
        _log_obj.create()
    return _log_obj
コード例 #3
0
ファイル: logging_plugin.py プロジェクト: zxt2012bs/neutron
 def update_log(self, context, log_id, log):
     """Update information for the specified log object"""
     log_data = log['log']
     with db_api.context_manager.writer.using(context):
         log_obj = log_object.Log(context, id=log_id)
         log_obj.update_fields(log_data, reset_changes=True)
         log_obj.update()
     return log_obj
コード例 #4
0
 def test_create_sg_log_with_port(self):
     port_id = self._create_test_port_id(network_id=self._network_id)
     sg_log = log_res.Log(context=self.context,
                          id=uuidutils.generate_uuid(),
                          name='test-create',
                          resource_type='security_group',
                          target_id=port_id,
                          enabled=False)
     sg_log.create()
     self.assertEqual(port_id, sg_log.target_id)
コード例 #5
0
 def test_create_sg_log_with_secgroup(self):
     sg = self._create_test_security_group()
     sg_log = log_res.Log(context=self.context,
                          id=uuidutils.generate_uuid(),
                          name='test-create',
                          resource_type='security_group',
                          resource_id=sg.id,
                          enabled=False)
     sg_log.create()
     self.assertEqual(sg.id, sg_log.resource_id)
コード例 #6
0
ファイル: logging_plugin.py プロジェクト: shivharis/neutron
 def create_log(self, context, log):
     """Create a log object"""
     log_data = log['log']
     with db_api.context_manager.writer.using(context):
         # body 'log' contains both tenant_id and project_id
         # but only latter needs to be used to create Log object.
         # We need to remove redundant keyword.
         log_data.pop('tenant_id', None)
         log_obj = log_object.Log(context=context, **log_data)
         log_obj.create()
     return log_obj
コード例 #7
0
 def update_log(self, context, log_id, log):
     """Update information for the specified log object"""
     log_data = log['log']
     with db_api.context_manager.writer.using(context):
         log_obj = log_object.Log(context, id=log_id)
         log_obj.update_fields(log_data, reset_changes=True)
         log_obj.update()
         need_notify = 'enabled' in log_data
         if need_notify:
             self.driver_manager.call(log_const.UPDATE_LOG_PRECOMMIT,
                                      context, log_obj)
     if need_notify:
         self.driver_manager.call(log_const.UPDATE_LOG, context, log_obj)
     return log_obj
コード例 #8
0
ファイル: logging_plugin.py プロジェクト: zxt2012bs/neutron
 def create_log(self, context, log):
     """Create a log object"""
     log_data = log['log']
     resource_type = log_data['resource_type']
     if resource_type not in self.supported_logging_types:
         raise log_exc.InvalidLogResourceType(resource_type=resource_type)
     validators.validate_request(context, log_data)
     with db_api.context_manager.writer.using(context):
         # body 'log' contains both tenant_id and project_id
         # but only latter needs to be used to create Log object.
         # We need to remove redundant keyword.
         log_data.pop('tenant_id', None)
         log_obj = log_object.Log(context=context, **log_data)
         log_obj.create()
     return log_obj
コード例 #9
0
def _create_log_object(tenant_id, resource_id=None,
                       target_id=None, event='ALL'):

    log_data = {
        'id': uuidutils.generate_uuid(),
        'name': 'fake_log_name',
        'resource_type': FWG,
        'project_id': tenant_id,
        'event': event,
        'enabled': True}
    if resource_id:
        log_data['resource_id'] = resource_id
    if target_id:
        log_data['target_id'] = target_id
    return log_object.Log(**log_data)
コード例 #10
0
ファイル: test_db_api.py プロジェクト: wxl98/neutron
def _create_log(tenant_id, resource_id=None,
                target_id=None, event='ALL', enabled=True,):

    log_data = {
        'id': uuidutils.generate_uuid(),
        'name': 'test',
        'resource_type': 'security_group',
        'project_id': tenant_id,
        'event': event,
        'enabled': enabled}
    if resource_id:
        log_data['resource_id'] = resource_id
    if target_id:
        log_data['target_id'] = target_id
    return log_object.Log(**log_data)
コード例 #11
0
ファイル: logging_plugin.py プロジェクト: zhunzhong/neutron
 def create_log(self, context, log):
     """Create a log object"""
     log_data = log['log']
     self.validator_mgr.validate_request(context, log_data)
     with db_api.context_manager.writer.using(context):
         # body 'log' contains both tenant_id and project_id
         # but only latter needs to be used to create Log object.
         # We need to remove redundant keyword.
         log_data.pop('tenant_id', None)
         log_obj = log_object.Log(context=context, **log_data)
         log_obj.create()
         if log_obj.enabled:
             self.driver_manager.call(log_const.CREATE_LOG_PRECOMMIT,
                                      context, log_obj)
     if log_obj.enabled:
         self.driver_manager.call(log_const.CREATE_LOG, context, log_obj)
     return log_obj
コード例 #12
0
    def _test_update_multiple_fields(self):
        sg_log = log_res.Log(context=self.context,
                             id=uuidutils.generate_uuid(),
                             name='test-create',
                             description='test-description',
                             resource_type='security_group',
                             enabled=False)
        sg_log.create()
        fields = {
            'name': 'test-update',
            'description': 'test-update-descr',
            'enabled': True
        }
        sg_log.update_fields(**fields)
        sg_log.update()

        new_sg_log = log_res.Log.get_object(self.context, id=sg_log.id)
        self._assert_attrs(new_sg_log, **fields)
コード例 #13
0
from neutron.tests.functional.agent import test_firewall

LOG = logging.getLogger(__name__)

load_tests = testscenarios.load_tests_apply_scenarios

FAKE_LOG_ID = 'a2d72369-4246-4f19-bd3c-af51ec8d70cd'
FAKE_PROJECT_ID = 'fake_project'

log_object_dict = {
    'id': FAKE_LOG_ID,
    'resource_type': 'security_group',
    'project_id': FAKE_PROJECT_ID,
    'event': 'ALL'
}
FAKE_LOG_OBJECT = log_object.Log(**log_object_dict)


class LoggingExtensionTestFramework(test_firewall.BaseFirewallTestCase):
    def setUp(self):
        super(LoggingExtensionTestFramework, self).setUp()
        cfg.CONF.set_override('extensions', ['log'], group='agent')
        self.context = neutron_context.get_admin_context_without_session()
        self._set_resource_rpc_mock()
        if self.firewall_name != 'openvswitch':
            self.skipTest("Logging extension doesn't support firewall driver"
                          " %s at that time " % self.firewall_name)
        self.log_driver = self.initialize_ovs_fw_log()

    def initialize_ovs_fw_log(self):
        mock.patch('ryu.base.app_manager.AppManager.get_instance').start()