本文整理汇总了Python中networking_odl.db.db.create_pending_row函数的典型用法代码示例。如果您正苦于以下问题:Python create_pending_row函数的具体用法?Python create_pending_row怎么用?Python create_pending_row使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了create_pending_row函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _test_dependency_processing
def _test_dependency_processing(
self, test_operation, test_object, test_id, test_context,
dep_operation, dep_object, dep_id, dep_context):
# Mock sendjson to verify that it never gets called.
mock_sendjson = mock.patch.object(client.OpenDaylightRestClient,
'sendjson').start()
# Create dependency db row and mark as 'processing' so it won't
# be processed by the journal thread.
db.create_pending_row(self.db_session, dep_object,
dep_id, dep_operation, dep_context)
row = db.get_all_db_rows_by_state(self.db_session, 'pending')
db.update_pending_db_row_processing(self.db_session, row[0])
# Create test row with dependent ID.
db.create_pending_row(self.db_session, test_object,
test_id, test_operation, test_context)
# Call journal thread.
with mock.patch.object(self.thread.event, 'wait',
return_value=False):
self.thread.sync_pending_row(exit_after_run=True)
# Verify that dependency row is still set at 'processing'.
rows = db.get_all_db_rows_by_state(self.db_session, 'processing')
self.assertEqual(1, len(rows))
# Verify that the test row was processed and set back to 'pending'
# to be processed again.
rows = db.get_all_db_rows_by_state(self.db_session, 'pending')
self.assertEqual(1, len(rows))
# Verify that _json_data was not called.
self.assertFalse(mock_sendjson.call_count)
示例2: test_get_oldest_pending_row_returns_parent_when_dep_pending
def test_get_oldest_pending_row_returns_parent_when_dep_pending(self):
db.create_pending_row(self.db_context, *self.UPDATE_ROW)
parent_row = db.get_all_db_rows(self.db_context)[0]
db.create_pending_row(self.db_context, *self.UPDATE_ROW,
depending_on=[parent_row])
row = db.get_oldest_pending_db_row_with_lock(self.db_context)
self.assertEqual(parent_row, row)
示例3: delete_floatingip
def delete_floatingip(self, context, floatingip_id):
session = db_api.get_session()
with session.begin(subtransactions=True):
super(OpenDaylightL3RouterPlugin, self).delete_floatingip(
context, floatingip_id)
db.create_pending_row(context.session, odl_const.ODL_FLOATINGIP,
floatingip_id, odl_const.ODL_DELETE, None)
示例4: _test_update_row_state
def _test_update_row_state(self, from_state, to_state, dry_flush=False):
# add new pending row
db.create_pending_row(self.db_context, *self.UPDATE_ROW)
mock_flush = mock.MagicMock(
side_effect=self.db_context.session.flush)
if dry_flush:
patch_flush = mock.patch.object(self.db_context.session,
'flush',
side_effect=mock_flush)
row = db.get_all_db_rows(self.db_context)[0]
for state in [from_state, to_state]:
if dry_flush:
patch_flush.start()
try:
# update the row state
db.update_db_row_state(self.db_context, row, state,
flush=not dry_flush)
finally:
if dry_flush:
patch_flush.stop()
# validate the new state
row = db.get_all_db_rows(self.db_context)[0]
self.assertEqual(state, row.state)
return mock_flush
示例5: delete_subnet_precommit
def delete_subnet_precommit(self, context):
# Use the journal row's data field to store parent object
# uuids. This information is required for validation checking
# when deleting parent objects.
new_context = [context.current['network_id']]
db.create_pending_row(context._plugin_context.session, 'subnet',
context.current['id'], 'delete', new_context)
示例6: update_port_precommit
def update_port_precommit(self, context):
port = context._plugin.get_port(context._plugin_context,
context.current['id'])
dbcontext = context._plugin_context
new_context = copy.deepcopy(context.current)
groups = [context._plugin.get_security_group(dbcontext, sg)
for sg in port['security_groups']]
new_context['security_groups'] = groups
# Add the network_id in for validation
new_context['network_id'] = port['network_id']
# NOTE(yamahata): work around for port creation for router
# tenant_id=''(empty string) is passed when port is created
# by l3 plugin internally for router.
# On the other hand, ODL doesn't accept empty string for tenant_id.
# In that case, deduce tenant_id from network_id for now.
# Right fix: modify Neutron so that don't allow empty string
# for tenant_id even for port for internal use.
# TODO(yamahata): eliminate this work around when neutron side
# is fixed
# assert port['tenant_id'] != ''
if ('tenant_id' not in context.current or
context.current['tenant_id'] == ''):
port['tenant_id'] = context._network_context._network['tenant_id']
db.create_pending_row(context._plugin_context.session, 'port',
context.current['id'], 'update', new_context)
示例7: delete_router
def delete_router(self, context, router_id):
session = db_api.get_session()
with session.begin(subtransactions=True):
super(OpenDaylightL3RouterPlugin, self).delete_router(context,
router_id)
db.create_pending_row(context.session, odl_const.ODL_ROUTER,
router_id, odl_const.ODL_DELETE, None)
示例8: _test_delete_row
def _test_delete_row(self, by_row=False, by_row_id=False, dry_flush=False):
db.create_pending_row(self.db_context, *self.UPDATE_ROW)
db.create_pending_row(self.db_context, *self.UPDATE_ROW)
rows = db.get_all_db_rows(self.db_context)
self.assertEqual(len(rows), 2)
row = rows[-1]
params = {'flush': not dry_flush}
if by_row:
params['row'] = row
elif by_row_id:
params['row_id'] = row.seqnum
mock_flush = None
if dry_flush:
patch_flush = mock.patch.object(
self.db_context.session, 'flush',
side_effect=self.db_context.session.flush
)
mock_flush = patch_flush.start()
try:
db.delete_row(self.db_context, **params)
finally:
if dry_flush:
patch_flush.stop()
self.db_context.session.flush()
rows = db.get_all_db_rows(self.db_context)
self.assertEqual(len(rows), 1)
self.assertNotEqual(row.seqnum, rows[0].seqnum)
return mock_flush
示例9: test_full_sync_removes_pending_rows
def test_full_sync_removes_pending_rows(self):
self._mock_canary_missing()
db.create_pending_row(self.db_session, odl_const.ODL_NETWORK, "uuid",
odl_const.ODL_CREATE, {'foo': 'bar'})
full_sync.full_sync(self.db_session)
rows = self._assert_canary_created()
self._assert_no_journal_rows(rows)
示例10: test_journal_recovery_retries_exceptions
def test_journal_recovery_retries_exceptions(self):
db.create_pending_row(self.db_context, odl_const.ODL_NETWORK,
'id', odl_const.ODL_DELETE, {})
created_row = db.get_all_db_rows(self.db_context)[0]
db.update_db_row_state(self.db_context, created_row,
odl_const.FAILED)
with mock.patch.object(db, 'update_db_row_state') as m:
self._test_retry_exceptions(recovery.journal_recovery, m)
示例11: record
def record(db_session, object_type, object_uuid, operation, data,
context=None):
if (object_type == odl_const.ODL_PORT and
operation in (odl_const.ODL_CREATE, odl_const.ODL_UPDATE)):
_enrich_port(db_session, context, object_type, operation, data)
db.create_pending_row(db_session, object_type, object_uuid, operation,
data)
示例12: _test_get_oldest_pending_row_none
def _test_get_oldest_pending_row_none(self, state):
db.create_pending_row(self.db_context, *self.UPDATE_ROW)
row = db.get_all_db_rows(self.db_context)[0]
row.state = state
self._update_row(row)
row = db.get_oldest_pending_db_row_with_lock(self.db_context)
self.assertIsNone(row)
示例13: _test_entry_complete
def _test_entry_complete(self, retention, expected_length):
self.cfg.config(completed_rows_retention=retention, group='ml2_odl')
db.create_pending_row(self.db_context, *test_db.DbTestCase.UPDATE_ROW)
entry = db.get_all_db_rows(self.db_context)[-1]
journal.entry_complete(self.db_context, entry)
rows = db.get_all_db_rows(self.db_context)
self.assertEqual(expected_length, len(rows))
self.assertTrue(
all(row.state == odl_const.COMPLETED for row in rows))
示例14: sync_from_callback
def sync_from_callback(self, operation, res_type_uri, res_id,
resource_dict):
object_type = res_type_uri.replace('-', '_')[:-1]
object_uuid = (resource_dict[object_type]['id']
if operation == 'create' else res_id)
if resource_dict is not None:
resource_dict = resource_dict[object_type]
db.create_pending_row(db_api.get_session(), object_type, object_uuid,
operation, resource_dict)
示例15: test_get_oldest_pending_row_order
def test_get_oldest_pending_row_order(self):
db.create_pending_row(self.db_context, *self.UPDATE_ROW)
older_row = db.get_all_db_rows(self.db_context)[0]
older_row.last_retried -= timedelta(minutes=1)
self._update_row(older_row)
db.create_pending_row(self.db_context, *self.UPDATE_ROW)
row = db.get_oldest_pending_db_row_with_lock(self.db_context)
self.assertEqual(older_row, row)