Category Archives: WSU CS

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.

CS401 – We Have Liftoff! (and other news)

Took long enough, but we now have a working cloud!!! It’s been a real struggle to learn the proper way to configure and install things to get the whole system to work properly. Applying what I learned from Andy Grimm and taking his advice to install Eucalyptus 3 via packages rather than building from source, I was able to start fresh and have a functioning cloud in a little over an hour. I was filled with joy when a classmate succesfully launched a VM instance and logged into it via SSH.

Too bad that the semester is nearly over now. Oh well. I need to finish up my documentation for how a newbie can create a Eucalyptus cloud. I was really hoping to get into some source code before the semester was over but that is just not going to happen. Even though I haven’t written a line of code this semester, the course has been invaluable. I am now far more comfortable interacting with software developers via IRC. I have learned a good deal about Linux system administration through failing over and over again. I still hate writing documentation, but now I have gotten a little practice at least. πŸ˜‰

Hopefully I can wrap up my documentation project soon and get working on the final assignments for the course: an ethical analysis of Eucalyptus and a slideshow presentation about the work I did over the semester.

In other news, the WSU programming team (of which I am a part of) got 4th place out of 27 at the competition held at Quinnipiac University! We solved 4 (nearly 5) out of the 6 problems. I wasn’t expecting such a high so it came as a pleasant surprise to see that we got 4th. This was my last year on the team so I’m glad we performed well for my final competition.

Oh, before I forget: after this semester is over… I’m done with undergrad! Which means I need to find work, preferably developing FOSS. Just need to finish my resume. So, who wants to offer me a job? πŸ™‚

From the blog David Thompson Β» WSU CS by davexunit and used with permission of the author. All other rights reserved by the author.

Week 11: Working on Eutester documentations

This week I did something different than before. I did start to work o documentation of EuTester code. We got the access to EuTester repository thru or instructor Mr. Wurst who is our master. The way in which we work on documentations is very simple.Β  We will submit every change to our instructor Mr. Wurst [&hellip

From the blog E. Lekdushi CS401 by elekdushi and used with permission of the author. All other rights reserved by the author.

CS 401 – Quality Time with Andy Grimm

On Thursday, the 19th, Eucalyptus developer Andy Grimm paid WSU a visit. Other students and I ate lunch with him and our department chair Karl Wurst. Our lunch bill is being paid by Red Hat, so even if I never work there and get a pay check from them, I can at least say that I had lunch on them one time. πŸ˜‰

After lunch, Andy and I spent the next 3 hours trying to resolve the various issues that were keeping our cloud from functioning properly. The good news is that I learned a lot about how Eucalyptus works, networking, and some neat command line tricks. The bad news is that our cloud is still not functioning.

As I pointed out in my last post: networking is hard. It is especially hard when working on the university network whose topology is pretty much unknown to me. The first big mistake that I made when I set up the network for the cloud was split the LAN into 2 subnets. The CLC, SC, and CC were on one subnet, while all the NCs were on their own subnet and the CC acted as a router for them. I had misread some networking documentation and mistakenly thought that having the NCs are on their own subnet would make things easier for later on. Andy set me straight about that and I “flattened” the network out so all of the NCs are now on the same subnet as the other Eucalyptus components. Next, we set up ethernet bridges for virtual networks that will be needed for the virtual machines. That was mostly straightforward but through some slight misconfiguration I encountered Red Hat networking hell involving a renamed `eth0` which Andy resolved for me by messing with udev.

I thought that I had a recent enough kernel installed on all of the machines to avoid the kernel bug that breaks Walrus. Turns out I didn’t. So no matter what we did the cloud would never function until that was resolved. A `yum update kernel` and a reboot took care of that. Then, for some strange reason, PostgreSQL processes wouldn’t start. Andy started them manually and things seemed to work just fine for subsequent reboots.

Despite fixing all of these issues and making a ton of progress in such a short time, we were still unable to run a VM instance. Andy and I ran out of time (he had a train to catch and I had to return to work) but he suggested that I essentially start over once again. This time I will be using the Eucalyptus packages that are available from the Eucalyptus repository.

So, another week goes by without a working cloud… but I learned a lot. Many thanks to Andy Grimm for making me a better system administrator.

From the blog David Thompson Β» WSU CS by davexunit and used with permission of the author. All other rights reserved by the author.

Final Weeks

This week I tried to download a fresh repository and none of my credentials worked. I have been unable to access the new repo to make further changes, so I’m not sure if I will be able to make anymore pushes by the end of the semester. My group has managed to get a decent amount of work done, so I am very excited about that. However, it is unlikely that we will be able to finish the entire project with only a week remaining in the semester and none of us Β able to access the new repository.

Overall, it has been fun and interesting learning how to use the Eucalyptus software and writing code and documentation for the eutester package. I wish we could have done more, especially on the development side, but it was a large project and it was difficult to actually get started doing anything. It took the entire semester to get any semblance of a cluster set up, and I still do not believe it is in a working state, not to mention the fact that more than half the class had to learn Python before being able to interpret any of the code. I really wish we were able to develop some real code as a class for the project, or at least finish the project we were working on. There were simply too many variables for an overly ambitious project that contributed to the overall lack of contribution to the Euca community.

Positive things that came out of the semester were that we were able to write a lot of useful documentation for the Euca developers and it seems that all of them are very grateful for our assistance. We met some very smart and interesting people who were enthusiastic about us helping out with their project and I really enjoyed meeting them and talking to them over IRC or email. I wish I was able to meet “mull” when he visited because I had a few questions to ask him, but I had several previous engagements that I could not get out of at the last minute. I think that the code we actually did contribute, combined with the documentation we wrote, will be very helpful to new Eucalyptus developers and testers. I hope that the next group to come along and develop for the project is able to use all of our materials and make some large developments to help out the project. I wish all the Euca people the very best and I hope the project is successful for many years to come.

From the blog trevorhodde by Trevor and used with permission of the author. All other rights reserved by the author.

4/23

With just two classes left to the semester, I would rate our class as moderately sucsessful.Β  This in no way reflects the effort that went into setting up our cloud or creating our wiki entries.Β  I believe everyone who contributed did a tremendous job, especially on the server side of things.Β  Some things are just beyond our control, which does not make it any less frustrating.Β  At present it appears our last roadblock is getting the cloud to assign accessiable IPs that communicate between each other.

I reviewed our wiki, with an eye towards what is left to complete.Β  At present it seems all that is left is formatting (Architectue OverviewΒ needs color backgrounds added to code segments), and legacy posts added to a seperate page –Β I suggest this so that those that come after can have a better understanding of the process.

The project we undertook was ambitious – set up a functioning cloud with the latest release of the Eucalyptus and leverage that to write testing scripts which could be added to the KB.Β  But I do not feel we failed because we did not meet our goals.Β  Our class created an easy to follow wiki outlining the use of a Eucalyptus cloud and the tools needed to interact with it.Β  Most recently, work was done to make the scripts already available in the Eutester easier to read and follow.

I attended a EucaSchool planning meeting, where I suggested that future classes be captured on video.Β  This would allow those unable to attend to get the full impact of the class and should obviate the need to redo basic topics.Β  The idea was well received (it seems this had been suggested before, but no follow up was done).

Going forward, I would suggest that the Cloud be maintained as it could be a valuable resource for future CS students.Β  Either for the next CS-401 class or for other CS classes.Β 

From the blog sflynn1976 Β» wsu-cs by sflynn1976 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.

More Wiki Editing and Python Learning

I added a big index at the top of the glossary page, learned how to actually link to certain part of a web page in a PMwiki, was actually a lot easier than what I figured it was here was where I found it, turns out you just make a simple [[#anchor | text ]] at the particular part where you want to reference you #anchor that part thenΒ  use [[#anchor | text]] and you’re done. Β  It was silly tedious to do but, it does give it a quicker and easier way to access the glossary, also props to Dan Adams, the glossary is looking very nice.Β  Since I learned how to use links without having to just post the ‘ugly’ url same page as the anchor tutorial I have been fixing the entire glossary page so it will read “read more”, “wikipedia entry” or something along those lines.Β  With those edits I am also fixing the capitalization of each entry.

EuTester has been great for learning Python, I was long over due to learn it anyways.Β  I started using Zed A. Shaw’s book (great resource for learning a language for free/very cheap) and then after I knew enough to make better sense then I started looking at all the Python that eutester had.Β  Commenting has been great for learning because it forces me to look at the code, analyze what I am reading, then form coherent ideas from that. Zed’s book along with the multitude of forums while google searching has really been great.

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

Week 10: Trying to run EuTester

This week I have tried to put to work EuTester. I have follow different ways how to make work the EuTester but no success toward this problem. I am trying to work with it because I need too for my work on EuTester bug tracker. I need to run a test for my self that [&hellip

From the blog E. Lekdushi CS401 by elekdushi and used with permission of the author. All other rights reserved by the author.

My first conflict

So today I was doing some more documentation on the eutester repo. Everything was going fine until I went to push my changes to the repo. To my surprise, I received a conflict. Confused, i went to the github page to see if anyone had made changes to the file i was commenting. Sure enough, Marcos had made some additions to the comments. I tried to figure out how to fix the conflicts manually in my code but finally just decided to do a fresh clone of the repo and remove my old one. I normally do pulls before I get started on changing anything, I guess I just forgot to today and ran into a conflict because of it. At least I learned a little more about git due to this mistake, which is always good!

From the blog clacroix12 by clacroix12 and used with permission of the author. All other rights reserved by the author.