You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2017/04/25 22:25:01 UTC

[3/6] qpid-dispatch git commit: DISPATCH-390: refactor - remove dead code

DISPATCH-390: refactor - remove dead code

- qd_bind_state_t set but never used
- threads_active set but never used
- is_connector set but never used
- pyflakes errors in system_tests_*manage*.py
- mark private connection_manager.c functions as static


Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/c2a1a32d
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/c2a1a32d
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/c2a1a32d

Branch: refs/heads/master
Commit: c2a1a32d1313eb7669aa67a5c216de32c63e70cc
Parents: 5e61dd9
Author: Alan Conway <ac...@redhat.com>
Authored: Fri Mar 3 00:33:29 2017 -0500
Committer: Alan Conway <ac...@redhat.com>
Committed: Tue Apr 25 18:13:59 2017 -0400

----------------------------------------------------------------------
 include/qpid/dispatch/connection_manager.h |   8 --
 include/qpid/dispatch/server.h             |  20 ++++
 src/connection_manager.c                   | 148 +++++++++++-------------
 src/server.c                               |   5 -
 src/server_private.h                       |   6 -
 tests/system_tests_management.py           |  24 +---
 tests/system_tests_qdmanage.py             |   3 +-
 7 files changed, 93 insertions(+), 121 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c2a1a32d/include/qpid/dispatch/connection_manager.h
----------------------------------------------------------------------
diff --git a/include/qpid/dispatch/connection_manager.h b/include/qpid/dispatch/connection_manager.h
index 28a944c..12ac35e 100644
--- a/include/qpid/dispatch/connection_manager.h
+++ b/include/qpid/dispatch/connection_manager.h
@@ -54,18 +54,10 @@ void qd_connection_manager_free(qd_connection_manager_t *cm);
 void qd_config_listener_free(qd_connection_manager_t *cm, qd_config_listener_t *cl);
 
 /**
- * Free the SSL Profile. Only SSL Profiles that are not referenced from other connectors/listeners can be freed.
- * @return true if the ssl_profile has been freed, false if it is being referenced and cannot be freed
- */
-bool qd_config_ssl_profile_free(qd_connection_manager_t *cm, qd_config_ssl_profile_t *ssl_profile);
-
-
-/**
  * Free all the resources associated with a config connector
  */
 void qd_config_connector_free(qd_connection_manager_t *cm, qd_config_connector_t *cl);
 
-
 /**
  * Start the configured Listeners and Connectors
  *

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c2a1a32d/include/qpid/dispatch/server.h
----------------------------------------------------------------------
diff --git a/include/qpid/dispatch/server.h b/include/qpid/dispatch/server.h
index 529c566..a466ec0 100644
--- a/include/qpid/dispatch/server.h
+++ b/include/qpid/dispatch/server.h
@@ -447,6 +447,26 @@ typedef struct qd_server_config_t {
      * Configured failover list
      */
     qd_failover_list_t *failover_list;
+
+    /**
+     * @name These fields are not primary configuration, they are computed.
+     * @{
+     */
+
+    /**
+     * Concatenated connect/listen address "host:port"
+     */
+    char *host_port;
+
+    /**
+     * Set for listeners that are part of the initial router configuration.
+     * An error in setting up initial listeners must shut down the router.
+     */
+    bool exit_on_error;
+
+    /**
+     * @}
+     */
 } qd_server_config_t;
 
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c2a1a32d/src/connection_manager.c
----------------------------------------------------------------------
diff --git a/src/connection_manager.c b/src/connection_manager.c
index d8a5ecc..10e6fe4 100644
--- a/src/connection_manager.c
+++ b/src/connection_manager.c
@@ -49,8 +49,6 @@ struct qd_config_ssl_profile_t {
 };
 
 struct qd_config_listener_t {
-    bool                     is_connector;
-    qd_bind_state_t          state;
     qd_listener_t           *listener;
     qd_config_ssl_profile_t *ssl_profile;
     qd_server_config_t       configuration;
@@ -62,7 +60,6 @@ DEQ_DECLARE(qd_config_ssl_profile_t, qd_config_ssl_profile_list_t);
 
 
 struct qd_config_connector_t {
-    bool is_connector;
     DEQ_LINKS(qd_config_connector_t);
     qd_connector_t          *connector;
     qd_server_config_t       configuration;
@@ -415,6 +412,28 @@ bool is_log_component_enabled(qd_log_bits log_message, char *component_name) {
 }
 
 
+static bool config_ssl_profile_free(qd_connection_manager_t *cm, qd_config_ssl_profile_t *ssl_profile)
+{
+    if (sys_atomic_get(&ssl_profile->ref_count) != 0) {
+        return false;
+    }
+
+    DEQ_REMOVE(cm->config_ssl_profiles, ssl_profile);
+
+    free(ssl_profile->name);
+    free(ssl_profile->ssl_password);
+    free(ssl_profile->ssl_trusted_certificate_db);
+    free(ssl_profile->ssl_trusted_certificates);
+    free(ssl_profile->ssl_uid_format);
+    free(ssl_profile->ssl_display_name_file);
+    free(ssl_profile->ssl_certificate_file);
+    free(ssl_profile->ssl_private_key_file);
+    free(ssl_profile);
+    return true;
+
+}
+
+
 qd_config_ssl_profile_t *qd_dispatch_configure_ssl_profile(qd_dispatch_t *qd, qd_entity_t *entity)
 {
     qd_error_clear();
@@ -475,24 +494,37 @@ qd_config_ssl_profile_t *qd_dispatch_configure_ssl_profile(qd_dispatch_t *qd, qd
 
     error:
         qd_log(cm->log_source, QD_LOG_ERROR, "Unable to create ssl profile: %s", qd_error_message());
-        qd_config_ssl_profile_free(cm, ssl_profile);
+        config_ssl_profile_free(cm, ssl_profile);
         return 0;
 }
 
 
+
+static void config_listener_free(qd_connection_manager_t *cm, qd_config_listener_t *cl)
+{
+    if (cl->listener) {
+        qd_server_listener_close(cl->listener);
+        qd_server_listener_free(cl->listener);
+        cl->listener = 0;
+    }
+    if (cl->ssl_profile) {
+        sys_atomic_dec(&cl->ssl_profile->ref_count);
+    }
+    free(cl);
+}
+
+
 qd_config_listener_t *qd_dispatch_configure_listener(qd_dispatch_t *qd, qd_entity_t *entity)
 {
     qd_error_clear();
     qd_connection_manager_t *cm = qd->connection_manager;
     qd_config_listener_t *cl = NEW(qd_config_listener_t);
-    cl->is_connector = false;
-    cl->state = QD_BIND_NONE;
     cl->listener = 0;
     cl->ssl_profile = 0;
     qd_config_ssl_profile_t *ssl_profile = 0;
     if (load_server_config(qd, &cl->configuration, entity, &ssl_profile) != QD_ERROR_NONE) {
         qd_log(cm->log_source, QD_LOG_ERROR, "Unable to create config listener: %s", qd_error_message());
-        qd_config_listener_free(qd->connection_manager, cl);
+        config_listener_free(qd->connection_manager, cl);
         return 0;
     }
     cl->ssl_profile = ssl_profile;
@@ -503,7 +535,7 @@ qd_config_listener_t *qd_dispatch_configure_listener(qd_dispatch_t *qd, qd_entit
         free(fol);
         if (cl->configuration.failover_list == 0) {
             qd_log(cm->log_source, QD_LOG_ERROR, "Error parsing failover list: %s", fol_error);
-            qd_config_listener_free(qd->connection_manager, cl);
+            config_listener_free(qd->connection_manager, cl);
             return 0;
         }
     } else
@@ -535,6 +567,17 @@ qd_error_t qd_entity_refresh_connector(qd_entity_t* entity, void *impl)
 }
 
 
+static void config_connector_free(qd_connection_manager_t *cm, qd_config_connector_t *cc)
+{
+    if (cc->connector)
+        qd_server_connector_free(cc->connector);
+    if (cc->ssl_profile) {
+        sys_atomic_dec(&cc->ssl_profile->ref_count);
+    }
+    free(cc);
+}
+
+
 qd_config_connector_t *qd_dispatch_configure_connector(qd_dispatch_t *qd, qd_entity_t *entity)
 {
     qd_error_clear();
@@ -542,11 +585,10 @@ qd_config_connector_t *qd_dispatch_configure_connector(qd_dispatch_t *qd, qd_ent
     qd_config_connector_t *cc = NEW(qd_config_connector_t);
     ZERO(cc);
 
-    cc->is_connector = true;
     qd_config_ssl_profile_t *ssl_profile = 0;
     if (load_server_config(qd, &cc->configuration, entity, &ssl_profile) != QD_ERROR_NONE) {
         qd_log(cm->log_source, QD_LOG_ERROR, "Unable to create config connector: %s", qd_error_message());
-        qd_config_connector_free(qd->connection_manager, cc);
+        config_connector_free(qd->connection_manager, cc);
         return 0;
     }
     cc->ssl_profile = ssl_profile;
@@ -587,7 +629,7 @@ void qd_connection_manager_free(qd_connection_manager_t *cm)
     while (cl) {
         DEQ_REMOVE_HEAD(cm->config_listeners);
         qd_server_config_free(&cl->configuration);
-        qd_config_listener_free(cm, cl);
+        config_listener_free(cm, cl);
         cl = DEQ_HEAD(cm->config_listeners);
     }
 
@@ -595,13 +637,13 @@ void qd_connection_manager_free(qd_connection_manager_t *cm)
     while (cc) {
         DEQ_REMOVE_HEAD(cm->config_connectors);
         qd_server_config_free(&cc->configuration);
-        qd_config_connector_free(cm, cc);
+        config_connector_free(cm, cc);
         cc = DEQ_HEAD(cm->config_connectors);
     }
 
     qd_config_ssl_profile_t *sslp = DEQ_HEAD(cm->config_ssl_profiles);
     while (sslp) {
-        qd_config_ssl_profile_free(cm, sslp);
+        config_ssl_profile_free(cm, sslp);
         sslp = DEQ_HEAD(cm->config_ssl_profiles);
     }
 
@@ -609,6 +651,9 @@ void qd_connection_manager_free(qd_connection_manager_t *cm)
 }
 
 
+/** NOTE: non-static qd_connection_manager_* functions are called from the python agent */
+
+
 void qd_connection_manager_start(qd_dispatch_t *qd)
 {
     static bool first_start = true;
@@ -616,20 +661,14 @@ void qd_connection_manager_start(qd_dispatch_t *qd)
     qd_config_connector_t *cc = DEQ_HEAD(qd->connection_manager->config_connectors);
 
     while (cl) {
-        if (cl->listener == 0 )
-            if (cl->state == QD_BIND_NONE) { //Try to start listening only if we have never tried to listen on that port before
-                cl->listener = qd_server_listen(qd, &cl->configuration, cl);
-                if (cl->listener)
-                    cl->state = QD_BIND_SUCCESSFUL;
-                else {
-                    cl->state = QD_BIND_FAILED;
-                    if (first_start) {
-                        qd_log(qd->connection_manager->log_source, QD_LOG_CRITICAL,
-                               "Socket bind failed during initial configuration - process exiting");
-                        exit(1);
-                    }
-                }
+        if (cl->listener == 0 ) {
+            cl->listener = qd_server_listen(qd, &cl->configuration, cl);
+            if (!cl->listener &&  first_start) {
+                qd_log(qd->connection_manager->log_source, QD_LOG_CRITICAL,
+                       "Socket bind failed during initial configuration");
+                exit(1);
             }
+        }
         cl = DEQ_NEXT(cl);
     }
 
@@ -643,57 +682,6 @@ void qd_connection_manager_start(qd_dispatch_t *qd)
 }
 
 
-void qd_config_connector_free(qd_connection_manager_t *cm, qd_config_connector_t *cc)
-{
-    if (cc->connector)
-        qd_server_connector_free(cc->connector);
-
-    if (cc->ssl_profile) {
-        sys_atomic_dec(&cc->ssl_profile->ref_count);
-    }
-
-    free(cc);
-}
-
-
-void qd_config_listener_free(qd_connection_manager_t *cm, qd_config_listener_t *cl)
-{
-    if (cl->listener) {
-        qd_server_listener_close(cl->listener);
-        qd_server_listener_free(cl->listener);
-        cl->listener = 0;
-    }
-
-    if (cl->ssl_profile) {
-        sys_atomic_dec(&cl->ssl_profile->ref_count);
-    }
-
-    free(cl);
-}
-
-
-bool qd_config_ssl_profile_free(qd_connection_manager_t *cm, qd_config_ssl_profile_t *ssl_profile)
-{
-    if (sys_atomic_get(&ssl_profile->ref_count) != 0) {
-        return false;
-    }
-
-    DEQ_REMOVE(cm->config_ssl_profiles, ssl_profile);
-
-    free(ssl_profile->name);
-    free(ssl_profile->ssl_password);
-    free(ssl_profile->ssl_trusted_certificate_db);
-    free(ssl_profile->ssl_trusted_certificates);
-    free(ssl_profile->ssl_uid_format);
-    free(ssl_profile->ssl_display_name_file);
-    free(ssl_profile->ssl_certificate_file);
-    free(ssl_profile->ssl_private_key_file);
-    free(ssl_profile);
-    return true;
-
-}
-
-
 void qd_connection_manager_delete_listener(qd_dispatch_t *qd, void *impl)
 {
     qd_config_listener_t *cl = (qd_config_listener_t*) impl;
@@ -701,7 +689,7 @@ void qd_connection_manager_delete_listener(qd_dispatch_t *qd, void *impl)
     if (cl) {
         qd_server_listener_close(cl->listener);
         DEQ_REMOVE(qd->connection_manager->config_listeners, cl);
-        qd_config_listener_free(qd->connection_manager, cl);
+        config_listener_free(qd->connection_manager, cl);
     }
 }
 
@@ -714,7 +702,7 @@ bool qd_connection_manager_delete_ssl_profile(qd_dispatch_t *qd, void *impl)
 {
     qd_config_ssl_profile_t *ssl_profile = (qd_config_ssl_profile_t*) impl;
     if (ssl_profile)
-        return qd_config_ssl_profile_free(qd->connection_manager, ssl_profile);
+        return config_ssl_profile_free(qd->connection_manager, ssl_profile);
     return false;
 }
 
@@ -725,7 +713,7 @@ void qd_connection_manager_delete_connector(qd_dispatch_t *qd, void *impl)
 
     if (cc) {
         DEQ_REMOVE(qd->connection_manager->config_connectors, cc);
-        qd_config_connector_free(qd->connection_manager, cc);
+        config_connector_free(qd->connection_manager, cc);
     }
 }
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c2a1a32d/src/server.c
----------------------------------------------------------------------
diff --git a/src/server.c b/src/server.c
index 31322ea..d5ad5c4 100644
--- a/src/server.c
+++ b/src/server.c
@@ -76,7 +76,6 @@ struct qd_server_t {
     qd_work_list_t            work_queue;
     qd_timer_list_t           pending_timers;
     bool                      a_thread_is_waiting;
-    int                       threads_active;
     int                       pause_requests;
     int                       threads_paused;
     int                       pause_next_sequence;
@@ -1021,7 +1020,6 @@ static void *thread_run(void *arg)
             if (ctx->owner_thread == CONTEXT_NO_OWNER) {
                 ctx->owner_thread = thread->thread_id;
                 ctx->enqueued = 0;
-                qd_server->threads_active++;
                 cxtr = work->cxtr;
                 free_qd_work_item_t(work);
             } else {
@@ -1073,7 +1071,6 @@ static void *thread_run(void *arg)
                 sys_mutex_free(ctx->deferred_call_lock);
                 qdpn_connector_free(cxtr);
                 free_qd_connection(ctx);
-                qd_server->threads_active--;
                 sys_mutex_unlock(qd_server->lock);
             } else {
                 //
@@ -1081,7 +1078,6 @@ static void *thread_run(void *arg)
                 //
                 sys_mutex_lock(qd_server->lock);
                 ctx->owner_thread = CONTEXT_NO_OWNER;
-                qd_server->threads_active--;
                 sys_mutex_unlock(qd_server->lock);
             }
 
@@ -1344,7 +1340,6 @@ qd_server_t *qd_server(qd_dispatch_t *qd, int thread_count, const char *containe
     DEQ_INIT(qd_server->work_queue);
     DEQ_INIT(qd_server->pending_timers);
     qd_server->a_thread_is_waiting    = false;
-    qd_server->threads_active         = 0;
     qd_server->pause_requests         = 0;
     qd_server->threads_paused         = 0;
     qd_server->pause_next_sequence    = 0;

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c2a1a32d/src/server_private.h
----------------------------------------------------------------------
diff --git a/src/server_private.h b/src/server_private.h
index 49e70b2..9581196 100644
--- a/src/server_private.h
+++ b/src/server_private.h
@@ -49,12 +49,6 @@ qd_http_listener_t *qd_listener_http(qd_listener_t *l);
 #define CONTEXT_UNSPECIFIED_OWNER -2
 
 typedef enum {
-    QD_BIND_SUCCESSFUL, // Bind to socket was attempted and the bind succeeded
-    QD_BIND_FAILED,     // Bind to socket was attempted and bind failed
-    QD_BIND_NONE,    // Bind to socket not attempted yet
-} qd_bind_state_t;
-
-typedef enum {
     CXTR_STATE_CONNECTING = 0,
     CXTR_STATE_OPEN,
     CXTR_STATE_FAILED

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c2a1a32d/tests/system_tests_management.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_management.py b/tests/system_tests_management.py
index 19f69fc..b9535a8 100644
--- a/tests/system_tests_management.py
+++ b/tests/system_tests_management.py
@@ -20,13 +20,11 @@
 """System tests for management of qdrouter"""
 
 import unittest, system_test, re, os, json, sys
-from qpid_dispatch.management.client import Node, ManagementError, Url, BadRequestStatus, NotImplementedStatus, NotFoundStatus, ForbiddenStatus
+from qpid_dispatch.management.client import Node, ManagementError, Url, BadRequestStatus, NotImplementedStatus, NotFoundStatus
 from qpid_dispatch_internal.management.qdrouter import QdSchema
-from qpid_dispatch_internal.compat import OrderedDict, dictify
-from system_test import Qdrouterd, message, retry, retry_exception, wait_ports, Process
-from proton import ConnectionException
+from qpid_dispatch_internal.compat import dictify
+from system_test import Qdrouterd, message, Process
 from itertools import chain
-from time import sleep
 
 PREFIX = u'org.apache.qpid.dispatch.'
 MANAGEMENT = PREFIX + 'management'
@@ -305,7 +303,7 @@ class ManagementTest(system_test.TestCase):
                 self.assertEqual(
                     {u'operation': u'callme', u'type': DUMMY, u'identity': identity, u'data': data},
                     dummy.call('callme', data=data))
-            except TypeError, e:
+            except TypeError:
                 extype, value, trace = sys.exc_info()
                 raise extype, "data=%r: %s" % (data, value), trace
 
@@ -373,16 +371,6 @@ class ManagementTest(system_test.TestCase):
         """Test that we can access management info of remote nodes using get_mgmt_nodes addresses"""
         nodes = [self.cleanup(Node.connect(Url(r.addresses[0]))) for r in self.routers]
         remotes = sum([n.get_mgmt_nodes() for n in nodes], [])
-        self.assertEqual([u'amqp:/_topo/0/router2/$management', u'amqp:/_topo/0/router1/$management'], remotes)
-        # Query router2 indirectly via router1
-        remote_url = Url(self.routers[0].addresses[0], path=Url(remotes[0]).path)
-        remote = self.cleanup(Node.connect(remote_url))
-        self.assertEqual(["router2"], [r.id for r in remote.query(type=ROUTER).get_entities()])
-
-    def test_remote_node(self):
-        """Test that we can access management info of remote nodes using get_mgmt_nodes addresses"""
-        nodes = [self.cleanup(Node.connect(Url(r.addresses[0]))) for r in self.routers]
-        remotes = sum([n.get_mgmt_nodes() for n in nodes], [])
         self.assertEqual(set([u'amqp:/_topo/0/router%s/$management' % i for i in [0, 1, 2]]),
                          set(remotes))
         self.assertEqual(9, len(remotes))
@@ -398,10 +386,6 @@ class ManagementTest(system_test.TestCase):
         self.assertIn(CONFIGURATION, types[LISTENER])
         self.assertIn(OPERATIONAL, types[LINK])
 
-    def test_get_attributes(self):
-        types = self.node.get_attributes()
-        self.assertIn(SSL_PROFILE, types[CONNECTOR])
-
     def test_get_operations(self):
         result = self.node.get_operations(type=DUMMY)
         self.assertEqual({DUMMY: ["CREATE", "READ", "UPDATE", "DELETE", "CALLME"]}, result)

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c2a1a32d/tests/system_tests_qdmanage.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_qdmanage.py b/tests/system_tests_qdmanage.py
index 585fc4b..bdbd823 100644
--- a/tests/system_tests_qdmanage.py
+++ b/tests/system_tests_qdmanage.py
@@ -21,7 +21,7 @@ import json, unittest, os
 
 from system_test import TestCase, Process, Qdrouterd, main_module, TIMEOUT, DIR, wait_port
 from subprocess import PIPE, STDOUT
-from qpid_dispatch_internal.compat import OrderedDict, dictify
+from qpid_dispatch_internal.compat import dictify
 from qpid_dispatch_internal.management.qdrouter import QdSchema
 
 DUMMY = "org.apache.qpid.dispatch.dummy"
@@ -215,7 +215,6 @@ class QdmanageTest(TestCase):
 
         self.assertEquals ( good_logs, len(logs) )
 
-
     def test_update(self):
         exception = False
         try:


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org