diff --git a/src/server_mgr_main.py b/src/server_mgr_main.py index d5144ab1..21e21e72 100755 --- a/src/server_mgr_main.py +++ b/src/server_mgr_main.py @@ -1717,6 +1717,7 @@ def put_server(self): try: self.validate_smgr_entity("server", entity) servers = entity.get("server", None) + new_servers = [] for server in servers: self.plug_mgmt_intf_details(server) self.validate_server_mgr_tags(server) @@ -1741,6 +1742,7 @@ def put_server(self): self._serverDb.modify_server(server) server_fields['primary_keys'] = "['id', 'mac_address']" else: + new_servers.append(server) self.validate_smgr_request("SERVER", "PUT", bottle.request, server) server['status'] = "server_added" @@ -1749,9 +1751,8 @@ def put_server(self): # Trigger to collect monitoring info # End of for - self._monitoring_base_plugin_obj.setup_keys(new_servers=servers) - if self._server_inventory_obj: - gevent.spawn(self._server_inventory_obj.handle_inventory_trigger, "add", servers) + if len(new_servers): + gevent.spawn(self._monitoring_base_plugin_obj.setup_keys, None, new_servers) except ServerMgrException as e: self._smgr_trans_log.log(bottle.request, self._smgr_trans_log.PUT_SMGR_CFG_SERVER, False) diff --git a/src/server_mgr_mon_base_plugin.py b/src/server_mgr_mon_base_plugin.py index 9cf4f5a1..e5591151 100644 --- a/src/server_mgr_mon_base_plugin.py +++ b/src/server_mgr_mon_base_plugin.py @@ -654,7 +654,6 @@ def initialize_features(self, sm_args, serverdb): self.server_inventory_obj.set_ipmi_defaults(sm_args.ipmi_username, sm_args.ipmi_password) self.server_inventory_obj.add_inventory() else: - #gevent.spawn(self.setup_keys, serverdb) self._smgr_log.log(self._smgr_log.ERROR, "Inventory configuration not set. " "You will be unable to get Inventory information from servers.") @@ -670,6 +669,8 @@ def setup_keys(self, server_db=None, new_servers=None): #If keys are the deleted from the DB then create and copy them to the target elif server['ssh_private_key'] is None and 'id' in server and 'ip_address' in server and server['id']: self.create_store_copy_ssh_keys(server['id'], server['ip_address']) + if self.inventory_config_set and new_servers: + self.server_inventory_obj.handle_inventory_trigger("add", servers) def create_server_dict(self, servers): return_dict = dict()