##// END OF EJS Templates
bundle2: move handler validation out of processpart...
Durham Goode -
r34260:07e4170f default
parent child Browse files
Show More
@@ -460,48 +460,55 b' def _processchangegroup(op, cg, tr, sour'
460 460 })
461 461 return ret
462 462
463 def _gethandler(op, part):
464 status = 'unknown' # used by debug output
465 try:
466 handler = parthandlermapping.get(part.type)
467 if handler is None:
468 status = 'unsupported-type'
469 raise error.BundleUnknownFeatureError(parttype=part.type)
470 indebug(op.ui, 'found a handler for part %r' % part.type)
471 unknownparams = part.mandatorykeys - handler.params
472 if unknownparams:
473 unknownparams = list(unknownparams)
474 unknownparams.sort()
475 status = 'unsupported-params (%s)' % unknownparams
476 raise error.BundleUnknownFeatureError(parttype=part.type,
477 params=unknownparams)
478 status = 'supported'
479 except error.BundleUnknownFeatureError as exc:
480 if part.mandatory: # mandatory parts
481 raise
482 indebug(op.ui, 'ignoring unsupported advisory part %s' % exc)
483 return # skip to part processing
484 finally:
485 if op.ui.debugflag:
486 msg = ['bundle2-input-part: "%s"' % part.type]
487 if not part.mandatory:
488 msg.append(' (advisory)')
489 nbmp = len(part.mandatorykeys)
490 nbap = len(part.params) - nbmp
491 if nbmp or nbap:
492 msg.append(' (params:')
493 if nbmp:
494 msg.append(' %i mandatory' % nbmp)
495 if nbap:
496 msg.append(' %i advisory' % nbmp)
497 msg.append(')')
498 msg.append(' %s\n' % status)
499 op.ui.debug(''.join(msg))
500
501 return handler
502
463 503 def _processpart(op, part):
464 504 """process a single part from a bundle
465 505
466 506 The part is guaranteed to have been fully consumed when the function exits
467 507 (even if an exception is raised)."""
468 status = 'unknown' # used by debug output
469 508 try:
470 try:
471 handler = parthandlermapping.get(part.type)
472 if handler is None:
473 status = 'unsupported-type'
474 raise error.BundleUnknownFeatureError(parttype=part.type)
475 indebug(op.ui, 'found a handler for part %r' % part.type)
476 unknownparams = part.mandatorykeys - handler.params
477 if unknownparams:
478 unknownparams = list(unknownparams)
479 unknownparams.sort()
480 status = 'unsupported-params (%s)' % unknownparams
481 raise error.BundleUnknownFeatureError(parttype=part.type,
482 params=unknownparams)
483 status = 'supported'
484 except error.BundleUnknownFeatureError as exc:
485 if part.mandatory: # mandatory parts
486 raise
487 indebug(op.ui, 'ignoring unsupported advisory part %s' % exc)
488 return # skip to part processing
489 finally:
490 if op.ui.debugflag:
491 msg = ['bundle2-input-part: "%s"' % part.type]
492 if not part.mandatory:
493 msg.append(' (advisory)')
494 nbmp = len(part.mandatorykeys)
495 nbap = len(part.params) - nbmp
496 if nbmp or nbap:
497 msg.append(' (params:')
498 if nbmp:
499 msg.append(' %i mandatory' % nbmp)
500 if nbap:
501 msg.append(' %i advisory' % nbmp)
502 msg.append(')')
503 msg.append(' %s\n' % status)
504 op.ui.debug(''.join(msg))
509 handler = _gethandler(op, part)
510 if handler is None:
511 return
505 512
506 513 # handler is called outside the above try block so that we don't
507 514 # risk catching KeyErrors from anything other than the
General Comments 0
You need to be logged in to leave comments. Login now