In this patch, I introduce StorletFile classes, which is
used to manage input/output in storlet python applications.
Previously we only have File classes for input, but this
patch also adds the File casses for input, named
StorletInputFile.
With these File classes, we can raise NotImplementedError
for unsupported operation (for example, writing data to
input stream), and also raise Error which violates sbus
protocl (for example, we should send metadata before we
start sending object body), to be more safe.
Also, I integrate the interface about metadata into
these File classes, so that we can make the object metadata
tightly connected to the object body.
Bonus:
It also fixes some potential bugs in RangeInputStream
NOTE:
I remove seek method in StorletFile temporary, because
currently we can not check properly if the input supports
random access. This is again added when we complete our
work to add validation logic for that.
Implements: blueprint python-storlet
Change-Id: Ifce0f3f29f9dec1cc31f54c9a71cde6cd307ed10