[OE-core] [PATCH V2] populate SDK: prepare calling of bb.utils for exceptions

Mike Looijmans mike.looijmans at topic.nl
Mon Oct 19 05:27:02 UTC 2015


On 16-10-15 23:50, Benjamin Esquivel wrote:
> bb.utils.remove, bb.utils.movefile and bb.utils.mkdirhier can throw
> exceptions that need handling and proper error messages
> more work is required for these methods to handle properly the
> exceptions that can be raised within the various OS calls they make
> but this is a start to at least not hide the errors in the requested
> operations
>
> [YOCTO#8213]
>
> Signed-off-by: Benjamin Esquivel <benjamin.esquivel at linux.intel.com>
> ---
...
> +    def movefile(self, sourcefile, destdir):
> +        try:
> +            # FIXME: this check of movefile's return code to None should be
> +            # fixed within the function to use only exceptions to signal when
> +            # something goes wrong
> +            if (bb.utils.movefile(sourcefile, destdir) == None):
> +                raise OSError("moving %s to %s failed"
> +                        %(sourcefile, destdir))
> +        #FIXME: using umbrella exc catching because bb.utils method raises it
> +        except Exception as e:
> +            bb.debug(1, "printing the stack trace\n %s" %traceback.format_exc())
> +            bb.error("unable to place %s in final SDK location" % sourcefile)
> +
> +    def mkdirhier(self, dirpath):
> +        try:
> +            bb.utils.mkdirhier(dirpath)
> +        except OSError as e:
> +            bb.debug(1, "printing the stack trace\n %s" %traceback.format_exc())
> +            bb.fatal("cannot make dir for SDK: %s" % dirpath)
> +
> +    def remove(self, path, recurse=False):
> +        try:
> +            bb.utils.remove(path, recurse)
> +        #FIXME: using umbrella exc catching because bb.utils method raises it
> +        except Exception as e:
> +            bb.debug(1, "printing the stack trace\n %s" %traceback.format_exc())
> +            bb.warn("cannot remove SDK dir: %s" % path)


All these methods have a "self" in their argument list, but don't use it. Make 
them static functions (inside or outside the class, that's your call. I'd put 
them outside, they're totally unrelated).



Kind regards,

Mike Looijmans
System Expert

TOPIC Embedded Products
Eindhovenseweg 32-C, NL-5683 KH Best
Postbus 440, NL-5680 AK Best
Telefoon: +31 (0) 499 33 69 79
Telefax: +31 (0) 499 33 69 70
E-mail: mike.looijmans at topicproducts.com
Website: www.topicproducts.com

Please consider the environment before printing this e-mail

Visit us at : Aerospace Electrical Systems Expo Europe which will be held from 17.11.2015 till 19.11.2015, Findorffstra�e 101 Bremen, Germany, Hall 5, stand number C65
http://www.aesexpo.eu





More information about the Openembedded-core mailing list