Fixed unexpected error on empty default template and incorrect error handling
Qubesd wrongly required default_template global property to be not None. Furthermore, even without hard failure set, require_property method raised an exception in case of a property having incorrect None value. It now logs an error message instead, as designed. fixes QubesOS/qubes-issues#5326
This commit is contained in:
		
							parent
							
								
									46ad75a3ba
								
							
						
					
					
						commit
						9d20877a43
					
				@ -727,7 +727,10 @@ class PropertyHolder(qubes.events.Emitter):
 | 
				
			|||||||
        try:
 | 
					        try:
 | 
				
			||||||
            value = getattr(self, prop)
 | 
					            value = getattr(self, prop)
 | 
				
			||||||
            if value is None and not allow_none:
 | 
					            if value is None and not allow_none:
 | 
				
			||||||
                raise ValueError('Property {!r} cannot be None'.format(prop))
 | 
					                msg = 'Property {!r} cannot be None'.format(prop)
 | 
				
			||||||
 | 
					                if hard:
 | 
				
			||||||
 | 
					                    raise ValueError(msg)
 | 
				
			||||||
 | 
					                self.log.fatal(msg)
 | 
				
			||||||
        except AttributeError:
 | 
					        except AttributeError:
 | 
				
			||||||
            # pylint: disable=no-member
 | 
					            # pylint: disable=no-member
 | 
				
			||||||
            msg = 'Required property {!r} not set on {!r}'.format(prop, self)
 | 
					            msg = 'Required property {!r} not set on {!r}'.format(prop, self)
 | 
				
			||||||
 | 
				
			|||||||
@ -937,7 +937,7 @@ class Qubes(qubes.PropertyHolder):
 | 
				
			|||||||
        # stage 5: misc fixups
 | 
					        # stage 5: misc fixups
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.property_require('default_netvm', allow_none=True)
 | 
					        self.property_require('default_netvm', allow_none=True)
 | 
				
			||||||
        self.property_require('default_template')
 | 
					        self.property_require('default_template', allow_none=True)
 | 
				
			||||||
        self.property_require('clockvm', allow_none=True)
 | 
					        self.property_require('clockvm', allow_none=True)
 | 
				
			||||||
        self.property_require('updatevm', allow_none=True)
 | 
					        self.property_require('updatevm', allow_none=True)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user