def test_crud_partial(self): # Create the DB record. obj = ActionExecutionAPI(**copy.deepcopy(self.fake_history_subtasks[0])) ActionExecution.add_or_update(ActionExecutionAPI.to_model(obj)) model = ActionExecution.get_by_id(obj.id) self.assertEqual(str(model.id), obj.id) self.assertDictEqual(model.trigger, {}) self.assertDictEqual(model.trigger_type, {}) self.assertDictEqual(model.trigger_instance, {}) self.assertDictEqual(model.rule, {}) self.assertDictEqual(model.action, self.fake_history_subtasks[0]['action']) self.assertDictEqual(model.runner, self.fake_history_subtasks[0]['runner']) doc = copy.deepcopy(self.fake_history_subtasks[0]['liveaction']) doc['start_timestamp'] = doc['start_timestamp'] doc['end_timestamp'] = doc['end_timestamp'] self.assertDictEqual(model.liveaction, doc) self.assertEqual(model.parent, self.fake_history_subtasks[0]['parent']) self.assertListEqual(model.children, []) # Update the DB record. children = [str(bson.ObjectId()), str(bson.ObjectId())] model.children = children ActionExecution.add_or_update(model) model = ActionExecution.get_by_id(obj.id) self.assertListEqual(model.children, children) # Delete the DB record. ActionExecution.delete(model) self.assertRaises(StackStormDBObjectNotFoundError, ActionExecution.get_by_id, obj.id)
def _purge_action_models(execution_db): liveaction_id = execution_db.liveaction['id'] if not liveaction_id: print('Invalid LiveAction id. Skipping delete: %s', execution_db) liveaction_db = None try: liveaction_db = LiveAction.get_by_id(liveaction_id) except: print('LiveAction with id: %s not found. Skipping delete.', liveaction_id) else: global DELETED_COUNT DELETED_COUNT += 1 try: ActionExecution.delete(execution_db) except Exception as e: print('Exception deleting Execution model: %s, exception: %s', execution_db, str(e)) else: try: LiveAction.delete(liveaction_db) except Exception as e: print('Zombie LiveAction left in db: %s. Exception: %s', liveaction_db, str(e))
def test_crud_partial(self): # Create the DB record. obj = ActionExecutionAPI( **copy.deepcopy(self.fake_history_subtasks[0])) ActionExecution.add_or_update(ActionExecutionAPI.to_model(obj)) model = ActionExecution.get_by_id(obj.id) self.assertEqual(str(model.id), obj.id) self.assertDictEqual(model.trigger, {}) self.assertDictEqual(model.trigger_type, {}) self.assertDictEqual(model.trigger_instance, {}) self.assertDictEqual(model.rule, {}) self.assertDictEqual(model.action, self.fake_history_subtasks[0]['action']) self.assertDictEqual(model.runner, self.fake_history_subtasks[0]['runner']) doc = copy.deepcopy(self.fake_history_subtasks[0]['liveaction']) doc['start_timestamp'] = doc['start_timestamp'] doc['end_timestamp'] = doc['end_timestamp'] self.assertDictEqual(model.liveaction, doc) self.assertEqual(model.parent, self.fake_history_subtasks[0]['parent']) self.assertListEqual(model.children, []) # Update the DB record. children = [str(bson.ObjectId()), str(bson.ObjectId())] model.children = children ActionExecution.add_or_update(model) model = ActionExecution.get_by_id(obj.id) self.assertListEqual(model.children, children) # Delete the DB record. ActionExecution.delete(model) self.assertRaises(StackStormDBObjectNotFoundError, ActionExecution.get_by_id, obj.id)
def _purge_action_models(execution_db): liveaction_id = execution_db.liveaction['id'] if not liveaction_id: print('Invalid LiveAction id. Skipping delete: %s', execution_db) liveaction_db = None try: liveaction_db = LiveAction.get_by_id(liveaction_id) except: print('LiveAction with id: %s not found. Skipping delete.', liveaction_id) else: global DELETED_COUNT DELETED_COUNT += 1 try: ActionExecution.delete(execution_db) except Exception as e: print('Exception deleting Execution model: %s, exception: %s', execution_db, str(e)) else: try: LiveAction.delete(liveaction_db) except Exception as e: print('Zombie LiveAction left in db: %s. Exception: %s', liveaction_db, str(e))
def test_crud_complete(self): # Create the DB record. obj = ActionExecutionAPI(**copy.deepcopy(self.fake_history_workflow)) ActionExecution.add_or_update(ActionExecutionAPI.to_model(obj)) model = ActionExecution.get_by_id(obj.id) self.assertEqual(str(model.id), obj.id) self.assertDictEqual(model.trigger, self.fake_history_workflow['trigger']) self.assertDictEqual(model.trigger_type, self.fake_history_workflow['trigger_type']) self.assertDictEqual(model.trigger_instance, self.fake_history_workflow['trigger_instance']) self.assertDictEqual(model.rule, self.fake_history_workflow['rule']) self.assertDictEqual(model.action, self.fake_history_workflow['action']) self.assertDictEqual(model.runner, self.fake_history_workflow['runner']) doc = copy.deepcopy(self.fake_history_workflow['liveaction']) doc['start_timestamp'] = doc['start_timestamp'] doc['end_timestamp'] = doc['end_timestamp'] self.assertDictEqual(model.liveaction, doc) self.assertIsNone(getattr(model, 'parent', None)) self.assertListEqual(model.children, self.fake_history_workflow['children']) # Update the DB record. children = [str(bson.ObjectId()), str(bson.ObjectId())] model.children = children ActionExecution.add_or_update(model) model = ActionExecution.get_by_id(obj.id) self.assertListEqual(model.children, children) # Delete the DB record. ActionExecution.delete(model) self.assertRaises(ValueError, ActionExecution.get_by_id, obj.id)
def _purge_models(execution_db): liveaction_id = execution_db.liveaction.get("id", None) if not liveaction_id: LOG.error("Invalid LiveAction id. Skipping delete: %s", execution_db) liveaction_db = None try: liveaction_db = LiveAction.get_by_id(liveaction_id) except: LOG.exception("LiveAction with id: %s not found. Skipping delete.", liveaction_id) else: global DELETED_COUNT DELETED_COUNT += 1 try: ActionExecution.delete(execution_db) except: LOG.exception("Exception deleting Execution model: %s", execution_db) else: if liveaction_db: try: LiveAction.delete(liveaction_db) except: LOG.exception("Zombie LiveAction left in db: %s.", liveaction_db)
def _purge_models(execution_db): liveaction_id = execution_db.liveaction.get('id', None) if not liveaction_id: LOG.error('Invalid LiveAction id. Skipping delete: %s', execution_db) liveaction_db = None try: liveaction_db = LiveAction.get_by_id(liveaction_id) except: LOG.exception('LiveAction with id: %s not found. Skipping delete.', liveaction_id) else: global DELETED_COUNT DELETED_COUNT += 1 try: ActionExecution.delete(execution_db) except: LOG.exception('Exception deleting Execution model: %s', execution_db) else: if liveaction_db: try: LiveAction.delete(liveaction_db) except: LOG.exception('Zombie LiveAction left in db: %s.', liveaction_db)
def test_crud_complete(self): # Create the DB record. obj = ActionExecutionAPI(**copy.deepcopy(self.fake_history_workflow)) ActionExecution.add_or_update(ActionExecutionAPI.to_model(obj)) model = ActionExecution.get_by_id(obj.id) self.assertEqual(str(model.id), obj.id) self.assertDictEqual(model.trigger, self.fake_history_workflow["trigger"]) self.assertDictEqual(model.trigger_type, self.fake_history_workflow["trigger_type"]) self.assertDictEqual(model.trigger_instance, self.fake_history_workflow["trigger_instance"]) self.assertDictEqual(model.rule, self.fake_history_workflow["rule"]) self.assertDictEqual(model.action, self.fake_history_workflow["action"]) self.assertDictEqual(model.runner, self.fake_history_workflow["runner"]) doc = copy.deepcopy(self.fake_history_workflow["liveaction"]) doc["start_timestamp"] = doc["start_timestamp"] doc["end_timestamp"] = doc["end_timestamp"] self.assertDictEqual(model.liveaction, doc) self.assertIsNone(getattr(model, "parent", None)) self.assertListEqual(model.children, self.fake_history_workflow["children"]) # Update the DB record. children = [str(bson.ObjectId()), str(bson.ObjectId())] model.children = children ActionExecution.add_or_update(model) model = ActionExecution.get_by_id(obj.id) self.assertListEqual(model.children, children) # Delete the DB record. ActionExecution.delete(model) self.assertRaises(StackStormDBObjectNotFoundError, ActionExecution.get_by_id, obj.id)