Ticket #331: bloodhound_compat.diff
File bloodhound_compat.diff, 3.7 KB (added by gary.martin@…, 10 years ago) |
---|
-
email2trac.py.in
38 38 * Commandline opions: 39 39 -h,--help 40 40 -A, --agilo 41 -B, --bloodhound_product 41 42 -d, --debug 42 43 -E, --virtualenv <path> 43 44 -f,--file <configuration file> … … 892 893 """ 893 894 self.logger.debug("function update_ticket_fields") 894 895 896 if 'product' in user_dict: 897 if user_dict['product'] != ticket.env.product.prefix: 898 self.logging.warning("bloodhound products cannot be changed " 899 "- ignoring") 900 user_dict.pop('product') 901 895 902 ## Check only permission model on ticket updates 896 903 # 897 904 if not new: … … 2680 2687 ## Default config file 2681 2688 # 2682 2689 agilo = False 2690 bhproduct = '' 2683 2691 configfile = '@email2trac_conf@' 2684 2692 project = '' 2685 2693 component = '' … … 2689 2697 debug_interactive = None 2690 2698 virtualenv = '@virtualenv@' 2691 2699 2692 SHORT_OPT = 'AcdE:hf:np:t:v' 2693 LONG_OPT = ['agilo', 'component=', 'debug', 'dry-run', 'help', 'file=', 'project=', 'ticket_prefix=', 'virtualenv=', 'verbose'] 2700 SHORT_OPT = 'AB:cdE:hf:np:t:v' 2701 LONG_OPT = ['agilo', 'bloodhound_product=', 'component=', 'debug', 2702 'dry-run', 'help', 'file=', 'project=', 'ticket_prefix=', 2703 'virtualenv=', 'verbose'] 2694 2704 2695 2705 try: 2696 2706 opts, args = getopt.getopt(sys.argv[1:], SHORT_OPT, LONG_OPT) … … 2706 2716 sys.exit(0) 2707 2717 elif opt in ['-A', '--agilo']: 2708 2718 agilo = True 2719 elif opt in ['-B', '--bloodhound_product']: 2720 bhproduct = value 2709 2721 elif opt in ['-c', '--component']: 2710 2722 component = value 2711 2723 elif opt in ['-d', '--debug']: … … 2798 2810 from trac.ticket.web_ui import TicketModule 2799 2811 from trac.web.href import Href 2800 2812 2813 try: 2814 import pkg_resources 2815 pkg = pkg_resources.get_distribution('BloodhoundMultiProduct') 2816 bloodhound = pkg.version.split()[:2] 2817 except pkg_resources.DistributionNotFound: 2818 # assume no bloodhound 2819 bloodhound = None 2820 2821 if bloodhound: 2822 from multiproduct.env import Environment, ProductEnvironment 2823 from multiproduct.ticket.web_ui import (ProductTicketModule 2824 as TicketModule) 2825 logger.debug("Found Bloodhound Distribution") 2826 if not bhproduct: 2827 logger.warning("No Bloodhound product specified") 2828 2801 2829 if agilo: 2802 2830 2803 2831 try: … … 2834 2862 2835 2863 try: 2836 2864 env = Environment(settings['project'], create=0) 2865 if bloodhound: 2866 # possibly overkill testing if the multiproduct schema is a 2867 # new enough version 2868 from multiproduct.env import MultiProductSystem 2869 mps = MultiProductSystem(env) 2870 if mps.get_version() > 4: 2871 if not bhproduct: 2872 logger.error('Bloodhound requires a valid product') 2873 sys.exit(0) 2874 try: 2875 env = ProductEnvironment(env, bhproduct, create=0) 2876 except LookupError: 2877 logger.error('Bloodhound requires a valid product') 2878 sys.exit(0) 2879 2837 2880 except IOError, detail: 2838 2881 logger.error("trac error: %s" %detail) 2839 2882 sys.exit(0)