Search This Blog

Showing posts with label bug. Show all posts
Showing posts with label bug. Show all posts

Sunday, March 10, 2013

Openstack Gerrit code review process details

Are you looking to contribute code to one of the Openstack projects (example include Nova, Quantum or Glance and many more). If the answer is yes, you definitely need to get familiar with the code review that Openstack enforces. A good overview of what this is can be found here Code review process in Openstack uses Zuul.

On a technical site the process has been implemented with a help of Gerrit system. From end user perspective you get access to a nice and good looking page in a browser that helps you to review, comment and approve code changes that should be committed to master repository. A quick and good introduction of what Gerrit do this and how it helps can be found here: Gerrit Code Review - A Quick Introduction.

Example how this interface looks like:

Code Review: https://review.openstack.org

When you select a link you dig into more details: (example) https://review.openstack.org/#/c/23878/


In this screen we can find:

  • linked Bug id if exists (https://code.launchpad.net/bugs/1131759) 
  • linked Blueprints if exists
  • reviewer list
  • one or more patches with proposed code changes
  • comments and suggestions before the code can be accepted in the mainstream repository
But the best part of Gerrit is its capability to pull the original file and create a diff to visual the changes. An example from the review #23878 is seen below.

https://review.openstack.org/#/c/23878/4/heat/tests/test_api_openstack_v1.py

Sunday, February 24, 2013

Openstack bugs

When working with upstream version of Openstack it helps to know what is happening in the source repository and especially what bugs are getting hot or popular. Below are couple of links for the Openstack project that help to stay on top with code code changes and bugs.

Where can I find all new and old bugs for Openstack

Even though the source code is maintained on https://github.com/openstack the bugs are tracked on
https://bugs.launchpad.net/openstack/

How to search through all open bugs

Navigate to https://bugs.launchpad.net/openstack/ and use the search feature.

How to subscribe to all new bugs in every Openstack project

If you wish to be notified about every bug that is opened for any of the Openstack project you have to:
Is it possible to get a notification when a new bug is open for 'nova' project

Yes, you can receive email for every new bug that somebody opens. To subscribe to a bug mail list please:

Saturday, August 11, 2012

cloudserver script doesn't work anylonger after installing novaclient

I have played with the FirsGen Rackspace cloud on my box. It was working fine. Some info about how to start with it can be found here rackspace-cloudservers .

At some point I have started using the Openstack nova tool to interact with the Rackspace NextGen cloud to run some tests. Once I was done I returned to the openstack tool and discoved that it stopped to work.

Problem

For every comamnd I run i got alwasys the same error message. An example output.
$ /usr/bin/cloudservers --username user --apikey 123  list
Traceback (most recent call last):
  File "/usr/bin/cloudservers", line 9, in module
    load_entry_point('python-cloudservers==1.0a5', 'console_scripts', 'cloudservers')()
  File "/usr/lib/pymodules/python2.7/cloudservers/shell.py", line 413, in main
    CloudserversShell().main(sys.argv[1:])
  File "/usr/lib/pymodules/python2.7/cloudservers/shell.py", line 127, in main
    args.func(args)
  File "/usr/lib/pymodules/python2.7/cloudservers/shell.py", line 279, in do_list
    print_list(self.cs.servers.list(), ['ID', 'Name', 'Status', 'Public IP', 'Private IP'])
  File "/usr/lib/pymodules/python2.7/cloudservers/shell.py", line 402, in print_list
    pt.printt(sortby=fields[0])
  File "/usr/local/lib/python2.7/dist-packages/prettytable.py", line 163, in __getattr__
    raise AttributeError(name)
AttributeError: printt
Solution

After debugin the prettytable.py code it turned out that there is not such a function like printt. Further research confirmed this [1]. The fix this I have changed the code of cloudserver module on my PC. The new code after changes is listed below.

# vim +399 /usr/lib/pymodules/python2.7/cloudservers/shell.py

def print_list(objs, fields):
    pt = prettytable.PrettyTable([f for f in fields], caching=False)
    pt.aligns = ['l' for f in fields]
    for o in objs:
        pt.add_row([getattr(o, f.lower().replace(' ', '_'), '') for f in fields])

    # pt.printt(sortby=fields[0])
    print pt.get_string(sortby=fields[0])
References
  1. http://code.google.com/p/prettytable/issues/detail?id=14&q=printt
  2. https://answers.launchpad.net/nova/+question/198709

  3. Other examples where the code was broken as well
  4. https://github.com/calebgroom/clb/issues/24
  5. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=673790