def __init__(self, parent, id=-1, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.SP_3D | wx.SP_LIVE_UPDATE, name='Crust Window', rootObject=None, rootLabel=None, rootIsNamespace=True, intro='', locals=None, InterpClass=None, startupScript=None, execStartupScript=True, *args, **kwds): """Create Crust instance.""" wx.SplitterWindow.__init__(self, parent, id, pos, size, style, name) self.shell = Shell(parent=self, introText=intro, locals=locals, InterpClass=InterpClass, startupScript=startupScript, execStartupScript=execStartupScript, *args, **kwds) self.editor = self.shell if rootObject is None: rootObject = self.shell.interp.locals self.notebook = wx.Notebook(parent=self, id=-1) self.shell.interp.locals['notebook'] = self.notebook self.filling = Filling(parent=self.notebook, rootObject=rootObject, rootLabel=rootLabel, rootIsNamespace=rootIsNamespace) # Add 'filling' to the interpreter's locals. self.shell.interp.locals['filling'] = self.filling self.notebook.AddPage(page=self.filling, text='Namespace', select=True) self.display = Display(parent=self.notebook) self.notebook.AddPage(page=self.display, text='Display') # Add 'pp' (pretty print) to the interpreter's locals. self.shell.interp.locals['pp'] = self.display.setItem self.display.nbTab = self.notebook.GetPageCount() - 1 self.calltip = Calltip(parent=self.notebook) self.notebook.AddPage(page=self.calltip, text='Calltip') self.sessionlisting = SessionListing(parent=self.notebook) self.notebook.AddPage(page=self.sessionlisting, text='History') self.dispatcherlisting = DispatcherListing(parent=self.notebook) self.notebook.AddPage(page=self.dispatcherlisting, text='Dispatcher') self.SplitHorizontally(self.shell, self.notebook, -self.sashoffset) self.SetMinimumPaneSize(100) self.Bind(wx.EVT_SIZE, self.SplitterOnSize) self.Bind(wx.EVT_SPLITTER_SASH_POS_CHANGED, self.OnChanged)
def test_chaining(self): sh = Shell(has_input=True) output = sh.run('cat -u').write('Hello, world!').output() self.assertEqual(output, ['Hello, world!']) output = shell('cat -u', has_input=True).write('Hello, world!').output() self.assertEqual(output, ['Hello, world!'])
def __init__(self, parent, filename=None): """Create EditorShellNotebook instance.""" wx.Notebook.__init__(self, parent, id=-1) usePanels = True if usePanels: editorparent = editorpanel = wx.Panel(self, -1) shellparent = shellpanel = wx.Panel(self, -1) else: editorparent = self shellparent = self self.buffer = Buffer() self.editor = Editor(parent=editorparent) self.buffer.addEditor(self.editor) self.buffer.open(filename) self.shell = Shell(parent=shellparent, locals=self.buffer.interp.locals, style=wx.CLIP_CHILDREN | wx.SUNKEN_BORDER) self.buffer.interp.locals.clear() if usePanels: self.AddPage(page=editorpanel, text='Editor', select=True) self.AddPage(page=shellpanel, text='Shell') # Setup sizers editorsizer = wx.BoxSizer(wx.VERTICAL) editorsizer.Add(self.editor.window, 1, wx.EXPAND) editorpanel.SetSizer(editorsizer) editorpanel.SetAutoLayout(True) shellsizer = wx.BoxSizer(wx.VERTICAL) shellsizer.Add(self.shell, 1, wx.EXPAND) shellpanel.SetSizer(shellsizer) shellpanel.SetAutoLayout(True) else: self.AddPage(page=self.editor.window, text='Editor', select=True) self.AddPage(page=self.shell, text='Shell') self.editor.setFocus() wx.EVT_NOTEBOOK_PAGE_CHANGED(self, self.GetId(), self.OnPageChanged)
def namespace_init(self, daemon): output = Shell.run('ip netns list') for line in output.split(): if line == 'ns-' + daemon: return False Shell.run('ip netns add ns-%s' % daemon) return True
def create_interface(self, vip): try: vip=vip.split("/",1)[0] Shell.run('ifconfig lo:1 %s netmask 255.255.255.255 up' % (vip)) logging.debug("Assigned VIP to the loopback interface") except Exception as ex: logging.error(ex)
def __init__(self, basename): self.print_backtrace = True self.reader = 0 self.logger = None Shell.__init__(self, basename) self.register_commands(self, self.NOCARD_COMMANDS) self.set_prompt("(No card) ")
def transcode_picture(filename, layers): # {{{ print(filename, layers) shell.run("trace kdu_transcode" + " -i " + filename + " -jpx_layers sYCC,0,1,2" + " -o " + "transcode_quality/" + filename + " Clayers=" + str(layers))
def is_ambari_installed(): sh = Shell() output = sh.run('which ambari-server') if len(output[0]) == 0: return False else: return True
def post(self): sh = Shell() for line in request.form['code'].split('\n'): retval = sh.push(line) return {'retval': retval.strip() }
def transcode_images(layersub): # {{{ log.debug("transcode_images={}".format(layersub)) for key, value in layersub.items(): pics_per_subband = (1 << (TRLs - key[1] - 1)) for p in range(pics_per_subband * gop, pics_per_subband * gop + pics_per_subband): if key[0] == 'L': fname = "L_" + str(key[1]) + '/' + str('%04d' % (p + 1)) + ".jpx" transcode_picture(fname, fname, value) # {{{ Transcode GOP0, using the same number of subband layers than the last GOP if gop == 0: fname = "L_" + str(key[1]) + '/' + str('%04d' % (p)) + ".jpx" value = layersub[("L", TRLs - 1)] transcode_picture(fname, fname, value) # }}} elif key[0] == 'H': fname = "H_" + str(key[1]) + '/' + str('%04d' % p) + ".jpx" transcode_picture(fname, fname, value) elif key[0] == 'R': if value > 0: fname = "R_" + str(key[1]) + '/' + str('%04d' % p) + ".j2c" shell.run("trace cp " + fname + ' ' + destination + '/' + fname)
def __init__(self, instance_path): # Call super init TSPLIB.__init__(self, instance_path) self._type = "vrp" # Set capacity self._capacity = int( Shell.run("grep CAPACITY " + instance_path + " | cut -d':' -f2").strip()) # Mim number of vehicles self._trucks = int( Shell.run("grep TRUCKS " + instance_path + " | cut -d':' -f2").strip()) # Load demand array with open(instance_path) as instance: read = False self._demand = list() for word in instance: # End loop if EOF if word.strip() == "DEPOT_SECTION": break # If do, store tour if read: s = word.split() self._demand.append(int(s[1])) # If DEMAND_SECTION, set 'read' if word.strip() == "DEMAND_SECTION": read = True if self._best_solution is not None: self._best_solution.load = self.routes_load( self._best_solution.routes)
def clear_interface(self, vip): try: vip=vip.split("/",1)[0] Shell.run('ifconfig lo:1 %s netmask 255.255.255.255 down' % (vip)) logging.debug("Removed VIP from loopback interface due to all backend failures") except Exception as ex: logging.error(ex)
def create_interface(self, vip): try: vip = vip.split("/", 1)[0] Shell.run('ifconfig lo:1 %s netmask 255.255.255.255 up' % (vip)) logging.debug("Assigned VIP to the loopback interface") except Exception as ex: logging.error(ex)
def qstat(jid): """ Check job status """ s = Shell() rc, out, m = s.cmd1("qstat %s | grep %s | awk '{print $5}'" % (jid, jid)) if rc != 0: return None return out.strip('\n')
def transcode_picture(filename, layers): # {{{ log.debug("transcode_picture: {} {}".format(filename, layers)) if layers > 0: shell.run("trace kdu_transcode" + " -i " + filename + " -jpx_layers sYCC,0,1,2" + " -o " + "transcode_quality/" + filename + " Clayers=" + str(layers))
def do_fire(self, objects): if self.fire_dt > 1000000 / self.FIRE_RATE: shell = Shell(-self.move_v * self.SPEED) shell.scale_factor = 1.75 shell.setSprite(self.shell_texture) shell.sprite.position = self.sprite.position objects.append(shell) self.fire_dt = 0
def toDirectory(): # {{{ Save to directory f = str(pwd) + "/../FSO_" + str( video.split("/")[len(video.split("/")) - 1]) + "_L" + str( layers) + "_T" + str(TRLs) + "_BS" + str(block_size) + "_SR" + str( search_range) + "_G" + str(GOPs) + "_" + str(slope) + ".dat" shell.run("rm -rf " + f + "; mkdir " + f) shell.run("cp " + str(pwd) + "/*.dat " + f)
def test__handle_output_norecord(self): sh = Shell(record_output=False, record_errors=False) self.assertEqual(sh._stdout, '') self.assertEqual(sh._stderr, '') sh._handle_output('another.txt\n', 'Error: Please supply an arg.') self.assertEqual(sh._stdout, '') self.assertEqual(sh._stderr, '')
def dead(self, map_group=None, enemy_group=None, fireball_group=None): self.settings.score_holder += self.settings.point_values['koopa'] self.is_dead = True # if map_group and enemy_group and fireball_group: if map_group != None and enemy_group != None and fireball_group != None: s = Shell(self.screen, self.settings, self.rect.centerx, self.rect.centery) s.add(map_group, enemy_group, fireball_group)
def is_hdp_select_installed(): sh = Shell() output = sh.run('which hdp-select') if len(output[0]) == 0: return False else: return True
def setUp(self): super(ShellTestCase, self).setUp() self.test_dir = os.path.join('/tmp', 'python_shell') self.hello_path = os.path.join(self.test_dir, 'hello.txt') self.sh = Shell() shutil.rmtree(self.test_dir, ignore_errors=True) os.makedirs(self.test_dir)
def run(self): shell = Shell() print(self.three_level_dir_repr(), end='') command = input().strip() while(command != 'exit'): ret_msg = shell.process_command(command) print(ret_msg) print(self.three_level_dir_repr(), end='') command = input().strip()
def transcode_picture(filename_in, filename_out, layers): # {{{ log.debug( "transcode_picture: {} to {}/{} with {} layers, from gop {}".format( filename_in, destination, filename_out, layers, gop + 1)) if layers > 0: shell.run("trace kdu_transcode" + " -i " + filename_in + " -jpx_layers sYCC,0,1,2" + " -o " + destination + "/" + filename_out + " Clayers=" + str(layers))
def clear_interface(self, vip): try: vip = vip.split("/", 1)[0] Shell.run('ifconfig lo:1 %s netmask 255.255.255.255 down' % (vip)) logging.debug( "Removed VIP from loopback interface due to all backend failures" ) except Exception as ex: logging.error(ex)
def output(self): for ok in self.messages['ok']: print(Shell.color(ok, 'white', 'green')) for warning in self.messages['warning']: print(Shell.color(warning, 'yellow', 'black')) for error in self.messages['error']: print(Shell.color(error, 'white', 'red'))
class EditorShellNotebook(wx.Notebook): """A notebook containing an editor page and a shell page.""" def __init__(self, parent, filename=None): """Create EditorShellNotebook instance.""" wx.Notebook.__init__(self, parent, id=-1) usePanels = True if usePanels: editorparent = editorpanel = wx.Panel(self, -1) shellparent = shellpanel = wx.Panel(self, -1) else: editorparent = self shellparent = self self.buffer = Buffer() self.editor = Editor(parent=editorparent) self.buffer.addEditor(self.editor) self.buffer.open(filename) self.shell = Shell(parent=shellparent, locals=self.buffer.interp.locals, style=wx.CLIP_CHILDREN | wx.SUNKEN_BORDER) self.buffer.interp.locals.clear() if usePanels: self.AddPage(page=editorpanel, text='Editor', select=True) self.AddPage(page=shellpanel, text='Shell') # Setup sizers editorsizer = wx.BoxSizer(wx.VERTICAL) editorsizer.Add(self.editor.window, 1, wx.EXPAND) editorpanel.SetSizer(editorsizer) editorpanel.SetAutoLayout(True) shellsizer = wx.BoxSizer(wx.VERTICAL) shellsizer.Add(self.shell, 1, wx.EXPAND) shellpanel.SetSizer(shellsizer) shellpanel.SetAutoLayout(True) else: self.AddPage(page=self.editor.window, text='Editor', select=True) self.AddPage(page=self.shell, text='Shell') self.editor.setFocus() self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.OnPageChanged, id=self.GetId()) def OnPageChanged(self, event): """Page changed event handler.""" selection = event.GetSelection() if selection == 0: self.editor.setFocus() else: self.shell.SetFocus() event.Skip() def SetFocus(self): wx.Notebook.SetFocus(self) selection = self.GetSelection() if selection == 0: self.editor.setFocus() else: self.shell.SetFocus()
def _get_master_ifname(self, daemon, ifname_instance): output = Shell.run('ip netns exec ns-%s ethtool -S %s' % (daemon, ifname_instance)) m = re.search(r'peer_ifindex: (\d+)', output) ifindex = m.group(1) output = Shell.run('ip link list') expr = '^' + ifindex + ': (\w+): ' regex = re.compile(expr, re.MULTILINE) m = regex.search(output) return m.group(1)
def _add_shell_panel(self): """ Adds a python shell to the bottom pane. """ logger.debug("Adding shell.") self._shell = Shell() self._shell.set_font(self._font) panel = self.window.get_bottom_panel() panel.add_item_with_stock_icon(self._shell, "DjangoShell", "Python Shell", STOCK_PYTHON) self._setup_shell_panel() panel.activate_item(self._shell)
def __init__(self, devdir, startsemlex, catroles): self.devdir = devdir self.allpatterns = { } #extract|case|trigger|triggertype as key, value is [freq of pattern, [extracts, heads]] self.bestpatterns = [ ] #A simple list containing the idkeys of best patterns for lookup in self.allpatterns. self.semlex = startsemlex #names of semantic categories are keys, lists of pairs words in each category and their heads are values self.catroles = catroles #names of semantic categories are keys, the semantic role of each category is the value self.shell = Shell() self.data = Data()
def _add_dbshell_panel(self): """ Adds a database shell to the bottom pane. """ logger.debug("Adding database shell panel.") self._dbshell = Shell() self._dbshell.set_font(self._font) panel = self.window.get_bottom_panel() panel.add_item_with_stock_icon(self._dbshell, "DjangoDbShell", "Database Shell", STOCK_DBSHELL) self._setup_dbshell_panel() panel.activate_item(self._dbshell)
def __init__(self, parent, id=-1, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.SP_3D|wx.SP_LIVE_UPDATE, name='Crust Window', rootObject=None, rootLabel=None, rootIsNamespace=True, intro='', locals=None, InterpClass=None, startupScript=None, execStartupScript=True, *args, **kwds): """Create Crust instance.""" wx.SplitterWindow.__init__(self, parent, id, pos, size, style, name) # Turn off the tab-traversal style that is automatically # turned on by wx.SplitterWindow. We do this because on # Windows the event for Ctrl-Enter is stolen and used as a # navigation key, but the Shell window uses it to insert lines. style = self.GetWindowStyle() self.SetWindowStyle(style & ~wx.TAB_TRAVERSAL) self.shell = Shell(parent=self, introText=intro, locals=locals, InterpClass=InterpClass, startupScript=startupScript, execStartupScript=execStartupScript, *args, **kwds) self.editor = self.shell if rootObject is None: rootObject = self.shell.interp.locals self.notebook = wx.Notebook(parent=self, id=-1) self.shell.interp.locals['notebook'] = self.notebook self.filling = Filling(parent=self.notebook, rootObject=rootObject, rootLabel=rootLabel, rootIsNamespace=rootIsNamespace) # Add 'filling' to the interpreter's locals. self.shell.interp.locals['filling'] = self.filling self.notebook.AddPage(page=self.filling, text='Namespace', select=True) self.display = Display(parent=self.notebook) self.notebook.AddPage(page=self.display, text='Display') # Add 'pp' (pretty print) to the interpreter's locals. self.shell.interp.locals['pp'] = self.display.setItem self.display.nbTab = self.notebook.GetPageCount()-1 self.calltip = Calltip(parent=self.notebook) self.notebook.AddPage(page=self.calltip, text='Calltip') self.sessionlisting = SessionListing(parent=self.notebook) self.notebook.AddPage(page=self.sessionlisting, text='History') self.dispatcherlisting = DispatcherListing(parent=self.notebook) self.notebook.AddPage(page=self.dispatcherlisting, text='Dispatcher') self.SplitHorizontally(self.shell, self.notebook, -self.sashoffset) self.SetMinimumPaneSize(100) self.Bind(wx.EVT_SIZE, self.SplitterOnSize) self.Bind(wx.EVT_SPLITTER_SASH_POS_CHANGED, self.OnChanged)
def shooting(self, shells): """ The method is responsible for the behavior of the projectile. """ if len(shells) < 10: if self.position: coordinates_shell = [round(self.x + 45), round(self.y + 22)] shell = Shell(coordinates_shell, 1) else: coordinates_shell = [round(self.x + 10), round(self.y + 22)] shell = Shell(coordinates_shell, -1) shells.append(shell) return shells
def __init__(self, use_dummy=False, filename=None, **kwargs): super(TestRoot, self).__init__(**kwargs) self.use_dummy = use_dummy self.filename = filename self.resetting = False self.shell = Shell() self.shell.bind(on_stdout=self.on_stdout) self.shell.bind(on_stderr=self.on_stderr) self.shell.bind(on_exit=self.on_exit) self.ids.quit.bind(on_press=lambda x: self.stop()) self.ids.scan.bind(state=self.on_state_scan)
def install_nifi(): logger.info('Attempting to install NiFi to the cluster') if not is_ambari_installed(): logger.error('Ambari must be installed to install NiFi as well.') raise EnvironmentError('You must install the demo on the same node as the Ambari server. Install Ambari here or move to another node with Ambari installed before continuing') if not is_hdp_select_installed(): installed = install_hdp_select() if not installed: logger.error('hdp-select must be installed to install NiFi') raise EnvironmentError('hdp-select could not be installed. Please install it manually and then re-run the setup.') conf = config.read_config('service-installer.conf') cmds = json.loads(conf['NIFI']['install-commands']) sh = Shell() logger.info('Getting HDP Version') version = sh.run(cmds[0]) logger.info('HDP Version: ' + version[0]) fixed_copy = cmds[2].replace('$VERSION', str(version[0])).replace('\n', '') fixed_remove = cmds[1].replace('$VERSION', str(version[0])).replace('\n', '') logger.info('NiFi Clean Command: ' + fixed_copy) logger.info('NiFi Copy Command: ' + fixed_remove) remove = sh.run(fixed_remove) copy = sh.run(fixed_copy) logger.info('Attempting to restart Ambari...') restart = sh.run(cmds[3]) print("Please open the Ambari Interface and manually deploy the NiFi Service.") raw_input("Press enter twice to continue...") raw_input("Press enter once to continue...") # We've copied the necessary files. Once that completes we need to add it to Ambari logger.info('Waiting for user to install service in Ambari to continue') print('Checking to make sure service is installed') ambari = config.read_config('global.conf')['AMBARI'] installed = check_ambari_service_installed('NIFI', ambari) logger.info('NiFi installed successfully') cont = '' if not installed: print('Unable to contact Ambari Server. Unsure whether or not Zeppelin was installed') while not (cont == 'y' or cont == 'n'): cont = raw_input('Continue attempt to set up NiFi for demo?(y/n)') if not (cont == 'y' or cont == 'n'): print('Please enter "y" or "n"') else: cont = 'y' if cont == 'n': return False elif cont == 'y': return True
def is_hdp_select_installed(): '''Checks if ``hdp-select`` is installed. Returns: bool: True if installed (available as shell command), False if not installed''' sh = Shell() output = sh.run('which hdp-select') if len(output[0]) == 0: return False else: return True
def __init__(self, frames, semlexcollection, patterncollection, prepcollection, language): self.shell = Shell() self.frames = frames #Key is trigger ("trigger, active"), value is frame object self.filledframes = [] self.semlex = {} self.patterns = {} self.prepositions = {} self.language = language self.semlexcollection = semlexcollection self.patterncollection = patterncollection self.prepcollection = prepcollection
def test__handle_output_simple(self): sh = Shell() self.assertEqual(sh._stdout, '') self.assertEqual(sh._stderr, '') sh._handle_output('another.txt\n', None) self.assertEqual(sh._stdout, 'another.txt\n') self.assertEqual(sh._stderr, '') sh._handle_output('something.txt\n', 'Error: Please supply an arg.\n') self.assertEqual(sh._stdout, 'another.txt\nsomething.txt\n') self.assertEqual(sh._stderr, 'Error: Please supply an arg.\n')
def main(): CLOCK = None SIZE = (X, Y) pygame.init() SCREEN = pygame.display.set_mode(SIZE) CLOCK = pygame.time.Clock() SIZE = pygame.display.get_surface().get_size() background = Mountain(SIZE) tanks = [ Tank( int(X * (0.5 - 0.4 * (max(-1, min(1, random.normal(direction)))))), direction, background) for direction in (LEFT, RIGHT) ] bg = background.render() print("blitting background") wind = random.randint(-10, 10) running = True player = 0 while running: t = tanks[player] print("blitting tank ", t.direction, " x=", t.x, " y=", t.y) wind += random.randint(-2, 2) t.draw(bg) panel = Panel(t) aiming = True while running and aiming: for e in pygame.event.get(): if e.type == pygame.KEYDOWN: if e.key == pygame.K_ESCAPE: running = False if e.key == pygame.K_SPACE: aiming = False panel.handle(e) SCREEN.blit(bg, (0, 0)) panel.draw(wind, SCREEN) pygame.display.flip() if running: dt = 0 s = Shell(t, wind=10) shot = True while shot: SCREEN.blit(bg, (0, 0)) shot = s.animate(SCREEN, background, dt) pygame.display.flip() dt += 0.05 CLOCK.tick(FPS) player = 1 - player pygame.display.quit()
def is_ambari_installed(): '''Determines whether or not ``ambari-server`` is available (In order to start/stop/restart Ambari) Returns: bool: True is ``ambari-server`` is available as a shell command. False otherwise. ''' sh = Shell() output = sh.run('which ambari-server') if len(output[0]) == 0: return False else: return True
def main_loop(self): while(self.__location <> "quit"): try: gesture = self.show(self.__location) if gesture[0] != "!": self.__history.append(gesture) page = self(gesture) if page is not None: self.__location = page except KeyboardInterrupt: break except Exception, e: Shell.show_message(`e`, 1) raise
def teardown(pod_namespace, pod_name, docker_id): manager = LxcManager() short_id = docker_id[0:12] api = ContrailVRouterApi() uid, podName = getDockerPod(docker_id) vmi, _ = vrouter_interface_by_name(podName) if vmi is not None: api.delete_port(vmi) manager.clear_interfaces(short_id) Shell.run('ip netns delete %s' % short_id)
def interface_find_peer_name(self, nsname): ifname_instance = Shell.run( 'ip netns exec %s ip link show eth0 | ' 'awk \'/eth0/{split($2, array, \":\"); print array[1];}\'' % nsname) logging.debug('instance interface %s' % ifname_instance) # Get ifindex of ifname_instance ns_ifindex = Shell.run('ip netns exec %s ethtool -S eth0 | ' 'grep peer_ifindex | awk \'{print $2}\'' % (nsname)) ifname = ifindex2name(int(ns_ifindex)) return ifname
def interface_update(self, daemon, vmi, ifname_instance): """ 1. Make sure that the interface exists in the name space. 2. Update the mac address. """ output = Shell.run('ip netns exec ns-%s ip link list' % daemon) if not self._interface_list_contains(output, ifname_instance): ifname_master = self.create_interface('ns-%s' % daemon, ifname_instance) else: ifname_master = self._get_master_ifname(daemon, ifname_instance) mac = vmi.virtual_machine_interface_mac_addresses.mac_address[0] Shell.run('ip netns exec ns-%s ifconfig %s hw ether %s' % (daemon, ifname_instance, mac)) return ifname_master
def clear_interfaces(self, nsname): output = "" try: output = Shell.run('ip netns exec %s ip link list' % nsname) except Exception as ex: logging.error(ex) for line in output.split('\n'): m = re.match(r'^[\d]+: ([\w]+):', line) if m: ifname = m.group(1) if ifname == 'lo': continue Shell.run('ip netns exec %s ip link delete %s' % (nsname, ifname))
def main(): try: module_dir = os.path.dirname(__file__) app_dict = open(os.path.join(module_dir, "app_states/master_state.json")).read() app_dict = json.loads(app_dict) except Exception: return (1, "Could not open file. Traceback: %s" % traceback.format_exc()) try: app = App.create_from_dict(app_dict) except Exception: return (2, "Could not parse. Traceback: %s" % traceback.format_exc()) try: codes = create_codes(app) except Exception: return (3, "Could not create app. Traceback: %s" % traceback.format_exc()) try: cc = Coder.create_from_codes(codes) tmp_dir = write_to_fs(cc) except Exception: return (4, "Could not write code. Traceback: %s" % traceback.format_exc()) # syncdb sh = Shell() cd = "cd %s" % tmp_dir chdir_then = lambda x: "%s ; %s" % (cd, x) sh.run(chdir_then('python manage.py syncdb --noinput')) errors = sh.errors() if len(errors) > 0: return (5, repr(errors)) sh.run(chdir_then('python manage.py runserver')) errors = sh.errors() if len(errors) > 0: return (6, repr(errors)) sh.run(chdir_then('python manage.py test webapp')) errors = sh.errors() if len(errors) > 0: return (7, repr(errors)) # runserver # run tests return (0, "success: %s" % tmp_dir)
class TestShell(unittest.TestCase): def setUp(self): from shell import Shell self.shell = Shell() def test_ls(self): output = self.shell.cmd('ls')
def do_POST(self): form = cgi.FieldStorage( fp=self.rfile, headers=self.headers, environ={'REQUEST_METHOD': 'POST', 'CONTENT_TYPE': self.headers['Content-Type'], }) shell = Shell() message = shell.execude(form.getvalue('cmd')) cwd = shell.pwd self.send_response(200) self.send_header("Content-type", "text/json") self.end_headers() s = json.dumps({'result': message, 'cwd': cwd}) self.wfile.write(bytes(s, 'UTF-8'))
def getPodInfo(namespace, podName): kubeapi = kubelet_get_api() data = Shell.run( 'kubectl --server=%s:8080 get --namespace=%s -o json pod %s' % ( kubeapi, namespace, podName), True) return json.loads(data)
def local_address(self): output = Shell.run('ip addr show vhost0') expr = re.compile(r'inet ((([0-9]{1,3})\.){3}([0-9]{1,3}))/(\d+)') m = expr.search(output) if not m: raise Exception('Unable to determine local IP address') return m.group(1)
def handle(self): logger.debug("Connected from %s %u" %(self.client_address)) # try: exit=False shellmode=False logger.debug("Starting a shell") from shell import Shell myshell=Shell(self.rfile, self.wfile, self.server.user, self.server.passwd) try: myshell.cmdloop() except: ComLog.errorTraceLog(logger) # except SSL.ZeroReturnError: # pass self.request.close() logger.debug("Disconnected from %s %u" %(self.client_address))
def interface_find_peer_name(self, ifname_instance, nsname): # Get ifindex of ifname_instance ns_ifindex = Shell.run('ip netns exec %s ethtool -S %s | ' 'grep peer_ifindex | awk \'{print $2}\'' \ % (nsname, ifname_instance)) ifname = ifindex2name(int(ns_ifindex)) return ifname
def setup_locale(self): if 'locale' in self.preferences: lang_config = self.root_dir + '/etc/sysconfig/language' if os.path.exists(lang_config): log.info( 'Setting up locale: %s', self.preferences['locale'] ) Shell.run_common_function( 'baseUpdateSysConfig', [ lang_config, 'RC_LANG', self.preferences['locale'].split(',')[0] + '.UTF-8' ] ) else: log.warning( 'locale setup skipped etc/sysconfig/language not found' )
def setup_keyboard_map(self): if 'keytable' in self.preferences: keyboard_config = self.root_dir + '/etc/sysconfig/keyboard' if os.path.exists(keyboard_config): log.info( 'Setting up keytable: %s', self.preferences['keytable'] ) Shell.run_common_function( 'baseUpdateSysConfig', [ keyboard_config, 'KEYTABLE', '"' + self.preferences['keytable'] + '"' ] ) else: log.warning( 'keyboard setup skipped etc/sysconfig/keyboard not found' )