Author Archives: michaelkenny2

Last weeks of the semester…

The end of the semester has approached rapidly and is finally here. Although we do not have a completely working cluster on campus we have spent a lot of time working with EuTester using the ECC cloud and getting familiar with how it works. I personally only got as far as running test scripts in EuTester, the learning curve was quite steep and I had never used so many command line prompts prior to this class. The documentation for setting up and installing EuTester is decent for a more experienced user, but for someone who had never done work like this i, it was a little difficult to configure with the documentation given. I think that it would be a great idea for us to contribute some additional documentation to what already exists for EuTester, especially documentation for a less experienced user.

We have also been given two assignments which I am currently working on for our last day of class/final. One is an ethical analysis of the Eucalyptus project and the other a final presentation for each groups experiences with the project. My groups focus was EuTester issues and bugs, however most of our group only just started to run test scripts by the end of the semester because we all experienced many issues configuring EuTester. So we were unable to dive into the issues/bugs that were listed on the github site. Our presentation will probably focus more on the installation and configuration of EuTester and the troubles we experienced setting it up and what we learned.

I really enjoyed the opportunity to do something like this with our class and wished we could have gotten closer to actually have a fully working cluster on campus. If only the class lasted over multiple semesters or had a lab attached to it we may have gotten further. The project itself is very time consuming and complicated so I am happy with how far we got on just 1 semester. Hopefully following classes can pick up where we left off and continue to work on the same project.

From the blog michaelkenny2 » WSU CS by michaelkenny2 and used with permission of the author. All other rights reserved by the author.

4/30

I figured that since we are nearing the end of the semester I would post an updated list of current bugs/issues located on the EuTester github page. There are currently quite a bit more issues since the last time I posted the list and I think that some of them have come from our class’s extensive use of EuTester.

  • Update eutester/__init__.py
  • Feature Request: Allow for NC to be an optional value in config_file
  • Need way for machine access when keys have been previously synced
  • Restructure Eucaops into multiple modules
  • Create a Test Directory WikiAdmin
  • Need to investigate a tool that represents test results visually
  • Define licensing
  • Create a standard set of debug tools available when tests fail
  • Goals, purpose, and guidelines for contribution

My group is going to continue trying to run test scripts and familiarize ourselves with EuTester and hopefully try and look into one of these issues. We have posted all the information regarding issues/bugs for EuTester on our departmental wiki.

From the blog michaelkenny2 » WSU CS by michaelkenny2 and used with permission of the author. All other rights reserved by the author.

4/23

I have been working on running test cases with EuTester by following some of the wiki posts by my fellow classmates as well as blog posts located here by Vic Iglesias. There is still a bit of a learning curve working with python as a language I am not very familiar with.. I understand the basics for writing the test cases with Eutester in particular I have learned that you especially need to make sure that you configure a setup and teardown phase in the code as described below in a portion taken from the Vic Iglesias blog:

import unittest
from eucaops import Eucaops

class MyFirstTest(unittest.TestCase):

    def setUp(self):
        self.tester = Eucaops(credpath="/home/ubuntu/.euca")
        self.keypair = self.tester.add_keypair()
        self.group = self.tester.add_group()
        self.tester.authorize_group(self.group)
        self.tester.authorize_group(self.group, port=-1, protocol="icmp")
        self.reservation = None

    def testInstance(self):
        #### INTERESTING STUFF GOES HERE
        pass        

    def tearDown(self):
        if self.reservation is not None:
            self.tester.terminate_instances(self.reservation)
        self.tester.delete_keypair(self.keypair)
        self.tester.local("rm " + self.keypair.name + ".pem")
        self.tester.delete_group(self.group)

The setup phase makes sure the system has the required elements in order to execute the code, while the teardown releases these elements after execution. I have not yet attempted writing my own test cases as I am still experimenting with the default ones, but even if I never get around to writing my own I am enjoying learning a new programming language and this is good practice running scripts for me.

From the blog michaelkenny2 » WSU CS by michaelkenny2 and used with permission of the author. All other rights reserved by the author.

4/16

I have continued my work attempting to run Eutester. Following fellow classmates entries on the CS wiki has given me some much needed guidance and I was able to get past the no module named random error I was receiving by using the sudo acronym to grant access.

As of now I am reading over how to run test cases and write test cases using python. After attending the Eutester basics class held on IRC I have a general idea of how to run test cases, but I am still not very familiar with the python language itself. I will update again after I have run a successful test case.

From the blog michaelkenny2 » WSU CS by michaelkenny2 and used with permission of the author. All other rights reserved by the author.

4/9

Over the past week I have been working further to familiarizing myself with using Eutester. It is actually becoming much more difficult then it had seemed it would be. Whenever I attempt to configure EuTester it is throwing multiple errors regarding BlockDeviceType, and I cannot seem to find an answer to this problem. It could be a specific folder that the different elements EuTester requires are placed in. So I am going to follow some fellow classmates advice and attempt to use the method from our departmental wiki page by running a virtual environment instance of EuTester.

Image

 

From the blog michaelkenny2 » WSU CS by michaelkenny2 and used with permission of the author. All other rights reserved by the author.

Installing and Configuring EuTester

Last week I was attempting to install EuTester and finding out the hard way that it requires many pre installed elements in order to run correctly. I finally installed both boto and paramiko and I am receiving a few errors when I attempt to configure EuTester by following the blog posts from Vic Iglesias. This is probably due to the fact that I am quite a novice user of the command line and running scripts it is difficult at times for me to understand. Perhaps we could help them with EuTester documentation for less experienced users.

From the blog michaelkenny2 » WSU CS by michaelkenny2 and used with permission of the author. All other rights reserved by the author.

EuTester Issue Tracker

Following spring break we discussed the current status of our cluster which appears to be really close to complete. We are now nearing the latter half of the semester and it is time to switch into gear. While I have been attempting to install EuTester and connect to the ECC cloud I have also been checking the EuTester Issue Tracker on occassion to see if there are any new updates.

As of right now there are 5 listed issues and or requests:

  • Define Licensing:

    Need to figure out what license we’re offering Eutester under. I presume GPLv3 to be compatible with the Eucalyptus product itself, but we need to be explicit. Also need to make it clear that it’s copyright Eucalyptus.

  • Create a standard set of debug tools available when tests fail:

    When a eutester test fails, we need to provide a standard set of debugging tools back to the user. This debug info should include as much as is necessary to find the possible cause of the behavior. Currently, the Eutester class provides a very basic framework for this, but we’d like to expand it.

  • Create a standardized Eutester log/output format:

    We need to standardize the way we present info about a running test to a user – essentially, output formatting.

  • Testing capability for Jenkins + EC2 Plugin:

    Would like to look at test cases for Jenkins + EC2 plugin and whether this is possible to script. Jenkins has a CLI client but whether this works with EC2 Plugin is another thing: https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+CLI

  • Goals, purpose, and guidelines for contributionL

    Need to produce better documentation:

    1) Readme file should be bolsterd
    2) Add more sample scripts
    3) Ensure sane defaults (ie requests go to ECC by default)

Hopefully after some more research I will have a working EuTester build and can connect to a cloud in order to further research some of these issues. I am also going to be looking into the Python language with a little more detail, I am not very familiar with Python and learning it will better help me understand how to configure and run the scripts for each test case. There is an IRC meeting next week that discusses the basics of EuTester hosted by Vic Iglesias who is very involved in EuTester. I would love to attend to learn more because I am not very familiar with command line installs and configuration. Hopefully that classroom will give me a better understanding on how and what these arguments are doing rather than just typing text and hoping for the best. As of now I have gotten both boto and paramiko fully installed and have downloaded all of the most recent EuTester tools, I will update after I figure out how to perform the eucaops import in order to actually start the process. I have a feeling it has to do with where the files are located and the folder permissions, but I have not found a lot of documentation on setting these up correctly.

From the blog michaelkenny2 » WSU CS by michaelkenny2 and used with permission of the author. All other rights reserved by the author.

Work During Spring Break

Prior to spring break I had been attempting to install EuTester and test its functionality with no success. I know I will not  get to spend much time this week working on it because I will be very busy with family in town, so I decided to update my blog now. After reading a few blog posts and looking at some documentation I have come to realize that EuTester has quite a few requirements that have to be met before use.

In order for EuTester to work you must first have boto and paramiko (can be installed through sudo apt-get). Having these utilities provides the necessary tools for quickly implementing an automated test strategy according to the Eutester Basics Part I blog.

Currently I have installed paramiko but have not configured boto to this point, I will update after I have finished with the install of both utilities and can start with the EuTester build.

From the blog michaelkenny2 » WSU CS by michaelkenny2 and used with permission of the author. All other rights reserved by the author.

Researching EuTester

Over the past few weeks we have been discussing whether or not we should break into different groups to focus our individual efforts on smaller parts of the Eucalyptus project. I have joined the grouping working with EuTester, basically EuTester from what I have read is simply a way to test a Eucalyptus or Amazon cloud and it can be pretty much customizable. I have learned that it is written in python code and with a little knowledge of the code you can write specific test cases for it to simulate. After further research I arrived at the github Eutester site located here.

My specific portion of work for this project focuses on the EuTester bug tracker, so I was able to look through the github site and find the issue reports that currently exist. Now at this point in time it really doesn’t help me since I do not have a working EuTester build or access to a cloud to test it on, but that is what I will be working on in the upcoming weeks.

I have just now begun reading the Eutester Basics Part I blog post which explains getting setup in a little more detail, and have also begun using our classes wiki to update my findings and also to read what other classmates are encountering as they try setting up EuTester.

From the blog michaelkenny2 » WSU CS by michaelkenny2 and used with permission of the author. All other rights reserved by the author.

Connecting to an ECC Cloud

After finally familiarizing myself with the Eucalyptus documentation I decided to attempt to connect and establish a VM on the ECC cloud. In order to successfully use EuTester and become familiar with testing clouds I need to be able to actually connect to a working cloud.

This process was a bit daunting at first when I started receiving errors immediately from the start. After much research and a little figuring out of my own I was able to begin connecting to an instance. The problem I had initially was that the directory I had created did not contain the .zip file with my credentials from the ECC site. After putting this .zip file in the same directory and properly extracting them I was able to connect to an instance.

Image

However, the next problem would come shortly after. After connecting to the instance I authorized the security groups and allocated the IPs according to the documentation on the Eucalyptus site. This is where the problems started as I attempted to SSH into a VM instance. I keep receiving connection timeout errors as follows:

Image

I will keep researching this issue and speak to a few people from class tomorrow to see if anyone has experienced the same problem.

From the blog michaelkenny2 » WSU CS by michaelkenny2 and used with permission of the author. All other rights reserved by the author.