Skip to content

Instantly share code, notes, and snippets.

@linuxkidd
Last active March 14, 2019 00:30
Show Gist options
  • Save linuxkidd/5637e72d32a67edcdffd23fb715418d9 to your computer and use it in GitHub Desktop.
Save linuxkidd/5637e72d32a67edcdffd23fb715418d9 to your computer and use it in GitHub Desktop.
#!/usr/bin/awk -f
##
## Usage:
## cat orig.bi.list | ./import_bi_list.awk -v bucketname=mybucket -v bucketid=mybucketid -v marker=mymarker -v poolname=myrgw.buckets.data -v namesfile=diffnamesfile
##
##
function procObj() {
if(mynames[objname]) {
print "Object "objname" is in the list of missing names.. Processing"
printf "Checking if object exists in rados: "
retval=system("rados stat \""marker"_"objname"\" -p \""poolname"\"")
if(retval==0) {
print "Found, importing Object # "objcount", "objname": "
# print "radosgw-admin bi put --bucket=\""bucketname"\" --bucket-id=\""bucketid"\" --object=\""objname"\" --infile=/tmp/obj."objcount".json"
retval=system("radosgw-admin bi put --bucket="bucketname" --bucket-id="bucketid" --object="objname" --infile=/tmp/obj."objcount".json >/dev/null")
if(retval!=0)
print "failed!"
else
print "success."
} else
print "Deleted, moving on."
} else
print "Object "objname" not in list of missing names.. moving on."
system("rm -f /tmp/obj."objcount".json")
}
BEGIN {
objcount=0
if(bucketname=="") {
print "Missing bucketname!"
print "Please supply '-v bucketname=myname'"
exit
}
if(bucketid=="") {
print "Missing Bucket ID!"
print "Please supply '-v bucketid=myid'"
exit
}
if(marker=="") {
print "Missing marker!"
print "Please supply '-v marker=mymarker'"
exit
}
if(namesfile=="") {
print "Missing names file"
print "Please supply '-v namesfile=listofnamesfile'"
exit
}
if(poolname=="") {
print "Missing pool name"
print "Please supply '-v poolname=myrgw.bucket.data'"
exit
}
while(( getline line<namesfile ) > 0)
mynames[line]=1
}
/^ {/ {
inobj=1
objcount++
}
/^ }/ {
print " }" >> "/tmp/obj."objcount".json"
inobj=0
procObj()
}
/"name":/ {
objname=$NF
gsub(/^\"/,"",objname)
gsub(/\",$/,"",objname)
}
{
if(inobj==1)
print $0 >> "/tmp/obj."objcount".json"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment