def rollback(self): """ Issues the 'request' command to do the rollback and returns the string output of the results. :returns: Rollback results (str) """ rsp = self.rpc.request_package_rollback() fail_list = ['Cannot rollback', 'rollback aborted'] multi = rsp.xpath('//multi-routing-engine-item') if multi: rsp = {} for x in multi: re = x.findtext('re-name') output = x.findtext('output') if any(x in output for x in fail_list): raise SwRollbackError(re=re, rsp=output) else: rsp[re] = output return str(rsp) else: output = rsp.xpath('//output')[0].text if any(x in output for x in fail_list): raise SwRollbackError(rsp=output) else: return output
def test_SwRollbackError_repr_multi(self): obj = SwRollbackError(re='test1', rsp="Multi RE exception") err = 'SwRollbackError(re: test1, output: Multi RE exception)' self.assertEqual(obj.__repr__(), err)
def test_SwRollbackError_repr(self): obj = SwRollbackError(rsp="Single RE exception") err = 'SwRollbackError(output: Single RE exception)' self.assertEqual(obj.__repr__(), err)