EeePc Initial Reactions

Last Friday i bought an EeePc for my brother. I have heard a lot about this little master, or rather monster, but i had to see it for myself, what it could really do?logo EeePc Initial Reactions

Got it home and the first thing i do, hook it on to the wifi – a plus over there. Then it was time for some serious browsing. Did that and the only thing that i found a bit difficult was typing. C’mon the entire keypad fits in my palm and how am i supposed to type. But still again a plus. One of the things that i need to do from a usability point of view, for any Linux box, is to play movies. Plugged in my thumb-drive and double clicked a movie. Cool! just played it just like that, without any problem.

So far EeePc has impressed me in more ways than most girls have ever done. But word of caution, if u r a linux junkie who likes to get your hands dirty by doing – ./configure; make; make install- then EeePc is not the one for you. Coz it has everything that you need for a, err say and over sized mobile with out the calling facility. (one of the reasons why i goes to my brother icon smile EeePc Initial Reactions )

My initial reactions with EeePc has been captured with the inbuilt cam like this -

image 00000 300x225 EeePc Initial Reactionsimage 00001 300x225 EeePc Initial Reactionsimage 00002 300x225 EeePc Initial Reactionsimage 00003 300x225 EeePc Initial Reactions

Here are somethings that i have tried out on EeePc -

  1. Locate the Terminal (this is fun, coz u really need to know linux like your backyard to locate this)
  2. Write a “Hello WorldPython program (this was written at Barcamp Bangalore 8 )

icon wink EeePc Initial Reactions

 EeePc Initial Reactions

Useful Python Snippets

My love for Python has indeed grown with the constant usage. Each day i find something that is really interesting with that. By interesting i mean, C will complain and whine if i do that, PERL say ‘lets give it a try‘ and Python is like, ‘C’mon baby, i’m ready!!!’.

My advice to good C/C++ programmers is that, stay the way you are, picking up PERL / Python will screw up you skill. C is like the wife with whom you have to be loyal, Python is like the liberal girlfriend, who lets you flirt with other girls and wouldn’t mind.

Coming back to the purpose of this post, here are some of the snippets that proved useful to me and could also help you out with in your scripts -

File to List – Move the contents of the file in to an list, line by line

list = ([line for line in open ( "names.txt", "r")])

Pattern Matching – the only thing that i miss in Python is the regexp usability that PERL gave me. Some how i feel that using regexp was a lot more easier with Perl, than with Python

# import the regex pacakge
import re
#create the regex object
pattern = re.compile("error")
# search for pattern
re.search(pattern, sampleString)

re.search return TRUE / FALSE depending on the result, so that it can be used along with if <> : clause

Detecting the OS and creating directories – this helps to solve the variation in the Windows directory navigation (..\\..\\) and the Unix style navigation (../../)

# import OS packages and time package
import os, time, sys, os.path
# create a unique directory name based on the time
dirName="Run-"+time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())
# detect the OS
if os.name == "posix":
    logPath = "../../logs/"
    resultsPath = "../../results/"
else:
    logPath = "..\\..\logs\\"
    resultsPath = "..\\..\\results\\"
# create the directories
os.mkdir(logPath+dirName)
os.mkdir(resultsPath+dirName)

String is like a List – the best part of Python

str = "Hello"
# will print H
print str[0]

Happy scripting, and i hope this will be helpful to some … icon smile Useful Python Snippets

Script for Telnetting with PERL and Python

75 logo Script for Telnetting with PERL and PythonLets just say that PERL made me a crazy programmer. Then came Python, it made me an insane one. In my previous job, it was all PERL, PERL and PERL. But this current job has made me pick up Python.

Python was picked up because the STAF/STAX automation work required scripts and Python was the candidate. So one fine day i found myself writing this -

python logo Script for Telnetting with PERL and Python#!/usr/bin/python
print "Hello world"

instead of this -

#!/usr/bin/perl
print "Hello World";

Then i actually looked back and thought, what was the first real purpose for which i wrote a PERL script – telnetting. Even today i find that telnetting to workstations to retrieve stats, is one thing that i do a zillions times day. The usual telnet script with PERL/Python has to be used along with the Expect module. That guarantees that the session time-outs and failure scenarios are properly taken care of.

But there is one place where you can just avoid Expect module all together. Its when you use the script within the same network and you are 70% sure that the pain-in-the-butt scenario rarely happens. So here it is a minimal telnet script that i have made in both PERL and Python.

PERL

#!/usr/bin/perl
use Telnet;
$host = "192.168.1.100";
$port = "2300";
$uid = "jerry";
$pwd = "password";
open $inputLog,  ">in.log";
$box = new Net::Telnet();
$box->open(     Host => $host,
                Port => $port,
        );
$iLog = $box->input_log($inputLog);
$flag = $box->login(    Name => $uid,
                        Password => $pwd,
                );
$box->print("show log");
$box->waitfor('/# $/i');
$box->close;
exit

PYTHON

#!/usr/bin/python
import os, telnetlib
HOST = "192.168.1.100"
PORT = "2300"
user = "jerry"
password = "password"
f = open(sLog, "in.log")
tn = telnetlib.Telnet(HOST, PORT)
tn.read_until("login: ")
tn.write(uid + "\n")
tn.read_until("Password: ")
tn.write(pwd + "\n")
tn.read_until("]#")
tn.write("show log\n")
f.write(tn.read_until("]#"))
f.close()
tn.write("exit\n")
tn.read_until("#")
tn.close()

Happy scripting. icon smile Script for Telnetting with PERL and Python

Telnet Scripting Tool a.k.a TST10.exe

I have been thinking for a long time that i need to write about this tool that i found. Its quite interesting that this tool is really helpful in automating many of the routine sessions that i as a tester came across. This is by far the best automation tool that i found for telnet sessions.

Imagine these scenarios :

  • You need to do BSO authentications frequently when you switch networks
  • Get intermittent logs from the server for analysis
  • Run automated tests on remote systems (something which i have started to call as run-and-forget)
  • stuck in traffic…no way

Lets get into what this tool is and how to use it.

The tool is for windows (one of the things that i felt bad). To make use of this tool, u will need the exe file, i.e., tst10.exe and an input commands file. The input file will has the first line as the hostname/IP and port, which is followed by alternating SEND and WAIT commands.

Consider this example. I need to connect to a server of IP – 192.168.1.100, where a telnet service is running at PORT – 2300. This is how my script/input file will look like :

192.168.1.100 2300
SEND "\m"
WAIT "login:"
SEND "admin\m"
WAIT "Password:"
SEND "admin1\m"
WAIT "s1#"
SEND "co\m"
WAIT "s1(config)#"
SEND "show load; show cpu\m"
WAIT "s1(config)#"

“\m” = \n in C/PERL/Java/most programming langunages = CR or in non-techie terms “Enter”. SEND, sends the commands to be executed and the WAIT that follows tried to match the string in the output of the SEND commands before it.

How to run it?. There are 2 ways to do it. You can open up the command prompt navigate to the directory where the files are and then issue this command -

tst10.exe /r:IN /o:OUT

where IN is the input file and OUT stores the complete output of the session, so that you can skim through the file and have a look at what happened. OR, put the command in a batch file and double click it every time you need to run it.

Here is the screen capture -

tst10 Telnet Scripting Tool a.k.a TST10.exe

TST10 Screen Capture

How is it different from Net::Telnet module of Perl or something similar in TCL or Python? Think about it.

  • Time to write the code – 30min to ? depending upon how complex the situation is
  • Trying to match the output to with REGEX, which means that you need to spend time in coming up with the right regex. Now you have 2 problems in hand
  • Testing time to make sure that the script is robust enough

So this is perfect! NO. This doesn’t work for ssh sessions. Since telnet is getting substituted by ssh in most of the servers due to the secure nature of the connection its kind of difficult to fit it in a normal installation of Linux. I’m not sure about the telnet-ssh thingie happening in Solaris or any of the other servers.

Is there something like this for Linux? icon sad Telnet Scripting Tool a.k.a TST10.exe No. Hey, but look at it this way. Its some relief for us on windows platform for scripting.

You can build complex automatons with this combined with a little bit of Perl and Outlook. Here is one typical scenario that i made and which i have presented as a white-paper.

  • Outlook has a setting that detects for incoming mails with a specific subject line.
  • When the mail comes it evokes a Perl script.
  • The Perl script will go ahead an call the TST’s batch file, which initiates the TST10 session, connects to the remote server starts/runs the automation. The output will be stored in OUT file
  • The Perl script will skim the OUT file for any errors reported during the run.
  • Then it calls an FTP script that will go ahead and get the log files from the remote system
  • The log files are read, the results extracted and neatly formatted into mail and send to the required email-ids

icon smile Telnet Scripting Tool a.k.a TST10.exe sounds complex, but this script gave me enough time to hut for a new job and quit the previous employer.

Who wrote this? Someone by the name of Albert Yale. His home page is – http://ay.home.ml.org/, sadly the site is no longer online.

What happened to the white-paper? It got rejected icon wink Telnet Scripting Tool a.k.a TST10.exe , humor was not the order of the day.

Download TST10 : tst10.exe | tst10.zip