@@ -90,55 +90,48 @@ defmodule Containers do
90
90
tenant = Enum . random ( tenants )
91
91
:ets . insert ( :containers , { tenant . external_id , % { tenant: tenant , using?: true } } )
92
92
93
- settings = Database . from_tenant ( tenant , "realtime_test" , :stop )
94
- settings = % { settings | max_restarts: 0 , ssl: false }
95
- { :ok , conn } = Database . connect_db ( settings )
93
+ capture_log ( fn ->
94
+ settings = Database . from_tenant ( tenant , "realtime_test" , :stop )
95
+ settings = % { settings | max_restarts: 0 , ssl: false }
96
+ { :ok , conn } = Database . connect_db ( settings )
96
97
97
- Postgrex . transaction ( conn , fn db_conn ->
98
- pid = Connect . whereis ( tenant . external_id )
99
- if pid && Process . alive? ( pid ) , do: Connect . shutdown ( tenant . external_id )
98
+ Postgrex . transaction ( conn , fn db_conn ->
99
+ Postgrex . query! (
100
+ db_conn ,
101
+ "SELECT pg_terminate_backend(pid) from pg_stat_activity where application_name like 'realtime_%' and application_name != 'realtime_test'" ,
102
+ [ ]
103
+ )
100
104
101
- tenant
102
- |> Tenants . limiter_keys ( )
103
- |> Enum . each ( fn key ->
104
105
RateCounter . stop ( tenant . external_id )
105
106
GenCounter . stop ( tenant . external_id )
106
- RateCounter . new ( key )
107
- GenCounter . new ( key )
108
- end )
109
107
110
- Postgrex . query! (
111
- db_conn ,
112
- "SELECT pg_terminate_backend(pid) from pg_stat_activity where application_name like 'realtime_%' and application_name != 'realtime_test'" ,
113
- [ ]
114
- )
108
+ Postgrex . query! ( db_conn , "DROP SCHEMA realtime CASCADE" , [ ] )
109
+ Postgrex . query! ( db_conn , "CREATE SCHEMA realtime" , [ ] )
115
110
116
- Postgrex . query! ( db_conn , "DROP SCHEMA realtime CASCADE" , [ ] )
117
- Postgrex . query! ( db_conn , "CREATE SCHEMA realtime" , [ ] )
111
+ if Tenants . get_tenant_by_external_id ( tenant . external_id ) do
112
+ Tenants . update_migrations_ran ( tenant . external_id , 0 )
113
+ end
118
114
119
- if Tenants . get_tenant_by_external_id ( tenant . external_id ) do
120
- Tenants . update_migrations_ran ( tenant . external_id , 0 )
115
+ :ok
116
+ end )
117
+
118
+ if run_migrations? do
119
+ Migrations . run_migrations ( tenant )
120
+ { :ok , pid } = Database . connect ( tenant , "realtime_test" , :stop )
121
+ :ok = Migrations . create_partitions ( pid )
121
122
end
122
123
123
- :ok
124
+ Process . sleep ( 1000 )
124
125
end )
125
126
126
- if run_migrations? do
127
- Migrations . run_migrations ( tenant )
128
- { :ok , pid } = Database . connect ( tenant , "realtime_test" , :stop )
129
- :ok = Migrations . create_partitions ( pid )
130
- end
131
-
132
- Process . sleep ( 1000 )
133
-
134
127
tenant
135
128
end
136
129
137
130
def checkin_tenant ( tenant ) do
138
131
:ets . insert ( :containers , { tenant . external_id , % { tenant: tenant , using?: false } } )
139
132
end
140
133
141
- @ spec stop_container ( any ( ) ) :: { any ( ) , non_neg_integer ( ) }
134
+ @ spec stop_container ( Tenant . t ( ) | binary ( ) ) :: { any ( ) , non_neg_integer ( ) }
142
135
def stop_container ( % Tenant { } = tenant ) do
143
136
:ets . delete ( :containers , tenant . external_id )
144
137
pid = Connect . whereis ( tenant . external_id )
0 commit comments