Refactored surveil-init

* New options --influxdb will create influxdb database
* Works when called directly with python
* Use new mongo-uri parameter

Change-Id: I73931a447d6e0728e86736364acb61c613414af3
This commit is contained in:
aviau 2015-06-17 10:10:14 -04:00
parent f1ba125b69
commit 36d42c10f8
2 changed files with 27 additions and 19 deletions

@ -18,6 +18,7 @@ import optparse
import subprocess
import sys
import influxdb
import pymongo
import surveilclient.client as sc
@ -30,6 +31,10 @@ def main():
default=False,
dest='demo',
action="store_true")
parser.add_option('-i', '--influxdb',
default=False,
dest='influxdb',
action='store_true')
opts, _ = parser.parse_args(sys.argv)
# Create a basic config in mongodb
@ -39,6 +44,16 @@ def main():
# Drop the current shinken config
mongo.drop_database('shinken')
if opts.influxdb is True:
# Create the InfluxDB database
influx_client = influxdb.InfluxDBClient.from_DSN(
config.surveil_api_config['influxdb_uri']
)
databases = influx_client.get_list_database()
if not any(db['name'] == influx_client._database for db in databases):
influx_client.create_database(influx_client._database)
if mongo.surveil.init.count() == 0:
# Mark packs as uploaded
print("Uploading packs...")
@ -48,8 +63,7 @@ def main():
subprocess.call(
[
"surveil-pack-upload",
"--mongo-url=mongo",
"--mongo-port=27017",
"--mongo-uri=" + config.surveil_api_config['mongodb_uri'],
"/usr/share/monitoring/packs/sfl/openstack-keystone-http/",
]
)
@ -57,8 +71,7 @@ def main():
subprocess.call(
[
"surveil-pack-upload",
"--mongo-url=mongo",
"--mongo-port=27017",
"--mongo-uri=" + config.surveil_api_config['mongodb_uri'],
"/usr/share/monitoring/packs/sfl/openstack-glance-http/",
]
)
@ -66,8 +79,7 @@ def main():
subprocess.call(
[
"surveil-pack-upload",
"--mongo-url=mongo",
"--mongo-port=27017",
"--mongo-uri=" + config.surveil_api_config['mongodb_uri'],
"/usr/share/monitoring/packs/sfl/generic-host/",
]
)
@ -75,8 +87,7 @@ def main():
subprocess.call(
[
"surveil-pack-upload",
"--mongo-url=mongo",
"--mongo-port=27017",
"--mongo-uri=" + config.surveil_api_config['mongodb_uri'],
"/usr/share/monitoring/packs/sfl/openstack-nova-http/",
]
)
@ -84,8 +95,7 @@ def main():
subprocess.call(
[
"surveil-pack-upload",
"--mongo-url=mongo",
"--mongo-port=27017",
"--mongo-uri=" + config.surveil_api_config['mongodb_uri'],
"/usr/share/monitoring/packs/sfl/openstack-cinder-http/",
]
)
@ -93,8 +103,7 @@ def main():
subprocess.call(
[
"surveil-pack-upload",
"--mongo-url=mongo",
"--mongo-port=27017",
"--mongo-uri=" + config.surveil_api_config['mongodb_uri'],
"/usr/share/monitoring/packs/sfl/openstack-host/",
]
)
@ -238,3 +247,6 @@ def main():
# Reload the shinken config
cli_surveil.config.reload_config()
if __name__ == "__main__":
main()

@ -30,12 +30,9 @@ def main():
prog='surveil-pack-upload',
add_help=False,
)
parser.add_argument('--mongo-url',
default='localhost',
parser.add_argument('--mongo-uri',
default='mongodb://localhost:27017',
help='Defaults to localhost', type=str)
parser.add_argument('--mongo-port',
default=27017,
help='Defaults to 27017', type=int)
parser.add_argument('pack', metavar='[Pack]', type=str, nargs=1,
help='Pack directory')
@ -73,8 +70,7 @@ def main():
config_item[i[0]] = ','.join(i[1])
# Remove the existing pack from mongodb
mongo = mongo_client.MongoClient(host=options.mongo_url,
port=options.mongo_port)
mongo = mongo_client.MongoClient(options.mongo_uri)
mongo_shinken = mongo.shinken
for collection in (
mongo_shinken.collection_names(include_system_collections=False)