]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/amqp: use "fmt" for converting connection_id to string 53516/head
authorYuval Lifshitz <ylifshit@redhat.com>
Sun, 25 Jun 2023 08:56:26 +0000 (08:56 +0000)
committerYuval Lifshitz <ylifshit@redhat.com>
Sun, 1 Oct 2023 12:21:39 +0000 (12:21 +0000)
Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
(cherry picked from commit 2e9233136998db2db9cb6a02da8ba6939b6ebb7f)

src/rgw/rgw_amqp.cc
src/rgw/rgw_amqp.h
src/test/rgw/test_rgw_amqp.cc

index 0bea58d24d57b28bdc7b5d1d79340d140e30da11..3014edd1db09dbfeb34621f9da0f1661896ce4e6 100644 (file)
@@ -75,7 +75,9 @@ struct connection_id_hasher {
 };
 
 std::string to_string(const connection_id_t& id) {
-    return std::string("amqp")+(id.ssl ? "s" : "")+"://"+id.host+":"+std::to_string(id.port)+id.vhost+"?exchange="+id.exchange;
+  return fmt::format("{}://{}:{}{}?exchange={}",
+      id.ssl ? "amqps" : "amqp",
+      id.host, id.port, id.vhost, id.exchange);
 }
 
 // automatically cleans amqp state when gets out of scope
index 89cdafc448f56f69935b43b857dc726aa0347563..c363f4d740348208d7566f284fe3500a09839106 100644 (file)
@@ -34,6 +34,8 @@ struct connection_id_t {
   connection_id_t(const amqp_connection_info& info, const std::string& _exchange);
 };
 
+std::string to_string(const connection_id_t& id);
+
 // connect to an amqp endpoint
 bool connect(connection_id_t& conn_id, const std::string& url, const std::string& exchange, bool mandatory_delivery, bool verify_ssl,
         boost::optional<const std::string&> ca_location);
index 56338e2050cd01aa5f06a9706dfc8888ed991b39..f49d309c78cefff203e770866ad43f9ac82e8998 100644 (file)
@@ -134,10 +134,12 @@ TEST_F(TestAMQP, PlainAndSSLConnectionsOK)
   EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
   rc = amqp::publish(conn_id1, "topic", "message");
   EXPECT_EQ(rc, 0);
+  EXPECT_EQ(amqp::to_string(conn_id1), "amqps://localhost:5671/?exchange=ex1");
   amqp_mock::set_valid_port(5672);
   amqp::connection_id_t conn_id2;
   rc = amqp::connect(conn_id2, "amqp://localhost", "ex1", false, false, boost::none);
   EXPECT_TRUE(rc);
+  EXPECT_EQ(amqp::to_string(conn_id2), "amqp://localhost:5672/?exchange=ex1");
   EXPECT_EQ(amqp::get_connection_count(), connection_number + 2);
   rc = amqp::publish(conn_id2, "topic", "message");
   EXPECT_EQ(rc, 0);