diff options
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | app/discover/fetchers/db/db_access.py | 25 | ||||
-rw-r--r-- | app/install/db/constants.json | 4 | ||||
-rw-r--r-- | app/install/db/supported_environments.json | 12 | ||||
-rw-r--r-- | app/test/fetch/test_fetch.py | 2 | ||||
-rw-r--r-- | docs/release/admin-guide.pdf | 1 | ||||
-rw-r--r-- | docs/release/install-guide.pdf | 1 | ||||
-rw-r--r-- | docs/release/quick-start.pdf | 1 |
8 files changed, 39 insertions, 11 deletions
@@ -36,7 +36,7 @@ Provide CNA and TNA with support for: <br> 5. baseline plugin framework for analytics of this type of data/details -### Proto (mockups, updated Jul 15th) +### Proto (pre-release, updated Aug 15th) calipso.io ### Contacts @@ -48,4 +48,4 @@ Calipso uses Sensu framework for Monitoring. It automatically deploys and config After collecting the data, from processes and workers provisioned by the cloud management systems, calipso dynamically checks for health and availability, as a baseline for SLA monitoring. Calipso allows networking administrators to operate, plan for maintenance or troubleshooting and provides an easy to use hierarchical representation of all the virtual networking components. Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) -and others.
\ No newline at end of file +and others. diff --git a/app/discover/fetchers/db/db_access.py b/app/discover/fetchers/db/db_access.py index 0174c4b..49fdb5e 100644 --- a/app/discover/fetchers/db/db_access.py +++ b/app/discover/fetchers/db/db_access.py @@ -11,6 +11,7 @@ import mysql.connector from discover.configuration import Configuration from discover.fetcher import Fetcher +from discover.scan_error import ScanError from utils.string_utils import jsonify @@ -27,15 +28,7 @@ class DbAccess(Fetcher): self.config = Configuration() self.conf = self.config.get("mysql") self.connect_to_db() - cursor = DbAccess.conn.cursor(dictionary=True) - try: - # check if DB schema 'neutron' exists - cursor.execute("SELECT COUNT(*) FROM neutron.agents") - for row in cursor: - pass - self.neutron_db = "neutron" - except (AttributeError, mysql.connector.errors.ProgrammingError): - self.neutron_db = "ml2_neutron" + self.neutron_db = self.get_neutron_db_name() def db_connect(self, _host, _port, _user, _pwd, _database): if DbAccess.conn: @@ -54,6 +47,20 @@ class DbAccess(Fetcher): return DbAccess.query_count_per_con = 0 + @staticmethod + def get_neutron_db_name(): + # check if DB schema 'neutron' exists + cursor = DbAccess.conn.cursor(dictionary=True) + cursor.execute('SHOW DATABASES') + matches = [row.get('Database', '') for row in cursor + if 'neutron' in row.get('Database', '')] + if not matches: + raise ScanError('Unable to find Neutron schema in OpenStack DB') + if len(matches) > 1: + raise ScanError('Found multiple possible names for Neutron schema ' + 'in OpenStack DB') + return matches[0] + def connect_to_db(self, force=False): if DbAccess.conn: if not force: diff --git a/app/install/db/constants.json b/app/install/db/constants.json index 4aba092..e456873 100644 --- a/app/install/db/constants.json +++ b/app/install/db/constants.json @@ -494,6 +494,10 @@ { "value" : "Mirantis-10.0", "label" : "Mirantis-10.0" + }, + { + "value" : "Apex-Euphrates", + "label" : "Apex-Euphrates" } ], "name" : "distributions" diff --git a/app/install/db/supported_environments.json b/app/install/db/supported_environments.json index 987d96d..606f5ef 100644 --- a/app/install/db/supported_environments.json +++ b/app/install/db/supported_environments.json @@ -11,6 +11,18 @@ "listening" : true } }, +{ + "environment" : { + "distribution" : "Apex-Euphrates", + "type_drivers" : "vxlan", + "mechanism_drivers" : "OVS" + }, + "features" : { + "scanning" : true, + "monitoring" : true, + "listening" : true + } +}, { "environment" : { "distribution" : "Stratoscale-v2.1.6", diff --git a/app/test/fetch/test_fetch.py b/app/test/fetch/test_fetch.py index 55d7d4c..d40a52c 100644 --- a/app/test/fetch/test_fetch.py +++ b/app/test/fetch/test_fetch.py @@ -59,6 +59,8 @@ class TestFetch(unittest.TestCase): self.inv = InventoryMgr() self.inv.set_collections(self.inventory_collection) DbAccess.conn = MagicMock() + DbAccess.get_neutron_db_name = MagicMock() + DbAccess.get_neutron_db_name.return_value = "neutron" SshConnection.connect = MagicMock() SshConnection.check_definitions = MagicMock() SshConn.check_definitions = MagicMock() diff --git a/docs/release/admin-guide.pdf b/docs/release/admin-guide.pdf new file mode 100644 index 0000000..9f306f6 --- /dev/null +++ b/docs/release/admin-guide.pdf @@ -0,0 +1 @@ +this will hold administrator guide on how to use the calipso app diff --git a/docs/release/install-guide.pdf b/docs/release/install-guide.pdf new file mode 100644 index 0000000..827a24f --- /dev/null +++ b/docs/release/install-guide.pdf @@ -0,0 +1 @@ +this will hold the detailed calipso install process and procedure diff --git a/docs/release/quick-start.pdf b/docs/release/quick-start.pdf new file mode 100644 index 0000000..4a0c2d9 --- /dev/null +++ b/docs/release/quick-start.pdf @@ -0,0 +1 @@ +this will hold quick start guide for running and using calipso app |