@@ -113,21 +113,36 @@ declare(Q) when ?amqqueue_is_quorum(Q) ->
113113 case rabbit_amqqueue :internal_declare (NewQ1 , false ) of
114114 {created , NewQ } ->
115115 RaMachine = ra_machine (NewQ ),
116- case ra :start_cluster (RaName , RaMachine ,
117- [{RaName , Node } || Node <- Nodes ]) of
116+ ServerIds = [{RaName , Node } || Node <- Nodes ],
117+ ClusterName = RaName ,
118+ RaConfs = [begin
119+ UId = ra :new_uid (ra_lib :to_binary (ClusterName )),
120+ FName = rabbit_misc :rs (QName ),
121+ #{cluster_name => ClusterName ,
122+ id => ServerId ,
123+ uid => UId ,
124+ friendly_name => FName ,
125+ initial_members => ServerIds ,
126+ log_init_args => #{uid => UId },
127+ machine => RaMachine }
128+ end || ServerId <- ServerIds ],
129+
130+ case ra :start_cluster (RaConfs ) of
118131 {ok , _ , _ } ->
119132 rabbit_event :notify (queue_created ,
120133 [{name , QName },
121134 {durable , Durable },
122135 {auto_delete , AutoDelete },
123136 {arguments , Arguments },
124- {user_who_performed_action , ActingUser }]),
137+ {user_who_performed_action ,
138+ ActingUser }]),
125139 {new , NewQ };
126140 {error , Error } ->
127141 _ = rabbit_amqqueue :internal_delete (QName , ActingUser ),
128- rabbit_misc :protocol_error (internal_error ,
129- " Cannot declare a queue '~s ' on node '~s ': ~255p " ,
130- [rabbit_misc :rs (QName ), node (), Error ])
142+ rabbit_misc :protocol_error (
143+ internal_error ,
144+ " Cannot declare a queue '~s ' on node '~s ': ~255p " ,
145+ [rabbit_misc :rs (QName ), node (), Error ])
131146 end ;
132147 {existing , _ } = Ex ->
133148 Ex
0 commit comments