@@ -103,7 +103,7 @@ def submit_request(self, query):
103103
104104 request = Request ("http://{}/{}{}" .format (
105105 self .admin_addr , query .path , query .fetch_url_params ()), data = data )
106- request .get_method = lambda : 'POST'
106+ request .get_method = lambda : query . method
107107 request .add_header ("Content-Type" , 'application/json' )
108108 request .add_header ("Content-Length" , len (data ))
109109
@@ -142,9 +142,13 @@ def clear_all_queries(self, cluster_name=DEFAULT_CLUSTER):
142142
143143class SimulacronRequest (object ):
144144 def fetch_json (self ):
145- raise NotImplementedError ()
145+ return {}
146146
147147 def fetch_url_params (self ):
148+ return ""
149+
150+ @property
151+ def method (self ):
148152 raise NotImplementedError ()
149153
150154
@@ -175,6 +179,44 @@ def fetch_json(self):
175179 def fetch_url_params (self ):
176180 return ""
177181
182+ @property
183+ def method (self ):
184+ return "POST"
185+
186+
187+ class RejectType ():
188+ UNBIND = "UNBIND"
189+ STOP = "STOP"
190+ REJECT_STARTUP = "REJECT_STARTUP"
191+
192+
193+ class RejectConnections (SimulacronRequest ):
194+ """
195+ Class used for making simulacron reject new connections
196+ """
197+ def __init__ (self , reject_type , cluster_name = DEFAULT_CLUSTER ):
198+ self .path = "listener/{}" .format (cluster_name )
199+ self .reject_type = reject_type
200+
201+ def fetch_url_params (self ):
202+ return "?type={0}" .format (self .reject_type )
203+
204+ @property
205+ def method (self ):
206+ return "DELETE"
207+
208+
209+ class AcceptConnections (SimulacronRequest ):
210+ """
211+ Class used for making simulacron reject new connections
212+ """
213+ def __init__ (self , cluster_name = DEFAULT_CLUSTER ):
214+ self .path = "listener/{}" .format (cluster_name )
215+
216+ @property
217+ def method (self ):
218+ return "PUT"
219+
178220
179221class PrimeQuery (SimulacronRequest ):
180222 """
@@ -228,6 +270,9 @@ def set_node(self, cluster_id, datacenter_id, node_id):
228270 def fetch_url_params (self ):
229271 return ""
230272
273+ @property
274+ def method (self ):
275+ return "POST"
231276
232277class ClusterQuery (SimulacronRequest ):
233278 """
@@ -251,6 +296,9 @@ def fetch_url_params(self):
251296 return "?cassandra_version={0}&data_centers={1}&name={2}" .\
252297 format (self .cassandra_version , self .data_centers , self .cluster_name )
253298
299+ @property
300+ def method (self ):
301+ return "POST"
254302
255303def prime_driver_defaults ():
256304 """
0 commit comments