Merge PR #35323 into master

* refs/pull/35323/head:
	tool: change coding style, indent with two spaces

Reviewed-by: Zheng Yan <zyan@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
This commit is contained in:
Patrick Donnelly 2020-06-25 14:34:53 -07:00
commit dd56696230
No known key found for this signature in database
GPG Key ID: 3A2A7E25BEA8AADB
3 changed files with 1182 additions and 1150 deletions

View File

@ -1,3 +1,5 @@
// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
// vim: ts=8 sw=2 smarttab
#include <string.h>
#include <map>
#include <sstream>
@ -35,17 +37,20 @@ WRITE_RAW_ENCODER(unsigned char)
#define dout_prefix *_dout << __func__ << ": "
void MetaTool::meta_op::release(){
void MetaTool::meta_op::release()
{
for (const auto& i : inodes) {
delete i.second;
}
while (!sub_ops.empty()) {
delete sub_ops.top();
sub_ops.pop();
}
}
void MetaTool::inode_meta_t::decode_json(JSONObj *obj){
void MetaTool::inode_meta_t::decode_json(JSONObj *obj)
{
unsigned long long tmp;
JSONDecoder::decode_json("snapid_t", tmp, obj, true);
_f.val = tmp;
@ -56,7 +61,8 @@ void MetaTool::inode_meta_t::decode_json(JSONObj *obj){
JSONDecoder::decode_json("store", *_i, obj, true);
}
void MetaTool::usage(){
void MetaTool::usage()
{
generic_client_usage();
}
@ -67,7 +73,8 @@ int MetaTool::main(string& mode,
string& out,
string& in,
bool confirm
){
)
{
int r = 0;
std::string manual_meta_pool;
@ -143,9 +150,8 @@ int MetaTool::main(string& mode,
output.dup(io_meta);
// prepare io for data pool
const std::vector<int64_t> & data_pools_v = fs->mds_map.get_data_pools();
for(auto i = data_pools_v.begin(); i != data_pools_v.end(); ++i){
r = rados.pool_reverse_lookup(*i, &pool_name);
for (const auto p : fs->mds_map.get_data_pools()) {
r = rados.pool_reverse_lookup(p, &pool_name);
if (r < 0) {
cerr << "Pool " << pool_id << " named in MDS map not found in RADOS!" << std::endl;
return r;
@ -181,7 +187,8 @@ int MetaTool::main(string& mode,
return r;
}
int MetaTool::process(string& mode, string& ino, string out, string in, bool confirm){
int MetaTool::process(string& mode, string& ino, string out, string in, bool confirm)
{
if (mode == "showm") {
return show_meta_info(ino, out);
} else if (mode == "showfn") {
@ -197,7 +204,8 @@ int MetaTool::process(string& mode, string& ino, string out, string in, bool con
return -EINVAL;
}
}
int MetaTool::show_fnode(string& ino, string& out) {
int MetaTool::show_fnode(string& ino, string& out)
{
if (ino != "0") {
inodeno_t i_ino = conv2hexino(ino.c_str());
meta_op op(_debug, out);
@ -212,7 +220,8 @@ int MetaTool::show_fnode(string& ino, string& out) {
}
return 0;
}
int MetaTool::amend_fnode(string& in, bool confirm){
int MetaTool::amend_fnode(string& in, bool confirm)
{
meta_op op(_debug, "", in, confirm);
meta_op::sub_op* nsop = new meta_op::sub_op(&op);
nsop->sub_op_t = meta_op::OP_AMEND_FN;
@ -221,7 +230,8 @@ int MetaTool::amend_fnode(string& in, bool confirm){
op.push_op(nsop);
return op_process(op);
}
int MetaTool::amend_meta_info(string& ino, string& in, bool confirm){
int MetaTool::amend_meta_info(string& ino, string& in, bool confirm)
{
if (ino != "0" && in != "") {
inodeno_t i_ino = conv2hexino(ino.c_str());
meta_op op(_debug, "", in, confirm);
@ -236,7 +246,8 @@ int MetaTool::amend_meta_info(string& ino, string& in, bool confirm){
}
return 0;
}
int MetaTool::list_meta_info(string& ino, string& out){
int MetaTool::list_meta_info(string& ino, string& out)
{
if (ino != "0") {
inodeno_t i_ino = conv2hexino(ino.c_str());
meta_op op(_debug, out);
@ -251,7 +262,8 @@ int MetaTool::list_meta_info(string& ino, string& out){
}
return 0;
}
int MetaTool::show_meta_info(string& ino, string& out){
int MetaTool::show_meta_info(string& ino, string& out)
{
if (ino != "0") {
inodeno_t i_ino = conv2hexino(ino.c_str());
meta_op op(_debug, out);
@ -268,7 +280,8 @@ int MetaTool::show_meta_info(string& ino, string& out){
return 0;
}
int MetaTool::op_process(meta_op& op){
int MetaTool::op_process(meta_op& op)
{
int r = 0;
while (!op.no_sops()) {
if (_debug)
@ -304,7 +317,8 @@ int MetaTool::op_process(meta_op& op){
return r;
}
int MetaTool::amend_meta(meta_op &op){
int MetaTool::amend_meta(meta_op &op)
{
meta_op::sub_op* sop = op.top_op();
auto item = op.inodes.find(sop->ino);
auto item_k = op.okeys.find(sop->ino);
@ -327,27 +341,32 @@ int MetaTool::amend_meta(meta_op &op){
return 0;
}
void MetaTool::inode_meta_t::encode(::ceph::bufferlist& bl, uint64_t features){
void MetaTool::inode_meta_t::encode(::ceph::bufferlist& bl, uint64_t features)
{
::encode(_f, bl);
::encode(_t, bl);
_i->encode_bare(bl, features);
}
int MetaTool::_amend_meta(string& k, inode_meta_t& inode_meta, const string& fn, meta_op& op){
int MetaTool::_amend_meta(string& k, inode_meta_t& inode_meta, const string& fn, meta_op& op)
{
JSONParser parser;
if (!parser.parse(fn.c_str())) {
cout << "Error parsing create user response" << std::endl;
return -1;
}
try {
inode_meta.decode_json(&parser);
} catch (JSONDecoder::err& e) {
cout << "failed to decode JSON input: " << e.what() << std::endl;
return -1;
}
if (!op.confirm_chg() || op.is_debug()) {
cout << "you will amend info of inode ==>: " << std::endl;
_show_meta(inode_meta, "");
}
if (!op.confirm_chg()) {
cout << "warning: this operation is irreversibl!!!\n"
<< " You must confirm that all logs of mds have been flushed!!!\n"
@ -355,6 +374,7 @@ int MetaTool::_amend_meta(string& k, inode_meta_t& inode_meta, const string& fn,
<< std::endl;
return -1;
}
bufferlist bl;
inode_meta.encode(bl, features);
map<string, bufferlist> to_set;
@ -372,7 +392,8 @@ int MetaTool::_amend_meta(string& k, inode_meta_t& inode_meta, const string& fn,
to_set.clear();
return ret;
}
int MetaTool::show_fn(meta_op &op){
int MetaTool::show_fn(meta_op &op)
{
meta_op::sub_op* sop = op.top_op();
auto item = op.inodes.find(sop->ino);
if (item != op.inodes.end()) {
@ -407,7 +428,7 @@ int MetaTool::_show_fn(inode_meta_t& inode_meta, const string& fn)
string oid = obj_name(inode_meta.get_meta()->inode.ino, frag);
int ret = io_meta.omap_get_header(oid, &hbl);
if (ret < 0) {
std::cerr << __func__ << " : cantn't find oid("<< oid << ")" << std::endl;
std::cerr << __func__ << " : can't find oid("<< oid << ")" << std::endl;
return -1;
}
{
@ -437,8 +458,7 @@ int MetaTool::_show_fn(inode_meta_t& inode_meta, const string& fn)
if (o) {
o << ds.str();
o.close();
}
else{
} else {
cout << "out to file (" << fn << ") failed" << std::endl;
cout << ds.str() << std::endl;
}
@ -446,12 +466,14 @@ int MetaTool::_show_fn(inode_meta_t& inode_meta, const string& fn)
std::cout << ds.str() << std::endl;
return 0;
}
int MetaTool::amend_fn(meta_op &op){
int MetaTool::amend_fn(meta_op &op)
{
if (_amend_fn(op.infile(), op.confirm_chg()) < 0)
return -1;
return 0;
}
int MetaTool::_amend_fn(const string& fn, bool confirm){
int MetaTool::_amend_fn(const string& fn, bool confirm)
{
JSONParser parser;
if (!parser.parse(fn.c_str())) {
cout << "Error parsing create user response : " << fn << std::endl;
@ -496,7 +518,8 @@ int MetaTool::_amend_fn(const string& fn, bool confirm){
}
return 0;
}
int MetaTool::show_meta(meta_op &op){
int MetaTool::show_meta(meta_op &op)
{
meta_op::sub_op* sop = op.top_op();
auto item = op.inodes.find(sop->ino);
if (item != op.inodes.end()) {
@ -517,7 +540,8 @@ int MetaTool::show_meta(meta_op &op){
}
return 0;
}
int MetaTool::_show_meta(inode_meta_t& inode_meta, const string& fn){
int MetaTool::_show_meta(inode_meta_t& inode_meta, const string& fn)
{
std::stringstream ds;
std::string format = "json";
InodeStore& inode_data = *inode_meta.get_meta();
@ -553,8 +577,7 @@ int MetaTool::_show_meta(inode_meta_t& inode_meta, const string& fn){
if (o) {
o << ds.str();
o.close();
}
else{
} else {
cout << "out to file (" << fn << ") failed" << std::endl;
cout << ds.str() << std::endl;
}
@ -563,7 +586,8 @@ int MetaTool::_show_meta(inode_meta_t& inode_meta, const string& fn){
std::cout << ds.str() << std::endl;
return 0;
}
int MetaTool::list_meta(meta_op &op){
int MetaTool::list_meta(meta_op &op)
{
meta_op::sub_op* sop = op.top_op();
bool list_all = false;
@ -598,7 +622,7 @@ int MetaTool::list_meta(meta_op &op){
bufferlist hbl;
int ret = io_meta.omap_get_header(oid, &hbl);
if (ret < 0) {
std::cerr << __func__ << " : cantn't find it, maybe it (ino:"<< sop->ino<< ")isn't a normal dir!" << std::endl;
std::cerr << __func__ << " : can't find it, maybe it (ino:"<< sop->ino<< ")isn't a normal dir!" << std::endl;
return -1;
}
@ -643,7 +667,7 @@ int MetaTool::list_meta(meta_op &op){
op.push_op(nsop);
return 1;
} else {
cerr << __func__ << "cann't find obj(" << oid << ") ,miss ancestors or miss some objs??? " << std::endl;
cerr << __func__ << "can't find obj(" << oid << ") ,miss ancestors or miss some objs??? " << std::endl;
return -1;
}
} else {
@ -691,7 +715,6 @@ int MetaTool::list_meta(meta_op &op){
snapid_t last;
dentry_key_t::decode_helper(p->first, dname, last);
if (_debug)
last_dname = dname;
try {
if (!list_all) {
@ -748,7 +771,8 @@ int MetaTool::list_meta(meta_op &op){
}
return 0;
}
unsigned long long MetaTool::conv2hexino(const char* ino){
unsigned long long MetaTool::conv2hexino(const char* ino)
{
unsigned long long iino = 0;
std::stringstream conv;
conv << ino;
@ -757,7 +781,8 @@ unsigned long long MetaTool::conv2hexino(const char* ino){
return iino;
}
int MetaTool::file_meta(meta_op &op){
int MetaTool::file_meta(meta_op &op)
{
int r = 0;
if (op.top_op()->sub_ino_t == meta_op::INO_DIR) {
r = _file_meta(op, io_meta);
@ -784,7 +809,8 @@ int MetaTool::file_meta(meta_op &op){
return -1;
}
int MetaTool::_file_meta(meta_op &op, librados::IoCtx& io){
int MetaTool::_file_meta(meta_op &op, librados::IoCtx& io)
{
inodeno_t ino = op.top_op()->ino;
std::string oid = obj_name(ino);
bufferlist pointer_bl;
@ -847,7 +873,8 @@ int MetaTool::_file_meta(meta_op &op, librados::IoCtx& io){
}
return 0;
}
std::string MetaTool::obj_name(inodeno_t ino, uint64_t offset, const char *suffix) const{
std::string MetaTool::obj_name(inodeno_t ino, uint64_t offset, const char *suffix) const
{
char name[60];
snprintf(name, sizeof(name), "%llx.%08llx%s", (long long unsigned)ino, (long long unsigned)offset, suffix ? suffix : "");
return std::string(name);
@ -876,7 +903,8 @@ int MetaTool::show_child(std::string_view key,
const std::set<snapid_t> *snaps,
bool *force_dirty,
inodeno_t sp_ino,
meta_op* op){
meta_op* op)
{
bufferlist::const_iterator q = bl.cbegin();
snapid_t first;
@ -897,7 +925,7 @@ int MetaTool::show_child(std::string_view key,
}
// CDentry *dn = NULL;
// look for existing dentry for _last_ snap, cann't process snap of obj
// look for existing dentry for _last_ snap, can't process snap of obj
//if *(stale)
// dn = lookup_exact_snap(dname, last);
//else
@ -923,9 +951,7 @@ int MetaTool::show_child(std::string_view key,
inode_data.decode_bare(q);
std::stringstream ds;
//std::string format = "json-pretty";
std::string format = "json";
// Formatter f = new JSONFormatter(false);
Formatter* f = Formatter::create(format);
f->enable_line_break();
f->open_object_section("meta");
@ -967,4 +993,3 @@ int MetaTool::show_child(std::string_view key,
}
return 0;
}

View File

@ -1,3 +1,5 @@
// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
// vim: ts=8 sw=2 smarttab
#ifndef METATOOL_H__
#define METATOOL_H__
@ -60,10 +62,12 @@ class MetaTool : public MDSUtility
OP_AMEND_FN,
OP_NO
} op_type;
typedef enum {
INO_DIR = 0,
INO_F
} ino_type;
static string op_type_name(op_type& t) {
string name;
switch (t) {
@ -256,6 +260,7 @@ class MetaTool : public MDSUtility
MetaTool(bool debug=false):
_debug(debug) {}
~MetaTool() {}
int main(string& mode,
string& rank_str,
string& minfo,

View File

@ -1,3 +1,5 @@
// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
// vim: ts=8 sw=2 smarttab
#include <include/types.h>
#include "common/config.h"
#include "common/ceph_argparse.h"
@ -15,7 +17,8 @@ using std::string;
using namespace std;
static string version = "cephfs-meta-injection v1.1";
int main(int argc, const char **argv){
int main(int argc, const char **argv)
{
vector<const char*> args;
argv_to_vec(argc, argv, args);
env_to_vec(args);
@ -59,8 +62,7 @@ int main(int argc, const char **argv){
} catch(exception &e) {
cerr << "error : " << e.what() << std::endl;
return -1;
}
catch(...){
} catch(...) {
cout << "param error" << std::endl;
return 0;
}