def test_start_remote_appcontroller(self): # mock out removing the old json file local_state = flexmock(LocalState) local_state.should_receive('shell')\ .with_args(re.compile('^ssh'),False,5,stdin=re.compile('rm -rf'))\ .and_return() # assume we started monit on public1 fine local_state.should_receive('shell')\ .with_args(re.compile('^ssh'), False, 5, stdin=re.compile('monit'))\ .and_return() # also assume that we scp'ed over the god config file fine local_state.should_receive('shell')\ .with_args(re.compile('scp .*controller-17443.cfg*'),False,5)\ .and_return() # and assume we started the AppController on public1 fine local_state.should_receive('shell')\ .with_args(re.compile('^ssh'), False, 5, stdin=re.compile('^monit start -g controller'))\ .and_return() # finally, assume the appcontroller comes up after a few tries # assume that ssh comes up on the third attempt fake_socket = flexmock(name='fake_socket') fake_socket.should_receive('connect').with_args(('public1', AppControllerClient.PORT)).and_raise(Exception) \ .and_raise(Exception).and_return(None) socket.should_receive('socket').and_return(fake_socket) RemoteHelper.start_remote_appcontroller('public1', 'bookey', False)
def test_start_remote_appcontroller(self): # mock out removing the old json file local_state = flexmock(LocalState) local_state.should_receive("shell").with_args( re.compile("^ssh"), False, 5, stdin=re.compile("rm -rf") ).and_return().ordered() # assume we started god on public1 fine local_state.should_receive("shell").with_args( re.compile("^ssh"), False, 5, stdin=re.compile("nohup god") ).and_return().ordered() # also assume that we scp'ed over the god config file fine local_state.should_receive("shell").with_args( re.compile("scp .*appcontroller\.god.*"), False, 5 ).and_return().ordered() # and assume we started the AppController on public1 fine local_state.should_receive("shell").with_args( re.compile("^ssh"), False, 5, stdin=re.compile("^god load .*appcontroller\.god") ).and_return().ordered() # finally, assume the appcontroller comes up after a few tries # assume that ssh comes up on the third attempt fake_socket = flexmock(name="fake_socket") fake_socket.should_receive("connect").with_args(("public1", AppControllerClient.PORT)).and_raise( Exception ).and_raise(Exception).and_return(None) socket.should_receive("socket").and_return(fake_socket) RemoteHelper.start_remote_appcontroller("public1", "bookey", False)
def test_start_remote_appcontroller(self): # mock out removing the old json file subprocess.should_receive('Popen').with_args(re.compile('rm -rf'), shell=True, stdout=self.fake_temp_file, stderr=subprocess.STDOUT) \ .and_return(self.success) # assume we started god on public1 fine subprocess.should_receive('Popen').with_args(re.compile('god &'), shell=True, stdout=self.fake_temp_file, stderr=subprocess.STDOUT) \ .and_return(self.success) # also assume that we scp'ed over the god config file fine subprocess.should_receive('Popen').with_args(re.compile('appcontroller'), shell=True, stdout=self.fake_temp_file, stderr=subprocess.STDOUT) \ .and_return(self.success) # and assume we started the AppController on public1 fine subprocess.should_receive('Popen').with_args(re.compile('god load'), shell=True, stdout=self.fake_temp_file, stderr=subprocess.STDOUT) \ .and_return(self.success) # finally, assume the appcontroller comes up after a few tries # assume that ssh comes up on the third attempt fake_socket = flexmock(name='fake_socket') fake_socket.should_receive('connect').with_args(('public1', AppControllerClient.PORT)).and_raise(Exception) \ .and_raise(Exception).and_return(None) socket.should_receive('socket').and_return(fake_socket) RemoteHelper.start_remote_appcontroller('public1', 'bookey', False)
def test_start_remote_appcontroller(self): # mock out removing the old json file local_state = flexmock(LocalState) local_state.should_receive('shell')\ .with_args(re.compile('^ssh'),False,5,stdin=re.compile('rm -rf'))\ .and_return() # assume we started monit on public1 fine local_state.should_receive('shell')\ .with_args(re.compile('^ssh'), False, 5, stdin=re.compile('monit'))\ .and_return() # also assume that we scp'ed over the god config file fine local_state.should_receive('shell')\ .with_args(re.compile('scp .*controller-17443.cfg*'),False,5)\ .and_return() # and assume we started the AppController on public1 fine local_state.should_receive('shell')\ .with_args(re.compile('^ssh'), False, 5, stdin=re.compile('^monit start -g controller'))\ .and_return() # finally, assume the appcontroller comes up after a few tries # assume that ssh comes up on the third attempt fake_socket = flexmock(name='fake_socket') fake_socket.should_receive('connect').with_args(('public1', AppControllerClient.PORT)).and_raise(Exception) \ .and_raise(Exception).and_return(None) socket.should_receive('socket').and_return(fake_socket) # Mock out additional remote calls. local_state.should_receive('shell').with_args( 'ssh -i /root/.appscale/bookey.key -o LogLevel=quiet -o NumberOfPasswordPrompts=0 -o StrictHostkeyChecking=no -o UserKnownHostsFile=/dev/null root@public1 ', False, 5, stdin= 'cp /root/appscale/AppController/scripts/appcontroller /etc/init.d/' ).and_return() local_state.should_receive('shell').with_args( 'ssh -i /root/.appscale/bookey.key -o LogLevel=quiet -o NumberOfPasswordPrompts=0 -o StrictHostkeyChecking=no -o UserKnownHostsFile=/dev/null root@public1 ', False, 5, stdin='chmod +x /etc/init.d/appcontroller').and_return() local_state.should_receive('shell').with_args( 'ssh -i /root/.appscale/boobazblargfoo.key -o LogLevel=quiet -o NumberOfPasswordPrompts=0 -o StrictHostkeyChecking=no -o UserKnownHostsFile=/dev/null root@elastic-ip ', False, 5, stdin='chmod +x /etc/init.d/appcontroller').and_return() RemoteHelper.start_remote_appcontroller('public1', 'bookey', False)
def test_start_remote_appcontroller(self): # mock out removing the old json file local_state = flexmock(LocalState) local_state.should_receive('shell')\ .with_args(re.compile('^ssh'),False,5,stdin=re.compile('rm -rf'))\ .and_return() # assume we started monit on public1 fine local_state.should_receive('shell')\ .with_args(re.compile('^ssh'), False, 5, stdin=re.compile('monit'))\ .and_return() # also assume that we scp'ed over the god config file fine local_state.should_receive('shell')\ .with_args(re.compile('scp .*controller-17443.cfg*'),False,5)\ .and_return() # and assume we started the AppController on public1 fine local_state.should_receive('shell')\ .with_args(re.compile('^ssh'), False, 5, stdin=re.compile('^monit start -g controller'))\ .and_return() # finally, assume the appcontroller comes up after a few tries # assume that ssh comes up on the third attempt fake_socket = flexmock(name='fake_socket') fake_socket.should_receive('connect').with_args(('public1', AppControllerClient.PORT)).and_raise(Exception) \ .and_raise(Exception).and_return(None) socket.should_receive('socket').and_return(fake_socket) # Mock out additional remote calls. local_state.should_receive('shell').with_args('ssh -i /root/.appscale/bookey.key -o LogLevel=quiet -o NumberOfPasswordPrompts=0 -o StrictHostkeyChecking=no -o UserKnownHostsFile=/dev/null root@public1 ', False, 5, stdin='cp /root/appscale/AppController/scripts/appcontroller /etc/init.d/').and_return() local_state.should_receive('shell').with_args('ssh -i /root/.appscale/bookey.key -o LogLevel=quiet -o NumberOfPasswordPrompts=0 -o StrictHostkeyChecking=no -o UserKnownHostsFile=/dev/null root@public1 ', False, 5, stdin='chmod +x /etc/init.d/appcontroller').and_return() local_state.should_receive('shell').with_args('ssh -i /root/.appscale/boobazblargfoo.key -o LogLevel=quiet -o NumberOfPasswordPrompts=0 -o StrictHostkeyChecking=no -o UserKnownHostsFile=/dev/null root@elastic-ip ', False, 5, stdin='chmod +x /etc/init.d/appcontroller').and_return() RemoteHelper.start_remote_appcontroller('public1', 'bookey', False)