From 7e83d0876ddb84a45e130eeba28bc40ef53c074b Mon Sep 17 00:00:00 2001 From: Yaron Yogev Date: Thu, 27 Jul 2017 09:02:54 +0300 Subject: Calipso initial release for OPNFV Change-Id: I7210c244b0c10fa80bfa8c77cb86c9d6ddf8bc88 Signed-off-by: Yaron Yogev --- app/install/calipso-installer.py | 380 ++++++++++++ app/install/calipso_mongo_access.conf.example | 4 + app/install/db/attributes_for_hover_on_data.json | 89 +++ app/install/db/clique_constraints.json | 20 + app/install/db/clique_types.json | 56 ++ app/install/db/cliques.json | 3 + app/install/db/constants.json | 668 +++++++++++++++++++++ app/install/db/environments_config.json | 78 +++ app/install/db/inventory.json | 3 + app/install/db/link_types.json | 184 ++++++ app/install/db/links.json | 3 + app/install/db/messages.json | 44 ++ .../meteor_accounts_loginServiceConfiguration.json | 3 + app/install/db/monitoring_config.json | 3 + app/install/db/monitoring_config_templates.json | 378 ++++++++++++ app/install/db/network_agent_types.json | 52 ++ app/install/db/roles.json | 26 + app/install/db/scans.json | 24 + app/install/db/scheduled_scans.json | 43 ++ app/install/db/statistics.json | 23 + app/install/db/supported_environments.json | 230 +++++++ app/install/db/users.json | 51 ++ app/install/ldap.conf.example | 10 + 23 files changed, 2375 insertions(+) create mode 100644 app/install/calipso-installer.py create mode 100644 app/install/calipso_mongo_access.conf.example create mode 100644 app/install/db/attributes_for_hover_on_data.json create mode 100644 app/install/db/clique_constraints.json create mode 100644 app/install/db/clique_types.json create mode 100644 app/install/db/cliques.json create mode 100644 app/install/db/constants.json create mode 100644 app/install/db/environments_config.json create mode 100644 app/install/db/inventory.json create mode 100644 app/install/db/link_types.json create mode 100644 app/install/db/links.json create mode 100644 app/install/db/messages.json create mode 100644 app/install/db/meteor_accounts_loginServiceConfiguration.json create mode 100644 app/install/db/monitoring_config.json create mode 100644 app/install/db/monitoring_config_templates.json create mode 100644 app/install/db/network_agent_types.json create mode 100644 app/install/db/roles.json create mode 100644 app/install/db/scans.json create mode 100644 app/install/db/scheduled_scans.json create mode 100644 app/install/db/statistics.json create mode 100644 app/install/db/supported_environments.json create mode 100644 app/install/db/users.json create mode 100644 app/install/ldap.conf.example (limited to 'app/install') diff --git a/app/install/calipso-installer.py b/app/install/calipso-installer.py new file mode 100644 index 0000000..bccddae --- /dev/null +++ b/app/install/calipso-installer.py @@ -0,0 +1,380 @@ +############################################################################### +# Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) # +# and others # +# # +# All rights reserved. This program and the accompanying materials # +# are made available under the terms of the Apache License, Version 2.0 # +# which accompanies this distribution, and is available at # +# http://www.apache.org/licenses/LICENSE-2.0 # +############################################################################### +from pymongo import MongoClient, ReturnDocument +from pymongo.errors import ConnectionFailure +from urllib.parse import quote_plus +import docker +import argparse +import dockerpycreds +# note : not used, useful for docker api security if used +import time +import json + + +class MongoComm: + # deals with communication from host/installer server to mongoDB, includes methods for future use + try: + + def __init__(self, host, user, password, port): + self.uri = "mongodb://%s:%s@%s:%s/%s" % ( + quote_plus(user), quote_plus(password), host, port, "calipso") + self.client = MongoClient(self.uri) + + def find(self, coll, key, val): + collection = self.client.calipso[coll] + doc = collection.find({key: val}) + return doc + + def get(self, coll, doc_name): + collection = self.client.calipso[coll] + doc = collection.find_one({"name": doc_name}) + return doc + + def insert(self, coll, doc): + collection = self.client.calipso[coll] + doc_id = collection.insert(doc) + return doc_id + + def remove_doc(self, coll, doc): + collection = self.client.calipso[coll] + collection.remove(doc) + + def remove_coll(self, coll): + collection = self.client.calipso[coll] + collection.remove() + + def find_update(self, coll, key, val, data): + collection = self.client.calipso[coll] + collection.find_one_and_update( + {key: val}, + {"$set": data}, + upsert=True + ) + + def update(self, coll, doc, upsert=False): + collection = self.client.calipso[coll] + doc_id = collection.update_one({'_id': doc['_id']},{'$set': doc}, upsert=upsert) + return doc_id + + except ConnectionFailure: + print("MongoDB Server not available") + + +DockerClient = docker.from_env() # using local host docker environment parameters + +# use the below example for installer against a remote docker host: +# DockerClient = docker.DockerClient(base_url='tcp://korlev-calipso-testing.cisco.com:2375') + + +def copy_file(filename): + c = MongoComm(args.hostname, args.dbuser, args.dbpassword, args.dbport) + txt = open('db/'+filename+'.json') + data = json.load(txt) + c.remove_coll(filename) + doc_id = c.insert(filename, data) + print("Copied", filename, "mongo doc_ids:\n\n", doc_id, "\n\n") + time.sleep(1) + + +C_MONGO_CONFIG = "/local_dir/calipso_mongo_access.conf" +H_MONGO_CONFIG = "/home/calipso/calipso_mongo_access.conf" +PYTHONPATH = "/home/scan/calipso_prod/app" +C_LDAP_CONFIG = "/local_dir/ldap.conf" +H_LDAP_CONFIG = "/home/calipso/ldap.conf" + +# functions to check and start calipso containers: +def start_mongo(dbport): + if not DockerClient.containers.list(all=True, filters={"name": "calipso-mongo"}): + print("\nstarting container calipso-mongo, please wait...\n") + image = DockerClient.images.list(all=True, name="korenlev/calipso:mongo") + if image: + print(image, "exists...not downloading...") + else: + print("image korenlev/calipso:mongo missing, hold on while downloading first...\n") + image = DockerClient.images.pull("korenlev/calipso:mongo") + print("Downloaded", image, "\n\n") + mongocontainer = DockerClient.containers.run('korenlev/calipso:mongo', detach=True, name="calipso-mongo", + ports={'27017/tcp': dbport, '28017/tcp': 28017}, + restart_policy={"Name": "always"}) + # wait a bit till mongoDB is up before starting to copy the json files from 'db' folder: + time.sleep(5) + enable_copy = input("create initial calipso DB ? (copy json files from 'db' folder to mongoDB -" + " 'c' to copy, 'q' to skip):") + if enable_copy == "c": + print("\nstarting to copy json files to mongoDB...\n\n") + print("-----------------------------------------\n\n") + time.sleep(1) + copy_file("attributes_for_hover_on_data") + copy_file("clique_constraints") + copy_file("clique_types") + copy_file("cliques") + copy_file("constants") + copy_file("environments_config") + copy_file("inventory") + copy_file("link_types") + copy_file("links") + copy_file("messages") + copy_file("meteor_accounts_loginServiceConfiguration") + copy_file("users") + copy_file("monitoring_config") + copy_file("monitoring_config_templates") + copy_file("network_agent_types") + copy_file("roles") + copy_file("scans") + copy_file("scheduled_scans") + copy_file("statistics") + copy_file("supported_environments") + + # note : 'messages', 'roles', 'users' and some of the 'constants' are filled by calipso-ui at runtime + # some other docs are filled later by scanning, logging and monitoring + else: + return + else: + print("container named calipso-mongo already exists, please deal with it using docker...\n") + return + + +def start_listen(): + if not DockerClient.containers.list(all=True, filters={"name": "calipso-listen"}): + print("\nstarting container calipso-listen...\n") + image = DockerClient.images.list(all=True, name="korenlev/calipso:listen") + if image: + print(image, "exists...not downloading...") + else: + print("image korenlev/calipso:listen missing, hold on while downloading first...\n") + image = DockerClient.images.pull("korenlev/calipso:listen") + print("Downloaded", image, "\n\n") + listencontainer = DockerClient.containers.run('korenlev/calipso:listen', detach=True, name="calipso-listen", + ports={'22/tcp': 50022}, + restart_policy={"Name": "always"}, + environment=["PYTHONPATH=" + PYTHONPATH, + "MONGO_CONFIG=" + C_MONGO_CONFIG], + volumes={'/home/calipso': {'bind': '/local_dir', 'mode': 'rw'}}) + else: + print("container named calipso-listen already exists, please deal with it using docker...\n") + return + + +def start_ldap(): + if not DockerClient.containers.list(all=True, filters={"name": "calipso-ldap"}): + print("\nstarting container calipso-ldap...\n") + image = DockerClient.images.list(all=True, name="korenlev/calipso:ldap") + if image: + print(image, "exists...not downloading...") + else: + print("image korenlev/calipso:ldap missing, hold on while downloading first...\n") + image = DockerClient.images.pull("korenlev/calipso:ldap") + print("Downloaded", image, "\n\n") + ldapcontainer = DockerClient.containers.run('korenlev/calipso:ldap', detach=True, name="calipso-ldap", + ports={'389/tcp': 389, '389/udp': 389}, + restart_policy={"Name": "always"}, + volumes={'/home/calipso/': {'bind': '/local_dir/', 'mode': 'rw'}}) + else: + print("container named calipso-ldap already exists, please deal with it using docker...\n") + return + + +def start_api(): + if not DockerClient.containers.list(all=True, filters={"name": "calipso-api"}): + print("\nstarting container calipso-api...\n") + image = DockerClient.images.list(all=True, name="korenlev/calipso:api") + if image: + print(image, "exists...not downloading...") + else: + print("image korenlev/calipso:api missing, hold on while downloading first...\n") + image = DockerClient.images.pull("korenlev/calipso:api") + print("Downloaded", image, "\n\n") + apicontainer = DockerClient.containers.run('korenlev/calipso:api', detach=True, name="calipso-api", + ports={'8000/tcp': 8000, '22/tcp': 40022}, + restart_policy={"Name": "always"}, + environment=["PYTHONPATH=" + PYTHONPATH, + "MONGO_CONFIG=" + C_MONGO_CONFIG, + "LDAP_CONFIG=" + C_LDAP_CONFIG, + "LOG_LEVEL=DEBUG"], + volumes={'/home/calipso/': {'bind': '/local_dir/', 'mode': 'rw'}}) + else: + print("container named calipso-api already exists, please deal with it using docker...\n") + return + + +def start_scan(): + if not DockerClient.containers.list(all=True, filters={"name": "calipso-scan"}): + print("\nstarting container calipso-scan...\n") + image = DockerClient.images.list(all=True, name="korenlev/calipso:scan") + if image: + print(image, "exists...not downloading...") + else: + print("image korenlev/calipso:scan missing, hold on while downloading first...\n") + image = DockerClient.images.pull("korenlev/calipso:scan") + print("Downloaded", image, "\n\n") + scancontainer = DockerClient.containers.run('korenlev/calipso:scan', detach=True, name="calipso-scan", + ports={'22/tcp': 30022}, + restart_policy={"Name": "always"}, + environment=["PYTHONPATH=" + PYTHONPATH, + "MONGO_CONFIG=" + C_MONGO_CONFIG], + volumes={'/home/calipso/': {'bind': '/local_dir/', 'mode': 'rw'}}) + else: + print("container named calipso-scan already exists, please deal with it using docker...\n") + return + + +def start_sensu(): + if not DockerClient.containers.list(all=True, filters={"name": "calipso-sensu"}): + print("\nstarting container calipso-sensu...\n") + image = DockerClient.images.list(all=True, name="korenlev/calipso:sensu") + if image: + print(image, "exists...not downloading...") + else: + print("image korenlev/calipso:sensu missing, hold on while downloading first...\n") + image = DockerClient.images.pull("korenlev/calipso:sensu") + print("Downloaded", image, "\n\n") + sensucontainer = DockerClient.containers.run('korenlev/calipso:sensu', detach=True, name="calipso-sensu", + ports={'22/tcp': 20022, '3000/tcp': 3000, '4567/tcp': 4567, + '5671/tcp': 5671, '15672/tcp': 15672}, + restart_policy={"Name": "always"}, + environment=["PYTHONPATH=" + PYTHONPATH], + volumes={'/home/calipso/': {'bind': '/local_dir/', 'mode': 'rw'}}) + else: + print("container named calipso-sensu already exists, please deal with it using docker...\n") + return + + +def start_ui(host, dbuser, dbpassword, webport, dbport): + if not DockerClient.containers.list(all=True, filters={"name": "calipso-ui"}): + print("\nstarting container calipso-ui...\n") + image = DockerClient.images.list(all=True, name="korenlev/calipso:ui") + if image: + print(image, "exists...not downloading...") + else: + print("image korenlev/calipso:ui missing, hold on while downloading first...\n") + image = DockerClient.images.pull("korenlev/calipso:ui") + print("Downloaded", image, "\n\n") + uicontainer = DockerClient.containers.run('korenlev/calipso:ui', detach=True, name="calipso-ui", + ports={'3000/tcp': webport}, + restart_policy={"Name": "always"}, + environment=["ROOT_URL=http://{}:{}".format(host, str(webport)), + "MONGO_URL=mongodb://{}:{}@{}:{}/calipso".format + (dbuser, dbpassword, host, str(dbport)), + "LDAP_CONFIG=" + C_LDAP_CONFIG]) + else: + print("container named calipso-ui already exists, please deal with it using docker...\n") + return + + +# function to check and stop calipso containers: + +def container_stop(container_name): + if DockerClient.containers.list(all=True, filters={"name": container_name}): + print("fetching container name", container_name, "...\n") + c = DockerClient.containers.get(container_name) + if c.status != "running": + print(container_name, "is not running...") + time.sleep(1) + print("removing container name", c.name, "...\n") + c.remove() + else: + print("killing container name", c.name, "...\n") + c.kill() + time.sleep(1) + print("removing container name", c.name, "...\n") + c.remove() + else: + print("no container named", container_name, "found...") + + +# parser for getting optional command arguments: +parser = argparse.ArgumentParser() +parser.add_argument("--hostname", help="Hostname or IP address of the server (default=172.17.0.1)",type=str, + default="172.17.0.1", required=False) +parser.add_argument("--webport", help="Port for the Calipso WebUI (default=80)",type=int, + default="80", required=False) +parser.add_argument("--dbport", help="Port for the Calipso MongoDB (default=27017)",type=int, + default="27017", required=False) +parser.add_argument("--dbuser", help="User for the Calipso MongoDB (default=calipso)",type=str, + default="calipso", required=False) +parser.add_argument("--dbpassword", help="Password for the Calipso MongoDB (default=calipso_default)",type=str, + default="calipso_default", required=False) +args = parser.parse_args() + +container = "" +action = "" +container_names = ["all", "calipso-mongo", "calipso-scan", "calipso-listen", "calipso-ldap", "calipso-api", + "calipso-sensu", "calipso-ui"] +container_actions = ["stop", "start"] +while action not in container_actions: + action = input("Action? (stop, start, or 'q' to quit):\n") + if action == "q": + exit() +while container not in container_names: + container = input("Container? (all, calipso-mongo, calipso-scan, calipso-listen, calipso-ldap, calipso-api, " + "calipso-sensu, calipso-ui or 'q' to quit):\n") + if container == "q": + exit() + +# starting the containers per arguments: +if action == "start": + # building /home/calipso/calipso_mongo_access.conf and /home/calipso/ldap.conf files, per the arguments: + calipso_mongo_access_text = "server " + args.hostname + "\nuser " + args.dbuser + "\npassword " + \ + args.dbpassword + "\nauth_db calipso" + ldap_text = "user admin" + "\npassword password" + "\nurl ldap://" + args.hostname + ":389" + \ + "\nuser_id_attribute CN" + "\nuser_pass_attribute userpassword" + \ + "\nuser_objectclass inetOrgPerson" + \ + "\nuser_tree_dn OU=Users,DC=openstack,DC=org" + "\nquery_scope one" + \ + "\ntls_req_cert allow" + \ + "\ngroup_member_attribute member" + print("creating default", H_MONGO_CONFIG, "file...\n") + calipso_mongo_access_file = open(H_MONGO_CONFIG, "w+") + time.sleep(1) + calipso_mongo_access_file.write(calipso_mongo_access_text) + calipso_mongo_access_file.close() + print("creating default", H_LDAP_CONFIG, "file...\n") + ldap_file = open(H_LDAP_CONFIG, "w+") + time.sleep(1) + ldap_file.write(ldap_text) + ldap_file.close() + + if container == "calipso-mongo" or container == "all": + start_mongo(args.dbport) + time.sleep(1) + if container == "calipso-listen" or container == "all": + start_listen() + time.sleep(1) + if container == "calipso-ldap" or container == "all": + start_ldap() + time.sleep(1) + if container == "calipso-api" or container == "all": + start_api() + time.sleep(1) + if container == "calipso-scan" or container == "all": + start_scan() + time.sleep(1) + if container == "calipso-sensu" or container == "all": + start_sensu() + time.sleep(1) + if container == "calipso-ui" or container == "all": + start_ui(args.hostname, args.dbuser, args.dbpassword, args.webport, args.dbport) + time.sleep(1) + +# stopping the containers per arguments: +if action == "stop": + if container == "calipso-mongo" or container == "all": + container_stop("calipso-mongo") + if container == "calipso-listen" or container == "all": + container_stop("calipso-listen") + if container == "calipso-ldap" or container == "all": + container_stop("calipso-ldap") + if container == "calipso-api" or container == "all": + container_stop("calipso-api") + if container == "calipso-scan" or container == "all": + container_stop("calipso-scan") + if container == "calipso-sensu" or container == "all": + container_stop("calipso-sensu") + if container == "calipso-ui" or container == "all": + container_stop("calipso-ui") diff --git a/app/install/calipso_mongo_access.conf.example b/app/install/calipso_mongo_access.conf.example new file mode 100644 index 0000000..1b3377d --- /dev/null +++ b/app/install/calipso_mongo_access.conf.example @@ -0,0 +1,4 @@ +server korlev-calipso-dev.cisco.com +user calipso +password calipso_default +auth_db calipso diff --git a/app/install/db/attributes_for_hover_on_data.json b/app/install/db/attributes_for_hover_on_data.json new file mode 100644 index 0000000..6fdc5a3 --- /dev/null +++ b/app/install/db/attributes_for_hover_on_data.json @@ -0,0 +1,89 @@ +[ +{ + "attributes" : [ + "object_name", + "model", + "mac_address", + "type", + "koren" + ], + "type" : "vnic" +}, +{ + "attributes" : [ + "object_name", + "connector_type", + "type", + "interfaces" + ], + "type" : "vconnector" +}, +{ + "attributes" : [ + "object_name", + "host", + "service_type", + "type" + ], + "type" : "vservice" +}, +{ + "attributes" : [ + "object_name", + "host", + "agent_type", + "binary", + "type" + ], + "type" : "vedge" +}, +{ + "attributes" : [ + "object_name", + "host", + "mac_address", + "Speed", + "Link detected", + "type" + ], + "type" : "pnic" +}, +{ + "attributes" : [ + "object_name", + "provider:segmentation_id", + "provider:network_type", + "type" + ], + "type" : "network" +}, +{ + "attributes" : [ + "object_name", + "host_type", + "parent_id", + "type" + ], + "type" : "host" +}, +{ + "attributes" : [ + "object_name", + "host", + "project", + "type", + "name_path" + ], + "type" : "instance" +}, +{ + "attributes" : [ + "object_name", + "overlay_type", + "ip_address", + "type", + "ports" + ], + "type" : "otep" +} +] diff --git a/app/install/db/clique_constraints.json b/app/install/db/clique_constraints.json new file mode 100644 index 0000000..e317c3d --- /dev/null +++ b/app/install/db/clique_constraints.json @@ -0,0 +1,20 @@ +[ +{ + "focal_point_type" : "instance", + "constraints" : [ + "network" + ] +}, +{ + "focal_point_type" : "vservice", + "constraints" : [ + "network" + ] +}, +{ + "constraints" : [ + "network" + ], + "focal_point_type" : "network" +} +] diff --git a/app/install/db/clique_types.json b/app/install/db/clique_types.json new file mode 100644 index 0000000..a2ef3c2 --- /dev/null +++ b/app/install/db/clique_types.json @@ -0,0 +1,56 @@ +[ +{ + "environment" : "ANY", + "focal_point_type" : "instance", + "link_types" : [ + "instance-vnic", + "vnic-vconnector", + "vconnector-vedge", + "vedge-otep", + "otep-vconnector", + "vconnector-pnic", + "pnic-network" + ], + "name" : "instance" +}, +{ + "environment" : "ANY", + "focal_point_type" : "pnic", + "link_types" : [ + "pnic-host", + "host-network", + "network-switch_pnic", + "switch_pnic-switch" + ], + "name" : "pnic_clique" +}, +{ + "environment" : "ANY", + "focal_point_type" : "vservice", + "link_types" : [ + "vservice-vnic", + "vnic-vedge", + "vedge-otep", + "otep-vconnector", + "vconnector-pnic", + "pnic-network" + ], + "name" : "vservice" +}, +{ + "environment" : "ANY", + "focal_point_type" : "network", + "link_types" : [ + "network-pnic", + "pnic-vconnector", + "vconnector-otep", + "otep-vedge", + "vedge-vconnector", + "vedge-vnic", + "vconnector-vnic", + "vnic-instance", + "vnic-vservice" + ], + "name" : "network" +} +] diff --git a/app/install/db/cliques.json b/app/install/db/cliques.json new file mode 100644 index 0000000..be99137 --- /dev/null +++ b/app/install/db/cliques.json @@ -0,0 +1,3 @@ +{ + "_id" : "xyz" +} diff --git a/app/install/db/constants.json b/app/install/db/constants.json new file mode 100644 index 0000000..0521d69 --- /dev/null +++ b/app/install/db/constants.json @@ -0,0 +1,668 @@ +[ +{ + "data" : [ + { + "label" : "network", + "value" : "network" + } + ], + "name" : "constraints" +}, +{ + "data" : [ + { + "label" : "Development", + "value" : "development" + }, + { + "label" : "Testing", + "value" : "testing" + }, + { + "label" : "Staging", + "value" : "staging" + }, + { + "label" : "Production", + "value" : "production" + } + ], + "name" : "env_types" +}, +{ + "data" : [ + { + "label" : "CRITICAL", + "value" : "critical" + }, + { + "label" : "ERROR", + "value" : "error" + }, + { + "label" : "WARNING", + "value" : "warning" + }, + { + "label" : "INFO", + "value" : "info" + }, + { + "label" : "DEBUG", + "value" : "debug" + }, + { + "label" : "NOTSET", + "value" : "notset" + } + ], + "name" : "log_levels" +}, +{ + "data" : [ + { + "label" : "OVS", + "value" : "OVS" + }, + { + "label" : "VPP", + "value" : "VPP" + }, + { + "label" : "LXB", + "value" : "LXB" + }, + { + "label" : "Arista", + "value" : "Arista" + }, + { + "label" : "Nexus", + "value" : "Nexus" + } + ], + "name" : "mechanism_drivers" +}, +{ + "data" : [ + { + "label" : "local", + "value" : "local" + }, + { + "label" : "vlan", + "value" : "vlan" + }, + { + "label" : "vxlan", + "value" : "vxlan" + }, + { + "label" : "gre", + "value" : "gre" + }, + { + "label" : "flat", + "value" : "flat" + } + ], + "name" : "type_drivers" +}, +{ + "data" : [ + { + "label" : "Sensu", + "value" : "Sensu" + } + ], + "name" : "environment_monitoring_types" +}, +{ + "data" : [ + { + "label" : "up", + "value" : "up" + }, + { + "label" : "down", + "value" : "down" + } + ], + "name" : "link_states" +}, +{ + "name" : "environment_provision_types", + "data" : [ + { + "label" : "None", + "value" : "None" + }, + { + "label" : "Deploy", + "value" : "Deploy" + }, + { + "label" : "Files", + "value" : "Files" + }, + { + "label" : "DB", + "value" : "DB" + } + ] +}, +{ + "name" : "environment_operational_status", + "data" : [ + { + "value" : "stopped", + "label" : "stopped" + }, + { + "value" : "running", + "label" : "running" + }, + { + "value" : "error", + "label" : "error" + } + ] +}, +{ + "name" : "link_types", + "data" : [ + { + "label" : "instance-vnic", + "value" : "instance-vnic" + }, + { + "label" : "otep-vconnector", + "value" : "otep-vconnector" + }, + { + "label" : "otep-pnic", + "value" : "otep-pnic" + }, + { + "label" : "pnic-network", + "value" : "pnic-network" + }, + { + "label" : "vedge-otep", + "value" : "vedge-otep" + }, + { + "label" : "vnic-vconnector", + "value" : "vnic-vconnector" + }, + { + "label" : "vconnector-pnic", + "value" : "vconnector-pnic" + }, + { + "label" : "vnic-vedge", + "value" : "vnic-vedge" + }, + { + "label" : "vconnector-vedge", + "value" : "vconnector-vedge" + }, + { + "label" : "vedge-pnic", + "value" : "vedge-pnic" + }, + { + "label" : "vservice-vnic", + "value" : "vservice-vnic" + }, + { + "label" : "pnic-host", + "value" : "pnic-host" + }, + { + "label" : "host-pnic", + "value" : "host-pnic" + }, + { + "label" : "host-network", + "value" : "host-network" + }, + { + "label" : "network-host", + "value" : "network-host" + }, + { + "label" : "switch_pnic-network", + "value" : "switch_pnic-network" + }, + { + "label" : "network-switch_pnic", + "value" : "network-switch_pnic" + }, + { + "label" : "switch_pnic-switch", + "value" : "switch_pnic-switch" + }, + { + "label" : "switch-switch_pnic", + "value" : "switch-switch_pnic" + } + ] +}, +{ + "name" : "monitoring_sides", + "data" : [ + { + "label" : "client", + "value" : "client" + }, + { + "label" : "server", + "value" : "server" + } + ] +}, +{ + "name" : "messages_severity", + "data" : [ + { + "label" : "panic", + "value" : "panic" + }, + { + "label" : "alert", + "value" : "alert" + }, + { + "label" : "crit", + "value" : "crit" + }, + { + "label" : "error", + "value" : "error" + }, + { + "label" : "warn", + "value" : "warn" + }, + { + "label" : "notice", + "value" : "notice" + }, + { + "label" : "info", + "value" : "info" + }, + { + "label" : "debug", + "value" : "debug" + } + ] +}, +{ + "name" : "object_types", + "data" : [ + { + "label" : "vnic", + "value" : "vnic" + }, + { + "label" : "vconnector", + "value" : "vconnector" + }, + { + "label" : "vedge", + "value" : "vedge" + }, + { + "label" : "instance", + "value" : "instance" + }, + { + "label" : "vservice", + "value" : "vservice" + }, + { + "label" : "pnic", + "value" : "pnic" + }, + { + "label" : "network", + "value" : "network" + }, + { + "label" : "port", + "value" : "port" + }, + { + "label" : "otep", + "value" : "otep" + }, + { + "label" : "agent", + "value" : "agent" + }, + { + "label" : "host", + "value" : "host" + }, + { + "label" : "switch_pnic", + "value" : "switch_pnic" + }, + { + "label" : "switch", + "value" : "switch" + } + ] +}, +{ + "name" : "scans_statuses", + "data" : [ + { + "value" : "draft", + "label" : "Draft" + }, + { + "value" : "pending", + "label" : "Pending" + }, + { + "value" : "running", + "label" : "Running" + }, + { + "value" : "completed", + "label" : "Completed" + }, + { + "value" : "failed", + "label" : "Failed" + }, + { + "value" : "aborted", + "label" : "Aborted" + } + ] +}, +{ + "data" : [ + { + "label" : "Mirantis-6.0", + "value" : "Mirantis-6.0" + }, + { + "label" : "Mirantis-7.0", + "value" : "Mirantis-7.0" + }, + { + "label" : "Mirantis-8.0", + "value" : "Mirantis-8.0" + }, + { + "label" : "Mirantis-9.0", + "value" : "Mirantis-9.0" + }, + { + "label" : "RDO-Mitaka", + "value" : "RDO-Mitaka" + }, + { + "label" : "RDO-Liberty", + "value" : "RDO-Liberty" + }, + { + "label" : "RDO-Juno", + "value" : "RDO-Juno" + }, + { + "label" : "RDO-kilo", + "value" : "RDO-kilo" + }, + { + "label" : "devstack-liberty", + "value" : "devstack-liberty" + }, + { + "label" : "Canonical-icehouse", + "value" : "Canonical-icehouse" + }, + { + "label" : "Canonical-juno", + "value" : "Canonical-juno" + }, + { + "label" : "Canonical-liberty", + "value" : "Canonical-liberty" + }, + { + "label" : "Canonical-mitaka", + "value" : "Canonical-mitaka" + }, + { + "label" : "Apex-Mitaka", + "value" : "Apex-Mitaka" + }, + { + "label" : "Devstack-Mitaka", + "value" : "Devstack-Mitaka" + }, + { + "label" : "packstack-7.0.0-0.10.dev1682", + "value" : "packstack-7.0.0-0.10.dev1682" + }, + { + "label" : "Stratoscale-v2.1.6", + "value" : "Stratoscale-v2.1.6" + }, + { + "label" : "Mirantis-9.1", + "value" : "Mirantis-9.1" + } + ], + "name" : "distributions" +}, +{ + "name" : "message_source_systems", + "data" : [ + { + "value" : "OpenStack", + "label" : "OpenStack" + }, + { + "value" : "Calipso", + "label" : "Calipso" + }, + { + "value" : "Sensu", + "label" : "Sensu" + } + ] +}, +{ + "name" : "object_types_for_links", + "data" : [ + { + "label" : "vnic", + "value" : "vnic" + }, + { + "label" : "vconnector", + "value" : "vconnector" + }, + { + "label" : "vedge", + "value" : "vedge" + }, + { + "label" : "instance", + "value" : "instance" + }, + { + "label" : "vservice", + "value" : "vservice" + }, + { + "label" : "pnic", + "value" : "pnic" + }, + { + "label" : "network", + "value" : "network" + }, + { + "label" : "port", + "value" : "port" + }, + { + "label" : "otep", + "value" : "otep" + }, + { + "label" : "agent", + "value" : "agent" + }, + { + "label" : "host", + "value" : "host" + }, + { + "label" : "switch_pnic", + "value" : "switch_pnic" + }, + { + "label" : "switch", + "value" : "switch" + } + ] +}, +{ + "name" : "scan_object_types", + "data" : [ + { + "label" : "vnic", + "value" : "vnic" + }, + { + "label" : "vconnector", + "value" : "vconnector" + }, + { + "label" : "vedge", + "value" : "vedge" + }, + { + "label" : "instance", + "value" : "instance" + }, + { + "label" : "vservice", + "value" : "vservice" + }, + { + "label" : "pnic", + "value" : "pnic" + }, + { + "label" : "network", + "value" : "network" + }, + { + "label" : "port", + "value" : "port" + }, + { + "label" : "otep", + "value" : "otep" + }, + { + "label" : "agent", + "value" : "agent" + }, + { + "value" : "availability_zone", + "label" : "availability_zone" + }, + { + "value" : "regions_folder", + "label" : "regions_folder" + }, + { + "value" : "instances_folder", + "label" : "instances_folder" + }, + { + "value" : "pnics_folder", + "label" : "pnics_folder" + }, + { + "value" : "vconnectors_folder", + "label" : "vconnectors_folder" + }, + { + "value" : "vedges_folder", + "label" : "vedges_folder" + }, + { + "value" : "ports_folder", + "label" : "ports_folder" + }, + { + "value" : "aggregates_folder", + "label" : "aggregates_folder" + }, + { + "value" : "vservices_folder", + "label" : "vservices_folder" + }, + { + "value" : "vnics_folder", + "label" : "vnics_folder" + }, + { + "value" : "network_agent", + "label" : "network_agent" + }, + { + "value" : "project", + "label" : "project" + }, + { + "value" : "projects_folder", + "label" : "projects_folder" + }, + { + "value" : "aggregate", + "label" : "aggregate" + }, + { + "value" : "network_agents_folder", + "label" : "network_agents_folder" + }, + { + "value" : "host", + "label" : "host" + }, + { + "value" : "region", + "label" : "region" + }, + { + "value" : "host_ref", + "label" : "host_ref" + }, + { + "value" : "network_services_folder", + "label" : "network_services_folder" + }, + { + "label" : "switch_pnic", + "value" : "switch_pnic" + }, + { + "label" : "switch", + "value" : "switch" + } + ] +} +] diff --git a/app/install/db/environments_config.json b/app/install/db/environments_config.json new file mode 100644 index 0000000..9e05687 --- /dev/null +++ b/app/install/db/environments_config.json @@ -0,0 +1,78 @@ +[ +{ + "operational" : "stopped", + "listen" : true, + "configuration" : [ + { + "name" : "OpenStack", + "admin_token" : "sadgsgsagsa", + "user" : "adminuser", + "port" : 5000, + "pwd" : "saggsgsasg", + "host" : "10.0.0.1" + }, + { + "name" : "mysql", + "password" : "sgasdggddsgsd", + "port" : 3307, + "user" : "mysqluser", + "host" : "10.0.0.1" + }, + { + "name" : "CLI", + "user" : "sshuser", + "pwd" : "sagsagsagsa", + "host" : "10.0.0.1" + }, + { + "name" : "AMQP", + "password" : "sagssdgassgd", + "port" : 5673, + "user" : "rabbitmquser", + "host" : "10.0.0.1" + }, + { + "rabbitmq_port" : 5671, + "ssh_user" : "root", + "server_name" : "sensu_server", + "env_type" : "production", + "provision" : "None", + "name" : "Monitoring", + "ssh_port" : 20022, + "rabbitmq_pass" : "sagsagss", + "ssh_password" : "calipsoasgsagdg", + "rabbitmq_user" : "sensu", + "config_folder" : "/local_dir/sensu_config", + "type" : "Sensu", + "server_ip" : "10.0.0.1", + "api_port" : 4567 + }, + { + "name" : "ACI", + "user" : "admin", + "pwd" : "Cisco123456", + "host" : "10.1.1.104" + } + ], + "enable_monitoring" : true, + "name" : "DEMO-ENVIRONMENT-SCHEME", + "distribution" : "Mirantis-8.0", + "last_scanned" : "filled-by-scanning", + "app_path" : "/home/scan/calipso_prod/app", + "scanned" : false, + "type_drivers" : "vxlan", + "mechanism_drivers" : [ + "OVS" + ], + "user" : "wNLeBJxNDyw8G7Ssg", + "auth" : { + "edit-env" : [ + "wNLeBJxNDyw8G7Ssg" + ], + "view-env" : [ + "wNLeBJxNDyw8G7Ssg" + ] + }, + "type" : "environment" +} +] diff --git a/app/install/db/inventory.json b/app/install/db/inventory.json new file mode 100644 index 0000000..be99137 --- /dev/null +++ b/app/install/db/inventory.json @@ -0,0 +1,3 @@ +{ + "_id" : "xyz" +} diff --git a/app/install/db/link_types.json b/app/install/db/link_types.json new file mode 100644 index 0000000..30a610c --- /dev/null +++ b/app/install/db/link_types.json @@ -0,0 +1,184 @@ +[ +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "instance-vnic", + "endPointA" : "instance", + "endPointB" : "vnic", + "type" : "instance-vnic" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "vnic-vconnector", + "endPointA" : "vnic", + "endPointB" : "vconnector", + "type" : "vnic-vconnector" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "vconnector-vedge", + "endPointA" : "vconnector", + "endPointB" : "vedge", + "type" : "vconnector-vedge" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "vedge-otep", + "endPointA" : "vedge", + "endPointB" : "otep", + "type" : "vedge-otep" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "vconnector-pnic", + "endPointA" : "vconnector", + "endPointB" : "pnic", + "type" : "vconnector-pnic" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "pnic-network", + "endPointA" : "pnic", + "endPointB" : "network", + "type" : "pnic-network" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "otep-vconnector", + "endPointA" : "otep", + "endPointB" : "vconnector", + "type" : "otep-vconnector" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "vnic-vedge", + "endPointA" : "vnic", + "endPointB" : "vedge", + "type" : "vnic-vedge" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "network-pnic", + "endPointA" : "network", + "endPointB" : "pnic", + "type" : "network-pnic" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "vedge-vconnector", + "endPointA" : "vedge", + "endPointB" : "vconnector", + "type" : "vedge-vconnector" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "vconnector-vnic", + "endPointA" : "vconnector", + "endPointB" : "vnic", + "type" : "vconnector-vnic" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "vnic-instance", + "endPointA" : "vnic", + "endPointB" : "instance", + "type" : "vnic-instance" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "vnic-vservice", + "endPointA" : "vnic", + "endPointB" : "vservice", + "type" : "vnic-vservice" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "vservice-vnic", + "endPointA" : "vservice", + "endPointB" : "vnic", + "type" : "vservice-vnic" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "pnic-vconnector", + "endPointA" : "pnic", + "endPointB" : "vconnector", + "type" : "pnic-vconnector" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "vconnector-otep", + "endPointA" : "vconnector", + "endPointB" : "otep", + "type" : "vconnector-otep" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "otep-vedge", + "endPointA" : "otep", + "endPointB" : "vedge", + "type" : "otep-vedge" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "vedge-vnic", + "endPointA" : "vedge", + "endPointB" : "vnic", + "type" : "vedge-vnic" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "pnic-host", + "endPointA" : "pnic", + "endPointB" : "host", + "type" : "pnic-host" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "host-pnic", + "endPointA" : "host", + "endPointB" : "pnic", + "type" : "host-pnic" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "host-network", + "endPointA" : "host", + "endPointB" : "network", + "type" : "host-network" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "network-host", + "endPointA" : "network", + "endPointB" : "host", + "type" : "network-host" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "network-switch_pnic", + "endPointA" : "network", + "endPointB" : "switch_pnic", + "type" : "network-switch_pnic" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "switch_pnic-network", + "endPointA" : "switch_pnic", + "endPointB" : "network", + "type" : "switch_pnic-network" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "switch_pnic-switch", + "endPointA" : "switch_pnic", + "endPointB" : "switch", + "type" : "switch_pnic-switch" +}, +{ + "user_id" : "WS7j8oTbWPf3LbNne", + "description" : "switch-switch_pnic", + "endPointA" : "switch", + "endPointB" : "switch_pnic", + "type" : "switch-switch_pnic" +} +] diff --git a/app/install/db/links.json b/app/install/db/links.json new file mode 100644 index 0000000..be99137 --- /dev/null +++ b/app/install/db/links.json @@ -0,0 +1,3 @@ +{ + "_id" : "xyz" +} diff --git a/app/install/db/messages.json b/app/install/db/messages.json new file mode 100644 index 0000000..b6c27cc --- /dev/null +++ b/app/install/db/messages.json @@ -0,0 +1,44 @@ +[ +{ + "message" : "2017-07-03 09:16:47,563 INFO: scanning : type=vnic, parent: (type=vnics_folder, name=vNICs, id=72bda9ec-2d0d-424c-8558-88ec22f09c95-vnics)", + "related_object" : null, + "received_timestamp" : null, + "finished_timestamp" : null, + "level" : "info", + "display_context" : null, + "viewed" : false, + "id" : "17350.33407.563988", + "source_system" : "CALIPSO", + "related_object_type" : null, + "timestamp" : "2017-07-03T09:16:47.563988", + "environment" : null +}, +{ + "related_object_type" : null, + "finished_timestamp" : null, + "environment" : null, + "received_timestamp" : null, + "related_object" : null, + "source_system" : "CALIPSO", + "message" : "2017-07-04 13:38:41,431 INFO: Started EventManager with following configuration:\nMongo config file path: /local_dir/calipso_mongo_access.conf\nCollection: environments_config\nPolling interval: 5 second(s)", + "timestamp" : "2017-07-04T13:38:41.431470", + "id" : "17351.49121.431470", + "level" : "info", + "viewed" : false, + "display_context" : null +}, +{ + "display_context" : null, + "level" : "info", + "id" : "17351.49126.596498", + "environment" : null, + "finished_timestamp" : null, + "viewed" : false, + "message" : "2017-07-04 13:38:46,596 INFO: Started ScanManager with following configuration:\nMongo config file path: /local_dir/calipso_mongo_access.conf\nScans collection: scans\nEnvironments collection: environments_config\nPolling interval: 1 second(s)", + "timestamp" : "2017-07-04T13:38:46.596498", + "related_object" : null, + "received_timestamp" : null, + "related_object_type" : null, + "source_system" : "CALIPSO" +} +] diff --git a/app/install/db/meteor_accounts_loginServiceConfiguration.json b/app/install/db/meteor_accounts_loginServiceConfiguration.json new file mode 100644 index 0000000..be99137 --- /dev/null +++ b/app/install/db/meteor_accounts_loginServiceConfiguration.json @@ -0,0 +1,3 @@ +{ + "_id" : "xyz" +} diff --git a/app/install/db/monitoring_config.json b/app/install/db/monitoring_config.json new file mode 100644 index 0000000..be99137 --- /dev/null +++ b/app/install/db/monitoring_config.json @@ -0,0 +1,3 @@ +{ + "_id" : "xyz" +} diff --git a/app/install/db/monitoring_config_templates.json b/app/install/db/monitoring_config_templates.json new file mode 100644 index 0000000..2e6d9ba --- /dev/null +++ b/app/install/db/monitoring_config_templates.json @@ -0,0 +1,378 @@ +[ +{ + "side" : "client", + "order" : "1", + "config" : { + "rabbitmq" : { + "port" : "{rabbitmq_port}", + "vhost" : "/sensu", + "password" : "{rabbitmq_pass}", + "host" : "{server_ip}", + "user" : "{rabbitmq_user}", + "ssl" : { + "cert_chain_file" : "/etc/sensu/ssl/cert.pem", + "private_key_file" : "/etc/sensu/ssl/key.pem" + } + } + }, + "monitoring_system" : "sensu", + "type" : "rabbitmq.json" +}, +{ + "side" : "client", + "order" : "1", + "config" : { + "transport" : { + "name" : "rabbitmq", + "reconnect_on_error" : true + } + }, + "monitoring_system" : "sensu", + "type" : "transport.json" +}, +{ + "side" : "server", + "order" : "1", + "config" : { + "redis" : { + "port" : "6379", + "host" : "127.0.0.1" + } + }, + "monitoring_system" : "sensu", + "type" : "redis.json" +}, +{ + "side" : "client", + "order" : "1", + "config" : { + "api" : { + "port" : 4567, + "host" : "{server_ip}" + }, + "client" : { + "address" : "{client_name}", + "subscriptions" : [ + + ], + "name" : "{client_name}", + "environment" : "{env_name}" + } + }, + "monitoring_system" : "sensu", + "type" : "client.json" +}, +{ + "side" : "server", + "order" : "1", + "config" : { + "transport" : { + "name" : "rabbitmq", + "reconnect_on_error" : true + } + }, + "monitoring_system" : "sensu", + "type" : "transport.json" +}, +{ + "side" : "client", + "order" : "1", + "config" : { + "checks" : { + "{objtype}_{objid}_{portid}" : { + "interval" : 15, + "command" : "check_ping.py -c 10 -i 0.5 -p 4f532d444e41 -w 10 -s 256 -f {otep_src_ip} -t {otep_dest_ip} -W 1%/301.11/600 -C 10%/1020.12/2000", + "standalone" : true, + "type": "metric", + "subscribers" : [ + "base" + ], + "handlers" : [ + "default", + "file", + "osdna-monitor" + ] + } + } + }, + "monitoring_system" : "sensu", + "type" : "client_check_otep.json" +}, +{ + "side" : "server", + "order" : "1", + "config" : { + "rabbitmq" : { + "port" : "{rabbitmq_port}", + "vhost" : "/sensu", + "password" : "{rabbitmq_pass}", + "host" : "{server_ip}", + "user" : "{rabbitmq_user}", + "ssl" : { + "cert_chain_file" : "/etc/sensu/ssl/cert.pem", + "private_key_file" : "/etc/sensu/ssl/key.pem" + } + } + }, + "monitoring_system" : "sensu", + "type" : "rabbitmq.json" +}, +{ + "side" : "server", + "order" : "1", + "config" : { + "api" : { + "port" : 4567, + "host" : "{server_ip}", + "bind" : "0.0.0.0" + } + }, + "monitoring_system" : "sensu", + "type" : "api.json" +}, +{ + "side" : "server", + "order" : "1", + "config" : { + "client" : { + "address" : "sensu-server", + "socket" : { + "port" : 3030, + "bind" : "127.0.0.1" + }, + "subscriptions" : [ + "dev", + "base", + "test" + ], + "name" : "{server_name}", + "environment" : "{env_type}" + }, + "keepalive" : { + "handlers" : [ + "default", + "file" + ] + } + }, + "monitoring_system" : "sensu", + "type" : "client.json" +}, +{ + "side" : "server", + "order" : "1", + "config" : { + "filters" : { + "state_change_only" : { + "negate" : true, + "attributes" : { + "check" : { + "history" : "eval: value.last == value[-2]" + } + } + + } + } + }, + "monitoring_system" : "sensu", + "type" : "filters.json" +}, +{ + "side" : "server", + "order" : "1", + "config" : { + "handlers" : { + "osdna-monitor" : { + "timeout" : 20, + "command" : "PYTHONPATH={app_path} {app_path}/monitoring/handlers/monitor.py -m /local_dir/calipso_mongo_access.conf", + "type" : "pipe", + "filter" : "state_change_only" + }, + "file" : { + "timeout" : 20, + "command" : "/etc/sensu/plugins/event-file.rb", + "type" : "pipe", + "filter" : "state_change_only" + } + } + }, + "monitoring_system" : "sensu", + "type" : "handlers.json" +}, +{ + "type" : "client_check_vedge.json", + "side" : "client", + "condition" : { + "mechanism_drivers" : [ + "VPP" + ] + }, + "config" : { + "checks" : { + "{objtype}_{objid}" : { + "interval" : 15, + "command" : "check_vedge_vpp.py", + "standalone" : true, + "type": "metric", + "subscribers" : [ + "base" + ], + "handlers" : [ + "default", + "file", + "osdna-monitor" + ] + } + } + }, + "monitoring_system" : "sensu", + "order" : "1" +}, +{ + "side" : "client", + "order" : "1", + "condition" : { + "mechanism_drivers" : [ + "VPP" + ] + }, + "config" : { + "checks" : { + "{objtype}_{vnictype}_{objid}" : { + "interval" : 15, + "command" : "check_vnic_vpp.py", + "standalone" : true, + "type": "metric", + "subscribers" : [ + "base" + ], + "handlers" : [ + "default", + "file", + "osdna-monitor" + ] + } + } + }, + "monitoring_system" : "sensu", + "type" : "client_check_vnic.json" +}, +{ + "side" : "client", + "config" : { + "checks" : { + "{objtype}_{objid}" : { + "interval" : 15, + "command" : "check_vedge_ovs.py", + "standalone" : true, + "type": "metric", + "subscribers" : [ + "base" + ], + "handlers" : [ + "default", + "file", + "osdna-monitor" + ] + } + } + }, + "type" : "client_check_vedge.json", + "condition" : { + "mechanism_drivers" : [ + "OVS" + ] + }, + "monitoring_system" : "sensu", + "order" : "1" +}, +{ + "side" : "client", + "order" : "1", + "condition" : { + "mechanism_drivers" : [ + "OVS", + "LXB" + ] + }, + "config" : { + "checks" : { + "link_{linktype}_{fromobjid}_{toobjid}" : { + "interval" : 15, + "command" : "check_vnic_vconnector.py {bridge} {mac_address}", + "standalone" : true, + "type": "metric", + "subscribers" : [ + "base" + ], + "handlers" : [ + "default", + "file", + "osdna-monitor" + ] + } + } + }, + "monitoring_system" : "sensu", + "type" : "client_check_link_vnic-vconnector.json" +}, +{ + "side" : "client", + "order" : "1", + "condition" : { + "mechanism_drivers" : [ + "VPP" + ] + }, + "config" : { + "checks" : { + "{objtype}_{objid}" : { + "interval" : 15, + "command" : "check_pnic_vpp.py", + "standalone" : true, + "type": "metric", + "subscribers" : [ + "base" + ], + "handlers" : [ + "default", + "file", + "osdna-monitor" + ] + } + } + }, + "monitoring_system" : "sensu", + "type" : "client_check_pnic.json" +}, +{ + "side" : "client", + "order" : "1", + "condition" : { + "mechanism_drivers" : [ + "OVS", + "LXB" + ] + }, + "config" : { + "checks" : { + "{objtype}_{objid}" : { + "interval" : 15, + "command" : "PYTHONPATH=/etc/sensu/plugins check_vservice.py {service_type} {local_service_id}", + "standalone" : true, + "type": "metric", + "subscribers" : [ + "base" + ], + "handlers" : [ + "default", + "file", + "osdna-monitor" + ] + } + } + }, + "monitoring_system" : "sensu", + "type" : "client_check_vservice.json" +} +] diff --git a/app/install/db/network_agent_types.json b/app/install/db/network_agent_types.json new file mode 100644 index 0000000..ba01ef2 --- /dev/null +++ b/app/install/db/network_agent_types.json @@ -0,0 +1,52 @@ +[ +{ + "folder_text" : "VPNs", + "description" : "VPN agent", + "type" : "vpn" +}, +{ + "folder_text" : "Firewalls", + "description" : "Firewall agent", + "type" : "firewall" +}, +{ + "folder_text" : "vEdges", + "description" : "L2 agent", + "type" : "vedge" +}, +{ + "folder_text" : "Gateways", + "description" : "L3 agent", + "type" : "router" +}, +{ + "folder_text" : "Metadata", + "description" : "Metadata agent", + "type" : "metadata" +}, +{ + "folder_text" : "Load-Balancers", + "description" : "Load Balancing agent", + "type" : "load_balancer" +}, +{ + "folder_text" : "vEdges", + "description" : "Open vSwitch agent", + "type" : "vedge" +}, +{ + "folder_text" : "vConnectors", + "description" : "Linux bridge agent", + "type" : "vconnector" +}, +{ + "folder_text" : "DHCP servers", + "description" : "DHCP agent", + "type" : "dhcp" +}, +{ + "folder_text" : "Orchestrators", + "description" : "Orchestrator", + "type" : "orchestrator" +} +] diff --git a/app/install/db/roles.json b/app/install/db/roles.json new file mode 100644 index 0000000..78a7c75 --- /dev/null +++ b/app/install/db/roles.json @@ -0,0 +1,26 @@ +[ +{ + "_id" : "z5W5wQqTnSHMYxXRB", + "name" : "manage-users" +}, +{ + "_id" : "q3o6nbR3xY88KyCkt", + "name" : "manage-link-types" +}, +{ + "_id" : "odxGpkgQ3oexmXYhc", + "name" : "manage-clique-types" +}, +{ + "_id" : "RcEgj6kJnkPqpyJzR", + "name" : "manage-clique-constraints" +}, +{ + "_id" : "7gs3Fyow2Cryc4cdf", + "name" : "view-env" +}, +{ + "_id" : "DyhzqcNymdYgkzyie", + "name" : "edit-env" +} +] diff --git a/app/install/db/scans.json b/app/install/db/scans.json new file mode 100644 index 0000000..cb480d2 --- /dev/null +++ b/app/install/db/scans.json @@ -0,0 +1,24 @@ +[ +{ + "status" : "completed", + "inventory" : "inventory", + "start_timestamp" : "2017-05-17T11:00:17.939+0000", + "scan_only_inventory" : false, + "scan_only_links" : false, + "submit_timestamp" : "2017-05-17T07:53:09.194+0000", + "log_level" : "warning", + "scan_only_cliques" : false, + "clear" : true, + "environment" : "Mirantis-Liberty" +}, +{ + "status" : "failed", + "scan_only_inventory" : false, + "scan_only_links" : false, + "submit_timestamp" : "2017-06-14T13:42:32.710+0000", + "log_level" : "info", + "scan_only_cliques" : false, + "clear" : true, + "environment" : "staging" +} +] diff --git a/app/install/db/scheduled_scans.json b/app/install/db/scheduled_scans.json new file mode 100644 index 0000000..8f0c516 --- /dev/null +++ b/app/install/db/scheduled_scans.json @@ -0,0 +1,43 @@ +[ +{ + "clear" : true, + "environment" : "staging", + "freq" : "WEEKLY", + "log_level" : "warning", + "scan_only_cliques" : false, + "scan_only_inventory" : true, + "scan_only_links" : false, + "submit_timestamp" : "2017-07-02T13:46:29.206+0000" +}, +{ + "clear" : false, + "environment" : "staging", + "freq" : "WEEKLY", + "log_level" : "warning", + "scan_only_cliques" : false, + "scan_only_inventory" : true, + "scan_only_links" : false, + "submit_timestamp" : "2017-07-02T13:46:36.079+0000" +}, +{ + "clear" : false, + "environment" : "staging", + "freq" : "WEEKLY", + "log_level" : "warning", + "scan_only_cliques" : false, + "scan_only_inventory" : true, + "scan_only_links" : false, + "submit_timestamp" : "2017-07-02T13:46:41.004+0000" +}, +{ + "scan_only_inventory" : true, + "freq" : "WEEKLY", + "scan_only_links" : false, + "scan_only_cliques" : false, + "log_level" : "warning", + "environment" : "staging", + "submit_timestamp" : "2017-07-02T14:38:09.032+0000", + "scheduled_timestamp" : "2017-07-08T14:38:09.032+0000", + "clear" : true +} +] diff --git a/app/install/db/statistics.json b/app/install/db/statistics.json new file mode 100644 index 0000000..195e0ec --- /dev/null +++ b/app/install/db/statistics.json @@ -0,0 +1,23 @@ +[ +{ + "recordGenerationMillis" : 1487147277000, + "object_id" : "devstack-vpp2-VPP", + "sample_time" : "2017-02-15T08:15:10Z", + "ingressInterface" : 2, + "averageArrivalNanoSeconds" : 1487146510773984049, + "destinationMacAddress" : "fa:16:3e:5d:7b:ae", + "destination" : "iperf2", + "packetCount" : 2, + "source" : "iperf1", + "object_type" : "vedge", + "sourceMacAddress" : "fa:16:3e:58:64:c6", + "ethernetType" : 2048, + "egressInterface" : 3, + "environment" : "Devstack-VPP", + "flowType" : "L2", + "data_arrival_avg" : 1487146510, + "type" : "vedge_flows", + "averageThroughput" : 17280, + "hostIp" : "10.56.20.78" +} +] diff --git a/app/install/db/supported_environments.json b/app/install/db/supported_environments.json new file mode 100644 index 0000000..1214ef3 --- /dev/null +++ b/app/install/db/supported_environments.json @@ -0,0 +1,230 @@ +[ +{ + "environment" : { + "distribution" : "Stratoscale-v2.1.6", + "mechanism_drivers" : "OVS", + "type_drivers" : "vlan" + }, + "features" : { + "monitoring" : true, + "listening" : false, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "Mirantis-6.0", + "mechanism_drivers" : "OVS", + "type_drivers" : "vxlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "Mirantis-7.0", + "mechanism_drivers" : "OVS", + "type_drivers" : "vxlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "Mirantis-8.0", + "mechanism_drivers" : "OVS", + "type_drivers" : "vxlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "Mirantis-9.1", + "mechanism_drivers" : "OVS", + "type_drivers" : "vxlan" + }, + "features" : { + "monitoring" : true, + "listening" : false, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "RDO-Mitaka", + "mechanism_drivers" : "OVS", + "type_drivers" : "vxlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "RDO-Liberty", + "mechanism_drivers" : "OVS", + "type_drivers" : "vxlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "Mirantis-9.0", + "mechanism_drivers" : "OVS", + "type_drivers" : "vxlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "Mirantis-9.0", + "mechanism_drivers" : "OVS", + "type_drivers" : "vlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "Mirantis-8.0", + "mechanism_drivers" : "OVS", + "type_drivers" : "vlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "Mirantis-6.0", + "mechanism_drivers" : "OVS", + "type_drivers" : "vlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "Mirantis-7.0", + "mechanism_drivers" : "OVS", + "type_drivers" : "vlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "Mirantis-9.1", + "mechanism_drivers" : "OVS", + "type_drivers" : "vlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "RDO-Mitaka", + "mechanism_drivers" : "VPP", + "type_drivers" : "vxlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "RDO-Mitaka", + "mechanism_drivers" : "VPP", + "type_drivers" : "vlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "Devstack-Mitaka", + "mechanism_drivers" : "VPP", + "type_drivers" : "vlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "Devstack-Mitaka", + "mechanism_drivers" : "VPP", + "type_drivers" : "vxlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "RDO-Mitaka", + "mechanism_drivers" : "OVS", + "type_drivers" : "vlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +}, +{ + "environment" : { + "distribution" : "RDO-Liberty", + "mechanism_drivers" : "OVS", + "type_drivers" : "vlan" + }, + "features" : { + "monitoring" : true, + "listening" : true, + "scanning" : true + } +} +] diff --git a/app/install/db/users.json b/app/install/db/users.json new file mode 100644 index 0000000..a0ccdb3 --- /dev/null +++ b/app/install/db/users.json @@ -0,0 +1,51 @@ +[ +{ + "_id" : "wNLeBJxNDyw8G7Ssg", + "createdAt" : "2017-06-22T18:20:43.963+0000", + "services" : { + "password" : { + "bcrypt" : "$2a$10$LRnem9Y5OIo0hYpqi8JY5.G7uMp1LKAyHiq.ha2xHWmbPRo7CJuUS" + }, + "resume" : { + "loginTokens" : [ + { + "when" : "2017-06-29T16:41:06.183+0000", + "hashedToken" : "x2WrmQXpX6slx1/y+ReTuTZAqmPFMCX1ZI+N9COkK7c=" + }, + { + "when" : "2017-07-02T08:22:34.591+0000", + "hashedToken" : "Ls5V0a2I90A5TWWYU8kIZ5ByJR/fK8Kt5R65ch/iPt8=" + }, + { + "when" : "2017-07-02T15:02:09.357+0000", + "hashedToken" : "tEHXx9BGQUATbrHEaQyXm693Dfe5mzf8QPM9zpGnykE=" + }, + { + "when" : "2017-07-03T06:34:38.405+0000", + "hashedToken" : "WiI6vfcQ9zAnMN8SqBmfrF14ndBVLAQzhpsf9DZarRA=" + } + ] + } + }, + "username" : "admin", + "emails" : [ + { + "address" : "admin@example.com", + "verified" : false + } + ], + "profile" : { + "name" : "admin" + }, + "roles" : { + "__global_roles__" : [ + "manage-users", + "manage-link-types", + "manage-clique-types", + "manage-clique-constraints", + "view-env", + "edit-env" + ] + } +} +] diff --git a/app/install/ldap.conf.example b/app/install/ldap.conf.example new file mode 100644 index 0000000..b1798f7 --- /dev/null +++ b/app/install/ldap.conf.example @@ -0,0 +1,10 @@ +user admin +password password +url ldap://korlev-calipso-dev.cisco.com:389 +user_id_attribute CN +user_pass_attribute userpassword +user_objectclass inetOrgPerson +user_tree_dn OU=Users,DC=openstack,DC=org +query_scope one +tls_req_cert allow +group_member_attribute member -- cgit 1.2.3-korg