##// 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 return ret
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 def _processpart(op, part):
503 def _processpart(op, part):
464 """process a single part from a bundle
504 """process a single part from a bundle
465
505
466 The part is guaranteed to have been fully consumed when the function exits
506 The part is guaranteed to have been fully consumed when the function exits
467 (even if an exception is raised)."""
507 (even if an exception is raised)."""
468 status = 'unknown' # used by debug output
469 try:
508 try:
470 try:
509 handler = _gethandler(op, part)
471 handler = parthandlermapping.get(part.type)
510 if handler is None:
472 if handler is None:
511 return
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))
505
512
506 # handler is called outside the above try block so that we don't
513 # handler is called outside the above try block so that we don't
507 # risk catching KeyErrors from anything other than the
514 # risk catching KeyErrors from anything other than the
General Comments 0
You need to be logged in to leave comments. Login now