crush: fix "crush create-or-move/move" would drop osd's class
Was:
./bin/ceph osd tree
ID CLASS WEIGHT TYPE NAME UP/DOWN REWEIGHT PRI-AFF
-1 3.00000 root default
-2 3.00000 host gitbuilder-ceph-rpm-centos7-amd64-basic
0 ssd 1.00000 osd.0 up 1.00000 1.00000
1 ssd 1.00000 osd.1 up 1.00000 1.00000
2 ssd 1.00000 osd.2 up 1.00000 1.00000
./bin/ceph osd crush move osd.0 root=foo rack=foo-rack host=foo-host
moved item id 0 name 'osd.0' to location {host=foo-host,rack=foo-rack,root=foo} in crush map
./bin/ceph osd tree
ID CLASS WEIGHT TYPE NAME UP/DOWN REWEIGHT PRI-AFF
-7 1.00000 root foo
-6 1.00000 rack foo-rack
-5 1.00000 host foo-host
0 1.00000 osd.0 up 1.00000 1.00000
-1 2.00000 root default
-2 2.00000 host gitbuilder-ceph-rpm-centos7-amd64-basic
1 ssd 1.00000 osd.1 up 1.00000 1.00000
2 ssd 1.00000 osd.2 up 1.00000 1.00000
Now:
./bin/ceph osd tree
ID CLASS WEIGHT TYPE NAME UP/DOWN REWEIGHT PRI-AFF
-1 3.00000 root default
-2 3.00000 host gitbuilder-ceph-rpm-centos7-amd64-basic
0 ssd 1.00000 osd.0 up 1.00000 1.00000
1 ssd 1.00000 osd.1 up 1.00000 1.00000
2 ssd 1.00000 osd.2 up 1.00000 1.00000
./bin/ceph osd crush move osd.0 root=foo rack=foo-rack host=foo-host
moved item id 0 name 'osd.0' to location {host=foo-host,rack=foo-rack,root=foo} in crush map
./bin/ceph osd tree
ID CLASS WEIGHT TYPE NAME UP/DOWN REWEIGHT PRI-AFF
-7 1.00000 root foo
-6 1.00000 rack foo-rack
-5 1.00000 host foo-host
0 ssd 1.00000 osd.0 up 1.00000 1.00000
-1 2.00000 root default
-2 2.00000 host gitbuilder-ceph-rpm-centos7-amd64-basic
1 ssd 1.00000 osd.1 up 1.00000 1.00000
2 ssd 1.00000 osd.2 up 1.00000 1.00000