Re: Integers as String in osd_metadata (memory, rotational)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Op 28 november 2017 om 12:53 schreef John Spray <jspray@xxxxxxxxxx>:
> 
> 
> On Tue, Nov 28, 2017 at 11:06 AM, Wido den Hollander <wido@xxxxxxxx> wrote:
> > Hi,
> >
> > Looking at 'ceph osd metadata' I see that we return a lot of values as Strings in the JSON instead of a Integer, for example:
> >
> > $ ceph osd metadata 2033
> >
> > {
> >     "id": 2033,
> >     "arch": "x86_64",
> >     "journal_rotational": "0",
> >     "mem_swap_kb": "1046524",
> >     "mem_total_kb": "63641808",
> >     "rotational": "1"
> > }
> >
> > Looking at some code I found this:
> >
> > (*m)["mem_total_kb"] = std::to_string(size);
> > (*pm)["rotational"] = store_is_rotational ? "1" : "0";
> > (*pm)["journal_rotational"] = journal_is_rotational ? "1" : "0";
> >
> > Why can't we return a int/long there? Is it the internal JSON parser which can't handle it?
> 
> There are various places where we send metadata as map<string, string>
> (in this instance, MOSDBoot), which is indeed kind of annoying --
> converting them all to a JSON-ish structure would be a good thing.
> 

Yes, or at least have a difference between int and string.

> I'm imagining a helper class that wraps boost::property_tree and slots
> in everywhere we currently use map<string, string> for metadata.
> 

That is slightly out of my comfort zone. I wouldn't know where to start :-)

Wido

> John
> 
> > Otherwise I'll write a PR for this. Saves me casting the things to Integers again afterwards in Python.
> >
> > Wido
> > --
> > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux