A
poor 
tube was actually easier than I thought - see attached.
What you do is basically start with the torus, stretch it vertically and then flatten the sides (and the ends, if you want). Hopefully this will give you a start - I'll try to do a better one when I have a bit more time.
Also, if you want to vary the thickness of the tube wall, you might be better off starting with two tubes or cylinders and using Boolean options.
Note: I probably should have mentioned that the attached "tube" model gives quite a large object. If you actually want to use it, you probably need to scale it down in size by a factor of 10 or more.