forked from p15670423/monkey
Deployment: Initial commit for mongo export utility
This commit is contained in:
parent
f387595104
commit
29f9384b6a
|
@ -0,0 +1,60 @@
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
import pymongo
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(description="Export attack mitigations from a database")
|
||||||
|
parser.add_argument(
|
||||||
|
"-host", "--mongo_host", default="localhost", help="URL for mongo database.", required=False
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"-port",
|
||||||
|
"--mongo_port",
|
||||||
|
action="store",
|
||||||
|
default=27017,
|
||||||
|
type=int,
|
||||||
|
help="Port for mongo database. Default 27017",
|
||||||
|
required=False,
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"-db",
|
||||||
|
"--database_name",
|
||||||
|
action="store",
|
||||||
|
default="monkeyisland",
|
||||||
|
help="Database name inside of mongo.",
|
||||||
|
required=False,
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"-cn",
|
||||||
|
"--collection_name",
|
||||||
|
action="store",
|
||||||
|
default="attack_mitigations",
|
||||||
|
help="Which collection are we going to export",
|
||||||
|
required=False,
|
||||||
|
)
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
def connect_to_mongo(mongo_host: str, mongo_port: int, database_name: str) -> pymongo.MongoClient:
|
||||||
|
client = pymongo.MongoClient(host=mongo_host, port=mongo_port)
|
||||||
|
database = client.get_database(database_name)
|
||||||
|
return database
|
||||||
|
|
||||||
|
|
||||||
|
def collection_exists(mongodb: pymongo.MongoClient, collection_name: str) -> bool:
|
||||||
|
collections = mongodb.list_collection_names()
|
||||||
|
return collection_name in collections
|
||||||
|
|
||||||
|
|
||||||
|
def clean_collection(mongodb: pymongo.MongoClient, collection_name: str):
|
||||||
|
if collection_exists(mongodb, collection_name):
|
||||||
|
mongodb.drop_collection(collection_name)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
mongodb = connect_to_mongo(args.mongo_host, args.mongo_port, args.database_name)
|
||||||
|
|
||||||
|
clean_collection(mongodb, args.collection_name)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
Loading…
Reference in New Issue