Installing OpenStack Grizzly with DevStack

Installing OpenStack Grizzly with DevStack

Unicorn Accountant

OpenStack Multi-Node DevStack Nova Network Tutorial

DevStack is a scripted OpenStack installer  maintained for developers to prototype and debug. It is also handy for operators to proof concepts and test new services and configurations. This is a good starter for folks new to OpenStack to help understand how to install and operate OpenStack. Some folks have been asking about multi-node DevStack deployment using nova network, so I thought this tutorial might help.

Another difference in this tutorial. is using nova-network instead of the Quantum network plugin. The Quantum plugin is very flexible and offers much richer networking feature, by implementing vSwitches, rather then Linux bridging. With flexibility, comes complexity.The reality if most people looking to do test deployments, proof of concepts or richer KVM/XEN hypervisor management do not really need the added complexity. Nova-network is slated for depreciation at some point, but I am not sure that is the best plan of action for typical until the installation becomes easier for folks in my humble opinion. Most enterprises don’t have “DevOps” programmers, and I think OpenStack brings some good value and expenditure savings to the enterprise. The complexity of the advanced networking may turn some folks off to the project in smaller organizations. Then again smaller organizations aren’t the ones running OpenStack and that may be attractive to vendors looking to find revenue from service offerings. Anywho, thats my two cents, let’s get on to the tutorial.

OpenStack Flat Network Manager Topology
OpenStack Flat Network Manager Topology

Figure 1. Flat Network Manager Topology

Configuring DevStack Installation

DevStack is not a persistent installation, meaning it will be erased when you run ./unstack.sh. This works fine on a single machine running in VMfusion since it supports nested virtualization.

Create a file called localrc for the controller and compute node and fill it in with the localrc configurations below. Change the IP addresses to match your addressing. Put the localrc file in the root of the DevStack folder.

After that is complete, if you do not have any errors you should have a functioning controller and working compute node(s). The compute nodes run the guest VMs. The compute node also does the NAT and security functionality. That can be configuring in the web GUI or from CLI. Your Floating Range will be your publicly reachable network. The fixed range is for the guest VM to talk to the compute node for resources. Since we are using one NIC in each machine, all of the addresses on the compute node are bound to the br100 bridge that is in turn bound to eth0 as secondary addresses. Everything is sharing the same broadcast domain on br100. It is fairly confusing for many without a strong networking background, albeit much simpler than Quantum services. The more you dig in and explore, the clearer it will inevitably become.

When installing note the path of the logs. This is helpful for reverse engineering the installation and troubleshooting services while stack.sh is running. Logs are not dumped to /var/log/nova* like a regular installation.

OpenStack Controller localrc

Place this in a file named localrc in the root of the devstack directory you clone. That installs into the /opt/ directory be default.

OpenStack Controller Node nova.conf

nova.conf is located in /etc/nova/nova.conf

OpenStack Compute localrc

Place this in a file named localrc in the root of the devstack directory you clone. That installs into the /opt/ directory be default.

OpenStack Compute Node nova.conf

nova.conf is located in /etc/nova/nova.conf

SSH Keys and Booting a Guest VM

OpenStack Glance Guest VM Images

DevStack will download CirrOS but in case it doesn’t or you want to install another image like the Ubuntu Cloud image you can do the follwing.

Download a pre-built OpenStack ready image:

Import the downloaded image into Glance

Verifying OpenStack Services

If you get errors stating you are not authorized or don’t have permsissions to use the client tools, verify your environmental variables are set by typing export. Manually add ENVs with the following.

OpenStack nova-manage

Figure 2. Viewing processes running in DevStack with ‘nova-manage service list’ ‘: -)’ means the process is functioning. ‘XXX’ means the process has died.

OpenStack Processes

 Figure 3. View running procs in Linux with ‘ps auxw’.

Nova-Network Configuration

DevStack will build your network as specified in the localrc. The manual operations of that are as follows:

Since we are only using one NIC in this interface, we will have both the Flat Interface (Public) and the Fixed Range (Privates for VMs) bound to br0100.

OpenStack Processes

Figure 4. View the Linux routing tables ‘route -n’.

To view the Linux bridge configuration use the brctl command. If for some reason DevStack doesn’t create the bridge br100, you can define it yourself with ‘brctl add-br br100’ and ‘brctl addif br100 eth0’. Remember, eth0 is nested in br100. That becomes your Layer3 interface.

OpenStack Brctl

Figure 5. Linux bridge output from ‘brctl’

10 Quick OpenStack Operational Notes
  1. At anytime you can check to make sure the services show smiley faces 🙂 and not XXX with ‘nova-manage service list’.
  2. To manually boot an image, running ‘glance index’ and copy the ID of the image that was loaded in the script.
  3. nova boot –flavor 1 –image <insert image ID here> –key_name ssh_key demohost
  4. Run ‘nova list’ to check the progress and look for any errors.
  5. After a couple of minutes the instance will be booted, make sure you can ping it.
  6. SSH to the ubuntu instance by running “ssh -i ~/ssh-key.pem ubuntu@<ip in nova list>” The key was created by the script.
  7. Check out the web page with http://localhost or http://<public address used>
  8. Under the “Admin” project in Dashboard (the webpage) go to security and access and allocate a floating address to your project.
  9. Once allocated to the project, allocate the address to your VM you started.
  10. Running ./unstack will unload DevStack. Running ./stack.sh will rebuild the stack.

Additional DevStack Resources

Thanks for stopping by.


About the Author

Brent SalisburyI have over 20 years of experience wearing various hats from, network engineer, architect, ops and software engineer. More at Brent's LinkedInView all posts by Brent Salisbury →

  1. OpenstackerOpenstacker04-09-2013


    Hi Brent,
    on which OS did you install Grizzly? Ubuntu 12.10 i guess? And do i have to set up a volume for Cinder? Please give a bit more information about the OS settings and requirements.

    Another Question is it possible to adapt your devstack setting to the multinode devstack script?
    I would be really interested in a Grizzly Multi Node Install Guide. Pretty sure that you are the only one who has the knowledge to do this cause there are less information right now.

    I am a big fan of your Blog.

    Michael

    • Jason ParragaJason Parraga06-05-2013


      Openstacker, I have set it up on both Ubuntu 12.04 and Ubuntu 13.04 without issue.

    • OpenStackOpenStack06-18-2013


      Openstacker,

      Did u find a guide how to adapt this devstack setting to the multinode devstack script? Did u find a Grizzly Multi Node Install Guide?

      Thanks!

      Javier

  2. shakeshake04-18-2013


    if I want to test linuxbridge, how to modify the localrc?

  3. PramodPramod06-10-2013


    Hi can you help me out?
    I get the errors as seen in the log file i’ll paste below.

    2013-06-10 16:34:22 stack.sh log /opt/stack/logs/stack.sh.log.2013-06-10-163422
    2013-06-10 16:34:22 + echo_summary ‘Installing package prerequisites’
    2013-06-10 16:34:22 + [[ -t 3 ]]
    2013-06-10 16:34:22 + [[ True != \T\r\u\e ]]
    2013-06-10 16:34:22 + echo -e Installing package prerequisites
    2013-06-10 16:34:22 + source /home/ubuntu/devstack/tools/install_prereqs.sh
    2013-06-10 16:34:22 ++ [[ -n ” ]]
    2013-06-10 16:34:22 ++ [[ -z /home/ubuntu/devstack ]]
    2013-06-10 16:34:22 ++ PREREQ_RERUN_MARKER=/home/ubuntu/devstack/.prereqs
    2013-06-10 16:34:22 ++ PREREQ_RERUN_HOURS=2
    2013-06-10 16:34:22 ++ PREREQ_RERUN_SECONDS=7200
    2013-06-10 16:34:22 Installing package prerequisites
    2013-06-10 16:34:22 +++ date +%s
    2013-06-10 16:34:22 ++ NOW=1370882062
    2013-06-10 16:34:22 +++ head -1 /home/ubuntu/devstack/.prereqs
    2013-06-10 16:34:22 +++ echo 0
    2013-06-10 16:34:22 ++ LAST_RUN=0
    2013-06-10 16:34:22 ++ DELTA=1370882062
    2013-06-10 16:34:22 ++ [[ 1370882062 -lt 7200 ]]
    2013-06-10 16:34:22 ++ export_proxy_variables
    2013-06-10 16:34:22 ++ [[ -n ” ]]
    2013-06-10 16:34:22 ++ [[ -n ” ]]
    2013-06-10 16:34:23 ++ [[ -n ” ]]
    2013-06-10 16:34:23 +++ get_packages q-meta,q-lbaas,n-obj,n-cpu,n-sch,n-cauth,horizon,mysql,rabbit,sysstat,cinder,c-api,c-vol,c-sch,n-cond,quantum,q-svc,q-agt,q-dhcp,q-l3,n-novnc,n-xvnc,q-lbaas,g-api,g-reg,key,n-api,n-crt
    2013-06-10 16:34:23 +++ local services=q-meta,q-lbaas,n-obj,n-cpu,n-sch,n-cauth,horizon,mysql,rabbit,sysstat,cinder,c-api,c-vol,c-sch,n-cond,quantum,q-svc,q-agt,q-dhcp,q-l3,n-novnc,n-xvnc,q-lbaas,g-api,g-reg,key,n-api,n-crt
    2013-06-10 16:34:23 ++++ _get_package_dir
    2013-06-10 16:34:23 ++++ local pkg_dir
    2013-06-10 16:34:23 ++++ is_ubuntu
    2013-06-10 16:34:23 ++++ [[ -z deb ]]
    2013-06-10 16:34:23 ++++ ‘[‘ deb = deb ‘]’
    2013-06-10 16:34:23 ++++ pkg_dir=/home/ubuntu/devstack/files/apts
    2013-06-10 16:34:23 ++++ echo /home/ubuntu/devstack/files/apts
    2013-06-10 16:34:23 +++ local package_dir=/home/ubuntu/devstack/files/apts
    2013-06-10 16:34:23 +++ local file_to_parse
    2013-06-10 16:34:23 +++ local service
    2013-06-10 16:34:23 +++ [[ -z /home/ubuntu/devstack/files/apts ]]
    2013-06-10 16:34:23 +++ [[ -z precise ]]
    2013-06-10 16:34:23 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:23 +++ [[ -e /home/ubuntu/devstack/files/apts/general ]]
    2013-06-10 16:34:23 +++ file_to_parse=’ general’
    2013-06-10 16:34:23 +++ [[ general == n-api ]]
    2013-06-10 16:34:23 +++ [[ general == c-* ]]
    2013-06-10 16:34:23 +++ [[ general == ceilometer-* ]]
    2013-06-10 16:34:23 +++ [[ general == s-* ]]
    2013-06-10 16:34:23 +++ [[ general == n-* ]]
    2013-06-10 16:34:23 +++ [[ general == g-* ]]
    2013-06-10 16:34:23 +++ [[ general == key* ]]
    2013-06-10 16:34:23 +++ [[ general == q-* ]]
    2013-06-10 16:34:23 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:23 +++ [[ -e /home/ubuntu/devstack/files/apts/q-meta ]]
    2013-06-10 16:34:23 +++ [[ q-meta == n-api ]]
    2013-06-10 16:34:23 +++ [[ q-meta == c-* ]]
    2013-06-10 16:34:23 +++ [[ q-meta == ceilometer-* ]]
    2013-06-10 16:34:23 +++ [[ q-meta == s-* ]]
    2013-06-10 16:34:23 +++ [[ q-meta == n-* ]]
    2013-06-10 16:34:23 +++ [[ q-meta == g-* ]]
    2013-06-10 16:34:23 +++ [[ q-meta == key* ]]
    2013-06-10 16:34:23 +++ [[ q-meta == q-* ]]
    2013-06-10 16:34:23 +++ [[ ! general =~ quantum ]]
    2013-06-10 16:34:23 +++ file_to_parse=’ general quantum’
    2013-06-10 16:34:23 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:23 +++ [[ -e /home/ubuntu/devstack/files/apts/q-lbaas ]]
    2013-06-10 16:34:23 +++ [[ q-lbaas == n-api ]]
    2013-06-10 16:34:23 +++ [[ q-lbaas == c-* ]]
    2013-06-10 16:34:23 +++ [[ q-lbaas == ceilometer-* ]]
    2013-06-10 16:34:23 +++ [[ q-lbaas == s-* ]]
    2013-06-10 16:34:23 +++ [[ q-lbaas == n-* ]]
    2013-06-10 16:34:23 +++ [[ q-lbaas == g-* ]]
    2013-06-10 16:34:23 +++ [[ q-lbaas == key* ]]
    2013-06-10 16:34:23 +++ [[ q-lbaas == q-* ]]
    2013-06-10 16:34:23 +++ [[ ! general quantum =~ quantum ]]
    2013-06-10 16:34:23 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:23 +++ [[ -e /home/ubuntu/devstack/files/apts/n-obj ]]
    2013-06-10 16:34:23 +++ [[ n-obj == n-api ]]
    2013-06-10 16:34:23 +++ [[ n-obj == c-* ]]
    2013-06-10 16:34:23 +++ [[ n-obj == ceilometer-* ]]
    2013-06-10 16:34:23 +++ [[ n-obj == s-* ]]
    2013-06-10 16:34:23 +++ [[ n-obj == n-* ]]
    2013-06-10 16:34:23 +++ [[ ! general quantum =~ nova ]]
    2013-06-10 16:34:23 +++ file_to_parse=’ general quantum nova’
    2013-06-10 16:34:23 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:23 +++ [[ -e /home/ubuntu/devstack/files/apts/n-cpu ]]
    2013-06-10 16:34:23 +++ file_to_parse=’ general quantum nova n-cpu’
    2013-06-10 16:34:23 +++ [[ n-cpu == n-api ]]
    2013-06-10 16:34:23 +++ [[ n-cpu == c-* ]]
    2013-06-10 16:34:23 +++ [[ n-cpu == ceilometer-* ]]
    2013-06-10 16:34:23 +++ [[ n-cpu == s-* ]]
    2013-06-10 16:34:23 +++ [[ n-cpu == n-* ]]
    2013-06-10 16:34:23 +++ [[ ! general quantum nova n-cpu =~ nova ]]
    2013-06-10 16:34:23 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:23 +++ [[ -e /home/ubuntu/devstack/files/apts/n-sch ]]
    2013-06-10 16:34:23 +++ [[ n-sch == n-api ]]
    2013-06-10 16:34:23 +++ [[ n-sch == c-* ]]
    2013-06-10 16:34:23 +++ [[ n-sch == ceilometer-* ]]
    2013-06-10 16:34:23 +++ [[ n-sch == s-* ]]
    2013-06-10 16:34:23 +++ [[ n-sch == n-* ]]
    2013-06-10 16:34:23 +++ [[ ! general quantum nova n-cpu =~ nova ]]
    2013-06-10 16:34:23 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:23 +++ [[ -e /home/ubuntu/devstack/files/apts/n-cauth ]]
    2013-06-10 16:34:23 +++ [[ n-cauth == n-api ]]
    2013-06-10 16:34:23 +++ [[ n-cauth == c-* ]]
    2013-06-10 16:34:23 +++ [[ n-cauth == ceilometer-* ]]
    2013-06-10 16:34:23 +++ [[ n-cauth == s-* ]]
    2013-06-10 16:34:23 +++ [[ n-cauth == n-* ]]
    2013-06-10 16:34:23 +++ [[ ! general quantum nova n-cpu =~ nova ]]
    2013-06-10 16:34:23 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:23 +++ [[ -e /home/ubuntu/devstack/files/apts/horizon ]]
    2013-06-10 16:34:23 +++ file_to_parse=’ general quantum nova n-cpu horizon’
    2013-06-10 16:34:23 +++ [[ horizon == n-api ]]
    2013-06-10 16:34:23 +++ [[ horizon == c-* ]]
    2013-06-10 16:34:23 +++ [[ horizon == ceilometer-* ]]
    2013-06-10 16:34:24 +++ [[ horizon == s-* ]]
    2013-06-10 16:34:24 +++ [[ horizon == n-* ]]
    2013-06-10 16:34:24 +++ [[ horizon == g-* ]]
    2013-06-10 16:34:24 +++ [[ horizon == key* ]]
    2013-06-10 16:34:24 +++ [[ horizon == q-* ]]
    2013-06-10 16:34:24 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:24 +++ [[ -e /home/ubuntu/devstack/files/apts/mysql ]]
    2013-06-10 16:34:24 +++ [[ mysql == n-api ]]
    2013-06-10 16:34:24 +++ [[ mysql == c-* ]]
    2013-06-10 16:34:24 +++ [[ mysql == ceilometer-* ]]
    2013-06-10 16:34:24 +++ [[ mysql == s-* ]]
    2013-06-10 16:34:24 +++ [[ mysql == n-* ]]
    2013-06-10 16:34:24 +++ [[ mysql == g-* ]]
    2013-06-10 16:34:24 +++ [[ mysql == key* ]]
    2013-06-10 16:34:24 +++ [[ mysql == q-* ]]
    2013-06-10 16:34:24 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:24 +++ [[ -e /home/ubuntu/devstack/files/apts/rabbit ]]
    2013-06-10 16:34:24 +++ [[ rabbit == n-api ]]
    2013-06-10 16:34:24 +++ [[ rabbit == c-* ]]
    2013-06-10 16:34:24 +++ [[ rabbit == ceilometer-* ]]
    2013-06-10 16:34:24 +++ [[ rabbit == s-* ]]
    2013-06-10 16:34:24 +++ [[ rabbit == n-* ]]
    2013-06-10 16:34:24 +++ [[ rabbit == g-* ]]
    2013-06-10 16:34:24 +++ [[ rabbit == key* ]]
    2013-06-10 16:34:24 +++ [[ rabbit == q-* ]]
    2013-06-10 16:34:24 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:24 +++ [[ -e /home/ubuntu/devstack/files/apts/sysstat ]]
    2013-06-10 16:34:24 +++ file_to_parse=’ general quantum nova n-cpu horizon sysstat’
    2013-06-10 16:34:24 +++ [[ sysstat == n-api ]]
    2013-06-10 16:34:24 +++ [[ sysstat == c-* ]]
    2013-06-10 16:34:24 +++ [[ sysstat == ceilometer-* ]]
    2013-06-10 16:34:24 +++ [[ sysstat == s-* ]]
    2013-06-10 16:34:24 +++ [[ sysstat == n-* ]]
    2013-06-10 16:34:24 +++ [[ sysstat == g-* ]]
    2013-06-10 16:34:24 +++ [[ sysstat == key* ]]
    2013-06-10 16:34:24 +++ [[ sysstat == q-* ]]
    2013-06-10 16:34:24 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:24 +++ [[ -e /home/ubuntu/devstack/files/apts/cinder ]]
    2013-06-10 16:34:24 +++ file_to_parse=’ general quantum nova n-cpu horizon sysstat cinder’
    2013-06-10 16:34:24 +++ [[ cinder == n-api ]]
    2013-06-10 16:34:24 +++ [[ cinder == c-* ]]
    2013-06-10 16:34:24 +++ [[ cinder == ceilometer-* ]]
    2013-06-10 16:34:24 +++ [[ cinder == s-* ]]
    2013-06-10 16:34:24 +++ [[ cinder == n-* ]]
    2013-06-10 16:34:24 +++ [[ cinder == g-* ]]
    2013-06-10 16:34:24 +++ [[ cinder == key* ]]
    2013-06-10 16:34:24 +++ [[ cinder == q-* ]]
    2013-06-10 16:34:24 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:24 +++ [[ -e /home/ubuntu/devstack/files/apts/c-api ]]
    2013-06-10 16:34:24 +++ [[ c-api == n-api ]]
    2013-06-10 16:34:24 +++ [[ c-api == c-* ]]
    2013-06-10 16:34:24 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder =~ cinder ]]
    2013-06-10 16:34:24 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:24 +++ [[ -e /home/ubuntu/devstack/files/apts/c-vol ]]
    2013-06-10 16:34:24 +++ [[ c-vol == n-api ]]
    2013-06-10 16:34:24 +++ [[ c-vol == c-* ]]
    2013-06-10 16:34:24 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder =~ cinder ]]
    2013-06-10 16:34:24 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:24 +++ [[ -e /home/ubuntu/devstack/files/apts/c-sch ]]
    2013-06-10 16:34:24 +++ [[ c-sch == n-api ]]
    2013-06-10 16:34:24 +++ [[ c-sch == c-* ]]
    2013-06-10 16:34:24 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder =~ cinder ]]
    2013-06-10 16:34:24 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:24 +++ [[ -e /home/ubuntu/devstack/files/apts/n-cond ]]
    2013-06-10 16:34:24 +++ [[ n-cond == n-api ]]
    2013-06-10 16:34:24 +++ [[ n-cond == c-* ]]
    2013-06-10 16:34:24 +++ [[ n-cond == ceilometer-* ]]
    2013-06-10 16:34:24 +++ [[ n-cond == s-* ]]
    2013-06-10 16:34:24 +++ [[ n-cond == n-* ]]
    2013-06-10 16:34:24 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder =~ nova ]]
    2013-06-10 16:34:24 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:24 +++ [[ -e /home/ubuntu/devstack/files/apts/quantum ]]
    2013-06-10 16:34:24 +++ file_to_parse=’ general quantum nova n-cpu horizon sysstat cinder quantum’
    2013-06-10 16:34:24 +++ [[ quantum == n-api ]]
    2013-06-10 16:34:24 +++ [[ quantum == c-* ]]
    2013-06-10 16:34:24 +++ [[ quantum == ceilometer-* ]]
    2013-06-10 16:34:24 +++ [[ quantum == s-* ]]
    2013-06-10 16:34:24 +++ [[ quantum == n-* ]]
    2013-06-10 16:34:24 +++ [[ quantum == g-* ]]
    2013-06-10 16:34:24 +++ [[ quantum == key* ]]
    2013-06-10 16:34:24 +++ [[ quantum == q-* ]]
    2013-06-10 16:34:24 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:24 +++ [[ -e /home/ubuntu/devstack/files/apts/q-svc ]]
    2013-06-10 16:34:24 +++ [[ q-svc == n-api ]]
    2013-06-10 16:34:24 +++ [[ q-svc == c-* ]]
    2013-06-10 16:34:24 +++ [[ q-svc == ceilometer-* ]]
    2013-06-10 16:34:24 +++ [[ q-svc == s-* ]]
    2013-06-10 16:34:24 +++ [[ q-svc == n-* ]]
    2013-06-10 16:34:24 +++ [[ q-svc == g-* ]]
    2013-06-10 16:34:24 +++ [[ q-svc == key* ]]
    2013-06-10 16:34:24 +++ [[ q-svc == q-* ]]
    2013-06-10 16:34:24 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder quantum =~ quantum ]]
    2013-06-10 16:34:25 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:25 +++ [[ -e /home/ubuntu/devstack/files/apts/q-agt ]]
    2013-06-10 16:34:25 +++ [[ q-agt == n-api ]]
    2013-06-10 16:34:25 +++ [[ q-agt == c-* ]]
    2013-06-10 16:34:25 +++ [[ q-agt == ceilometer-* ]]
    2013-06-10 16:34:25 +++ [[ q-agt == s-* ]]
    2013-06-10 16:34:25 +++ [[ q-agt == n-* ]]
    2013-06-10 16:34:25 +++ [[ q-agt == g-* ]]
    2013-06-10 16:34:25 +++ [[ q-agt == key* ]]
    2013-06-10 16:34:25 +++ [[ q-agt == q-* ]]
    2013-06-10 16:34:25 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder quantum =~ quantum ]]
    2013-06-10 16:34:25 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:25 +++ [[ -e /home/ubuntu/devstack/files/apts/q-dhcp ]]
    2013-06-10 16:34:25 +++ [[ q-dhcp == n-api ]]
    2013-06-10 16:34:25 +++ [[ q-dhcp == c-* ]]
    2013-06-10 16:34:25 +++ [[ q-dhcp == ceilometer-* ]]
    2013-06-10 16:34:25 +++ [[ q-dhcp == s-* ]]
    2013-06-10 16:34:25 +++ [[ q-dhcp == n-* ]]
    2013-06-10 16:34:25 +++ [[ q-dhcp == g-* ]]
    2013-06-10 16:34:25 +++ [[ q-dhcp == key* ]]
    2013-06-10 16:34:25 +++ [[ q-dhcp == q-* ]]
    2013-06-10 16:34:25 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder quantum =~ quantum ]]
    2013-06-10 16:34:25 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:25 +++ [[ -e /home/ubuntu/devstack/files/apts/q-l3 ]]
    2013-06-10 16:34:25 +++ [[ q-l3 == n-api ]]
    2013-06-10 16:34:25 +++ [[ q-l3 == c-* ]]
    2013-06-10 16:34:25 +++ [[ q-l3 == ceilometer-* ]]
    2013-06-10 16:34:25 +++ [[ q-l3 == s-* ]]
    2013-06-10 16:34:25 +++ [[ q-l3 == n-* ]]
    2013-06-10 16:34:25 +++ [[ q-l3 == g-* ]]
    2013-06-10 16:34:25 +++ [[ q-l3 == key* ]]
    2013-06-10 16:34:25 +++ [[ q-l3 == q-* ]]
    2013-06-10 16:34:25 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder quantum =~ quantum ]]
    2013-06-10 16:34:25 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:25 +++ [[ -e /home/ubuntu/devstack/files/apts/n-novnc ]]
    2013-06-10 16:34:25 +++ file_to_parse=’ general quantum nova n-cpu horizon sysstat cinder quantum n-novnc’
    2013-06-10 16:34:25 +++ [[ n-novnc == n-api ]]
    2013-06-10 16:34:25 +++ [[ n-novnc == c-* ]]
    2013-06-10 16:34:25 +++ [[ n-novnc == ceilometer-* ]]
    2013-06-10 16:34:25 +++ [[ n-novnc == s-* ]]
    2013-06-10 16:34:25 +++ [[ n-novnc == n-* ]]
    2013-06-10 16:34:25 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder quantum n-novnc =~ nova ]]
    2013-06-10 16:34:25 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:25 +++ [[ -e /home/ubuntu/devstack/files/apts/n-xvnc ]]
    2013-06-10 16:34:25 +++ [[ n-xvnc == n-api ]]
    2013-06-10 16:34:25 +++ [[ n-xvnc == c-* ]]
    2013-06-10 16:34:25 +++ [[ n-xvnc == ceilometer-* ]]
    2013-06-10 16:34:25 +++ [[ n-xvnc == s-* ]]
    2013-06-10 16:34:25 +++ [[ n-xvnc == n-* ]]
    2013-06-10 16:34:25 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder quantum n-novnc =~ nova ]]
    2013-06-10 16:34:25 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:25 +++ [[ -e /home/ubuntu/devstack/files/apts/q-lbaas ]]
    2013-06-10 16:34:25 +++ [[ q-lbaas == n-api ]]
    2013-06-10 16:34:25 +++ [[ q-lbaas == c-* ]]
    2013-06-10 16:34:25 +++ [[ q-lbaas == ceilometer-* ]]
    2013-06-10 16:34:25 +++ [[ q-lbaas == s-* ]]
    2013-06-10 16:34:25 +++ [[ q-lbaas == n-* ]]
    2013-06-10 16:34:25 +++ [[ q-lbaas == g-* ]]
    2013-06-10 16:34:25 +++ [[ q-lbaas == key* ]]
    2013-06-10 16:34:25 +++ [[ q-lbaas == q-* ]]
    2013-06-10 16:34:25 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder quantum n-novnc =~ quantum ]]
    2013-06-10 16:34:25 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:25 +++ [[ -e /home/ubuntu/devstack/files/apts/g-api ]]
    2013-06-10 16:34:25 +++ [[ g-api == n-api ]]
    2013-06-10 16:34:25 +++ [[ g-api == c-* ]]
    2013-06-10 16:34:25 +++ [[ g-api == ceilometer-* ]]
    2013-06-10 16:34:25 +++ [[ g-api == s-* ]]
    2013-06-10 16:34:25 +++ [[ g-api == n-* ]]
    2013-06-10 16:34:25 +++ [[ g-api == g-* ]]
    2013-06-10 16:34:25 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder quantum n-novnc =~ glance ]]
    2013-06-10 16:34:25 +++ file_to_parse=’ general quantum nova n-cpu horizon sysstat cinder quantum n-novnc glance’
    2013-06-10 16:34:25 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:25 +++ [[ -e /home/ubuntu/devstack/files/apts/g-reg ]]
    2013-06-10 16:34:25 +++ [[ g-reg == n-api ]]
    2013-06-10 16:34:25 +++ [[ g-reg == c-* ]]
    2013-06-10 16:34:25 +++ [[ g-reg == ceilometer-* ]]
    2013-06-10 16:34:25 +++ [[ g-reg == s-* ]]
    2013-06-10 16:34:25 +++ [[ g-reg == n-* ]]
    2013-06-10 16:34:25 +++ [[ g-reg == g-* ]]
    2013-06-10 16:34:25 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder quantum n-novnc glance =~ glance ]]
    2013-06-10 16:34:25 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:25 +++ [[ -e /home/ubuntu/devstack/files/apts/key ]]
    2013-06-10 16:34:25 +++ [[ key == n-api ]]
    2013-06-10 16:34:25 +++ [[ key == c-* ]]
    2013-06-10 16:34:25 +++ [[ key == ceilometer-* ]]
    2013-06-10 16:34:25 +++ [[ key == s-* ]]
    2013-06-10 16:34:25 +++ [[ key == n-* ]]
    2013-06-10 16:34:25 +++ [[ key == g-* ]]
    2013-06-10 16:34:25 +++ [[ key == key* ]]
    2013-06-10 16:34:25 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder quantum n-novnc glance =~ keystone ]]
    2013-06-10 16:34:25 +++ file_to_parse=’ general quantum nova n-cpu horizon sysstat cinder quantum n-novnc glance keystone’
    2013-06-10 16:34:25 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:25 +++ [[ -e /home/ubuntu/devstack/files/apts/n-api ]]
    2013-06-10 16:34:25 +++ file_to_parse=’ general quantum nova n-cpu horizon sysstat cinder quantum n-novnc glance keystone n-api’
    2013-06-10 16:34:25 +++ [[ n-api == n-api ]]
    2013-06-10 16:34:25 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder quantum n-novnc glance keystone n-api =~ nova ]]
    2013-06-10 16:34:26 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder quantum n-novnc glance keystone n-api =~ glance ]]
    2013-06-10 16:34:26 +++ for service in general ‘${services//,/ }’
    2013-06-10 16:34:26 +++ [[ -e /home/ubuntu/devstack/files/apts/n-crt ]]
    2013-06-10 16:34:26 +++ [[ n-crt == n-api ]]
    2013-06-10 16:34:26 +++ [[ n-crt == c-* ]]
    2013-06-10 16:34:26 +++ [[ n-crt == ceilometer-* ]]
    2013-06-10 16:34:26 +++ [[ n-crt == s-* ]]
    2013-06-10 16:34:26 +++ [[ n-crt == n-* ]]
    2013-06-10 16:34:26 +++ [[ ! general quantum nova n-cpu horizon sysstat cinder quantum n-novnc glance keystone n-api =~ nova ]]
    2013-06-10 16:34:26 +++ for file in ‘${file_to_parse}’
    2013-06-10 16:34:26 +++ local fname=/home/ubuntu/devstack/files/apts/general
    2013-06-10 16:34:26 +++ local OIFS line package distros distro
    2013-06-10 16:34:26 +++ [[ -e /home/ubuntu/devstack/files/apts/general ]]
    2013-06-10 16:34:26 +++ OIFS=’
    2013-06-10 16:34:26 ‘
    2013-06-10 16:34:26 +++ IFS=’
    2013-06-10 16:34:26 ‘
    2013-06-10 16:34:26 +++ for line in ‘$(<${fname})'
    2013-06-10 16:34:26 +++ [[ bridge-utils =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ bridge-utils =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo bridge-utils
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ pep8 =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ pep8 =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo pep8
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ pylint =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ pylint =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo pylint
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ python-pip =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ python-pip =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo python-pip
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ screen =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ screen =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo screen
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ unzip =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ unzip =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo unzip
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ wget =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ wget =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo wget
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ psmisc =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ psmisc =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo psmisc
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ git =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ git =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo git
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ lsof # useful when debugging =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ lsof # useful when debugging =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo 'lsof '
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ openssh-server =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ openssh-server =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo openssh-server
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ openssl =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ openssl =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo openssl
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ vim-nox =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ vim-nox =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo vim-nox
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ locate # useful when debugging =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ locate # useful when debugging =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo 'locate '
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ python-virtualenv =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ python-virtualenv =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo python-virtualenv
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ python-unittest2 =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ python-unittest2 =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo python-unittest2
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ iputils-ping =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ iputils-ping =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo iputils-ping
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ wget =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ wget =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo wget
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ curl =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ curl =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo curl
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ tcpdump =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ tcpdump =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo tcpdump
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ euca2ools # only for testing client =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ euca2ools # only for testing client =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo 'euca2ools '
    2013-06-10 16:34:26 +++ for line in '$(<${fname})'
    2013-06-10 16:34:26 +++ [[ tar =~ NOPRIME ]]
    2013-06-10 16:34:26 +++ [[ tar =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:26 +++ echo tar
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ python-cmd2 # dist:precise =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ python-cmd2 # dist:precise =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ package='python-cmd2 '
    2013-06-10 16:34:27 +++ distros=precise
    2013-06-10 16:34:27 +++ [[ precise =~ precise ]]
    2013-06-10 16:34:27 +++ echo 'python-cmd2 '
    2013-06-10 16:34:27 +++ continue
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ python-netaddr =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ python-netaddr =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo python-netaddr
    2013-06-10 16:34:27 +++ IFS='
    2013-06-10 16:34:27 '
    2013-06-10 16:34:27 +++ for file in '${file_to_parse}'
    2013-06-10 16:34:27 +++ local fname=/home/ubuntu/devstack/files/apts/quantum
    2013-06-10 16:34:27 +++ local OIFS line package distros distro
    2013-06-10 16:34:27 +++ [[ -e /home/ubuntu/devstack/files/apts/quantum ]]
    2013-06-10 16:34:27 +++ OIFS='
    2013-06-10 16:34:27 '
    2013-06-10 16:34:27 +++ IFS='
    2013-06-10 16:34:27 '
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ ebtables =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ ebtables =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo ebtables
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ iptables =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ iptables =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo iptables
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ iputils-ping =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ iputils-ping =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo iputils-ping
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ iputils-arping =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ iputils-arping =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo iputils-arping
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ mysql-server #NOPRIME =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ continue
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ sudo =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ sudo =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo sudo
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ python-boto =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ python-boto =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo python-boto
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ python-iso8601 =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ python-iso8601 =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo python-iso8601
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ python-paste =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ python-paste =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo python-paste
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ python-routes =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ python-routes =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo python-routes
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ python-suds =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ python-suds =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo python-suds
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ python-netaddr =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ python-netaddr =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo python-netaddr
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ python-pastedeploy =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ python-pastedeploy =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo python-pastedeploy
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ python-greenlet =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ python-greenlet =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo python-greenlet
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ python-kombu =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ python-kombu =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo python-kombu
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ python-eventlet =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ python-eventlet =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo python-eventlet
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ python-sqlalchemy =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ python-sqlalchemy =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo python-sqlalchemy
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ python-mysqldb =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ python-mysqldb =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo python-mysqldb
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ python-pyudev =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ python-pyudev =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:27 +++ echo python-pyudev
    2013-06-10 16:34:27 +++ for line in '$(<${fname})'
    2013-06-10 16:34:27 +++ [[ python-qpid # dist:precise =~ NOPRIME ]]
    2013-06-10 16:34:27 +++ [[ python-qpid # dist:precise =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ package='python-qpid '
    2013-06-10 16:34:28 +++ distros=precise
    2013-06-10 16:34:28 +++ [[ precise =~ precise ]]
    2013-06-10 16:34:28 +++ echo 'python-qpid '
    2013-06-10 16:34:28 +++ continue
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ dnsmasq-base =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ dnsmasq-base =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo dnsmasq-base
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ dnsmasq-utils # for dhcp_release only available in dist:oneiric,precise,quantal =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ dnsmasq-utils # for dhcp_release only available in dist:oneiric,precise,quantal =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ package='dnsmasq-utils '
    2013-06-10 16:34:28 +++ distros=oneiric,precise,quantal
    2013-06-10 16:34:28 +++ [[ oneiric,precise,quantal =~ precise ]]
    2013-06-10 16:34:28 +++ echo 'dnsmasq-utils '
    2013-06-10 16:34:28 +++ continue
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ rabbitmq-server # NOPRIME =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ continue
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ qpid # NOPRIME =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ continue
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ sqlite3 =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ sqlite3 =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo sqlite3
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ vlan =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ vlan =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo vlan
    2013-06-10 16:34:28 +++ IFS='
    2013-06-10 16:34:28 '
    2013-06-10 16:34:28 +++ for file in '${file_to_parse}'
    2013-06-10 16:34:28 +++ local fname=/home/ubuntu/devstack/files/apts/nova
    2013-06-10 16:34:28 +++ local OIFS line package distros distro
    2013-06-10 16:34:28 +++ [[ -e /home/ubuntu/devstack/files/apts/nova ]]
    2013-06-10 16:34:28 +++ OIFS='
    2013-06-10 16:34:28 '
    2013-06-10 16:34:28 +++ IFS='
    2013-06-10 16:34:28 '
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ dnsmasq-base =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ dnsmasq-base =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo dnsmasq-base
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ dnsmasq-utils # for dhcp_release =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ dnsmasq-utils # for dhcp_release =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo 'dnsmasq-utils '
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ kpartx =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ kpartx =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo kpartx
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ parted =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ parted =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo parted
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ iputils-arping =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ iputils-arping =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo iputils-arping
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ mysql-server # NOPRIME =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ continue
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ python-mysqldb =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ python-mysqldb =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo python-mysqldb
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ python-xattr # needed for glance which is needed for nova — this shouldn't be here =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ python-xattr # needed for glance which is needed for nova — this shouldn't be here =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo 'python-xattr '
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ python-lxml # needed for glance which is needed for nova — this shouldn't be here =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ python-lxml # needed for glance which is needed for nova — this shouldn't be here =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo 'python-lxml '
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ gawk =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ gawk =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo gawk
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ iptables =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ iptables =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo iptables
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ ebtables =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ ebtables =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo ebtables
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ sqlite3 =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ sqlite3 =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo sqlite3
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ sudo =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ sudo =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo sudo
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:28 +++ [[ kvm =~ NOPRIME ]]
    2013-06-10 16:34:28 +++ [[ kvm =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:28 +++ echo kvm
    2013-06-10 16:34:28 +++ for line in '$(<${fname})'
    2013-06-10 16:34:29 +++ [[ qemu # dist:wheezy,jessie =~ NOPRIME ]]
    2013-06-10 16:34:29 +++ [[ qemu # dist:wheezy,jessie =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:29 +++ package='qemu '
    2013-06-10 16:34:29 +++ distros=wheezy,jessie
    2013-06-10 16:34:29 +++ [[ wheezy,jessie =~ precise ]]
    2013-06-10 16:34:29 +++ continue
    2013-06-10 16:34:29 +++ for line in '$(<${fname})'
    2013-06-10 16:34:29 +++ [[ libvirt-bin # NOPRIME =~ NOPRIME ]]
    2013-06-10 16:34:29 +++ continue
    2013-06-10 16:34:29 +++ for line in '$(<${fname})'
    2013-06-10 16:34:29 +++ [[ libjs-jquery-tablesorter # Needed for coverage html reports =~ NOPRIME ]]
    2013-06-10 16:34:29 +++ [[ libjs-jquery-tablesorter # Needed for coverage html reports =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:29 +++ echo 'libjs-jquery-tablesorter '
    2013-06-10 16:34:29 +++ for line in '$(<${fname})'
    2013-06-10 16:34:29 +++ [[ vlan =~ NOPRIME ]]
    2013-06-10 16:34:29 +++ [[ vlan =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:29 +++ echo vlan
    2013-06-10 16:34:29 +++ for line in '$(<${fname})'
    2013-06-10 16:34:29 +++ [[ curl =~ NOPRIME ]]
    2013-06-10 16:34:29 +++ [[ curl =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:29 +++ echo curl
    2013-06-10 16:34:29 +++ for line in '$(<${fname})'
    2013-06-10 16:34:29 +++ [[ genisoimage # required for config_drive =~ NOPRIME ]]
    2013-06-10 16:34:29 +++ [[ genisoimage # required for config_drive =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:29 +++ echo 'genisoimage '
    2013-06-10 16:34:29 +++ for line in '$(<${fname})'
    2013-06-10 16:34:29 +++ [[ rabbitmq-server # NOPRIME =~ NOPRIME ]]
    2013-06-10 16:34:29 +++ continue
    2013-06-10 16:34:29 +++ for line in '$(<${fname})'
    2013-06-10 16:34:29 +++ [[ qpidd # dist:precise NOPRIME =~ NOPRIME ]]
    2013-06-10 16:34:29 +++ continue
    2013-06-10 16:34:29 +++ for line in '$(<${fname})'
    2013-06-10 16:34:29 +++ [[ socat # used by ajaxterm =~ NOPRIME ]]
    2013-06-10 16:34:29 +++ [[ socat # used by ajaxterm =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:29 +++ echo 'socat '
    2013-06-10 16:34:29 +++ for line in '$(<${fname})'
    2013-06-10 16:34:30 +++ [[ python-mox =~ NOPRIME ]]
    2013-06-10 16:34:30 +++ [[ python-mox =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:30 +++ echo python-mox
    2013-06-10 16:34:30 +++ for line in '$(<${fname})'
    2013-06-10 16:34:30 +++ [[ python-paste =~ NOPRIME ]]
    2013-06-10 16:34:30 +++ [[ python-paste =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:30 +++ echo python-paste
    2013-06-10 16:34:30 +++ for line in '$(<${fname})'
    2013-06-10 16:34:30 +++ [[ python-migrate =~ NOPRIME ]]
    2013-06-10 16:34:30 +++ [[ python-migrate =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:30 +++ echo python-migrate
    2013-06-10 16:34:30 +++ for line in '$(<${fname})'
    2013-06-10 16:34:30 +++ [[ python-gflags =~ NOPRIME ]]
    2013-06-10 16:34:30 +++ [[ python-gflags =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:30 +++ echo python-gflags
    2013-06-10 16:34:30 +++ for line in '$(<${fname})'
    2013-06-10 16:34:30 +++ [[ python-greenlet =~ NOPRIME ]]
    2013-06-10 16:34:30 +++ [[ python-greenlet =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:30 +++ echo python-greenlet
    2013-06-10 16:34:30 +++ for line in '$(<${fname})'
    2013-06-10 16:34:30 +++ [[ python-libvirt =~ NOPRIME ]]
    2013-06-10 16:34:30 +++ [[ python-libvirt =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:30 +++ echo python-libvirt
    2013-06-10 16:34:30 +++ for line in '$(<${fname})'
    2013-06-10 16:34:30 +++ [[ python-libxml2 =~ NOPRIME ]]
    2013-06-10 16:34:30 +++ [[ python-libxml2 =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:30 +++ echo python-libxml2
    2013-06-10 16:34:30 +++ for line in '$(<${fname})'
    2013-06-10 16:34:30 +++ [[ python-routes =~ NOPRIME ]]
    2013-06-10 16:34:30 +++ [[ python-routes =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:30 +++ echo python-routes
    2013-06-10 16:34:30 +++ for line in '$(<${fname})'
    2013-06-10 16:34:30 +++ [[ python-netaddr =~ NOPRIME ]]
    2013-06-10 16:34:30 +++ [[ python-netaddr =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:30 +++ echo python-netaddr
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ python-numpy # used by websockify for spice console =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ python-numpy # used by websockify for spice console =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo 'python-numpy '
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ python-pastedeploy =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ python-pastedeploy =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo python-pastedeploy
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ python-eventlet =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ python-eventlet =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo python-eventlet
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ python-cheetah =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ python-cheetah =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo python-cheetah
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ python-carrot =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ python-carrot =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo python-carrot
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ python-tempita =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ python-tempita =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo python-tempita
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ python-sqlalchemy =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ python-sqlalchemy =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo python-sqlalchemy
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ python-suds =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ python-suds =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo python-suds
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ python-lockfile =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ python-lockfile =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo python-lockfile
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ python-m2crypto =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ python-m2crypto =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo python-m2crypto
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ python-boto =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ python-boto =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo python-boto
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ python-kombu =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ python-kombu =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo python-kombu
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ python-feedparser =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ python-feedparser =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo python-feedparser
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ python-iso8601 =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ python-iso8601 =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo python-iso8601
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ python-qpid # dist:precise =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ python-qpid # dist:precise =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ package='python-qpid '
    2013-06-10 16:34:31 +++ distros=precise
    2013-06-10 16:34:31 +++ [[ precise =~ precise ]]
    2013-06-10 16:34:31 +++ echo 'python-qpid '
    2013-06-10 16:34:31 +++ continue
    2013-06-10 16:34:31 +++ IFS='
    2013-06-10 16:34:31 '
    2013-06-10 16:34:31 +++ for file in '${file_to_parse}'
    2013-06-10 16:34:31 +++ local fname=/home/ubuntu/devstack/files/apts/n-cpu
    2013-06-10 16:34:31 +++ local OIFS line package distros distro
    2013-06-10 16:34:31 +++ [[ -e /home/ubuntu/devstack/files/apts/n-cpu ]]
    2013-06-10 16:34:31 +++ OIFS='
    2013-06-10 16:34:31 '
    2013-06-10 16:34:31 +++ IFS='
    2013-06-10 16:34:31 '
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ # Stuff for diablo volumes =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ # Stuff for diablo volumes =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ nbd-client =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ nbd-client =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo nbd-client
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ lvm2 =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ lvm2 =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo lvm2
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ open-iscsi =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ open-iscsi =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo open-iscsi
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ open-iscsi-utils # Deprecated since quantal dist:lucid,oneiric,precise =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ open-iscsi-utils # Deprecated since quantal dist:lucid,oneiric,precise =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ package='open-iscsi-utils '
    2013-06-10 16:34:31 +++ distros=lucid,oneiric,precise
    2013-06-10 16:34:31 +++ [[ lucid,oneiric,precise =~ precise ]]
    2013-06-10 16:34:31 +++ echo 'open-iscsi-utils '
    2013-06-10 16:34:31 +++ continue
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:31 +++ [[ genisoimage =~ NOPRIME ]]
    2013-06-10 16:34:31 +++ [[ genisoimage =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:31 +++ echo genisoimage
    2013-06-10 16:34:31 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ sysfsutils =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ sysfsutils =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo sysfsutils
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ sg3-utils =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ sg3-utils =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo sg3-utils
    2013-06-10 16:34:32 +++ IFS='
    2013-06-10 16:34:32 '
    2013-06-10 16:34:32 +++ for file in '${file_to_parse}'
    2013-06-10 16:34:32 +++ local fname=/home/ubuntu/devstack/files/apts/horizon
    2013-06-10 16:34:32 +++ local OIFS line package distros distro
    2013-06-10 16:34:32 +++ [[ -e /home/ubuntu/devstack/files/apts/horizon ]]
    2013-06-10 16:34:32 +++ OIFS='
    2013-06-10 16:34:32 '
    2013-06-10 16:34:32 +++ IFS='
    2013-06-10 16:34:32 '
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ apache2 # NOPRIME =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ continue
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ libapache2-mod-wsgi # NOPRIME =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ continue
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-beautifulsoup =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-beautifulsoup =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo python-beautifulsoup
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-dateutil =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-dateutil =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo python-dateutil
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-paste =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-paste =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo python-paste
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-pastedeploy =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-pastedeploy =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo python-pastedeploy
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-anyjson =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-anyjson =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo python-anyjson
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-routes =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-routes =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo python-routes
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-xattr =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-xattr =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo python-xattr
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-sqlalchemy =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-sqlalchemy =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo python-sqlalchemy
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-webob =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-webob =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo python-webob
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-kombu =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-kombu =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo python-kombu
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ pylint =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ pylint =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo pylint
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ pep8 =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ pep8 =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo pep8
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-eventlet =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-eventlet =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo python-eventlet
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-nose =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-nose =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo python-nose
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-sphinx =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-sphinx =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo python-sphinx
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-mox =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-mox =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo python-mox
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-kombu =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-kombu =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo python-kombu
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-coverage =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-coverage =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo python-coverage
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-cherrypy3 # why? =~ NOPRIME ]]
    2013-06-10 16:34:32 +++ [[ python-cherrypy3 # why? =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:32 +++ echo 'python-cherrypy3 '
    2013-06-10 16:34:32 +++ for line in '$(<${fname})'
    2013-06-10 16:34:32 +++ [[ python-migrate =~ NOPRIME ]]
    2013-06-10 16:34:33 +++ [[ python-migrate =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:33 +++ echo python-migrate
    2013-06-10 16:34:33 +++ for line in '$(<${fname})'
    2013-06-10 16:34:33 +++ [[ nodejs =~ NOPRIME ]]
    2013-06-10 16:34:33 +++ [[ nodejs =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:33 +++ echo nodejs
    2013-06-10 16:34:33 +++ for line in '$(<${fname})'
    2013-06-10 16:34:33 +++ [[ nodejs-legacy # dist:quantal =~ NOPRIME ]]
    2013-06-10 16:34:33 +++ [[ nodejs-legacy # dist:quantal =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:33 +++ package='nodejs-legacy '
    2013-06-10 16:34:33 +++ distros=quantal
    2013-06-10 16:34:33 +++ [[ quantal =~ precise ]]
    2013-06-10 16:34:33 +++ continue
    2013-06-10 16:34:33 +++ for line in '$(<${fname})'
    2013-06-10 16:34:33 +++ [[ python-netaddr =~ NOPRIME ]]
    2013-06-10 16:34:33 +++ [[ python-netaddr =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:33 +++ echo python-netaddr
    2013-06-10 16:34:33 +++ IFS='
    2013-06-10 16:34:33 '
    2013-06-10 16:34:33 +++ for file in '${file_to_parse}'
    2013-06-10 16:34:33 +++ local fname=/home/ubuntu/devstack/files/apts/sysstat
    2013-06-10 16:34:33 +++ local OIFS line package distros distro
    2013-06-10 16:34:33 +++ [[ -e /home/ubuntu/devstack/files/apts/sysstat ]]
    2013-06-10 16:34:33 +++ OIFS='
    2013-06-10 16:34:33 '
    2013-06-10 16:34:33 +++ IFS='
    2013-06-10 16:34:33 '
    2013-06-10 16:34:33 +++ for line in '$(<${fname})'
    2013-06-10 16:34:33 +++ [[ sysstat =~ NOPRIME ]]
    2013-06-10 16:34:33 +++ [[ sysstat =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:33 +++ echo sysstat
    2013-06-10 16:34:33 +++ IFS='
    2013-06-10 16:34:33 '
    2013-06-10 16:34:33 +++ for file in '${file_to_parse}'
    2013-06-10 16:34:33 +++ local fname=/home/ubuntu/devstack/files/apts/cinder
    2013-06-10 16:34:33 +++ local OIFS line package distros distro
    2013-06-10 16:34:33 +++ [[ -e /home/ubuntu/devstack/files/apts/cinder ]]
    2013-06-10 16:34:33 +++ OIFS='
    2013-06-10 16:34:33 '
    2013-06-10 16:34:33 +++ IFS='
    2013-06-10 16:34:33 '
    2013-06-10 16:34:33 +++ for line in '$(<${fname})'
    2013-06-10 16:34:33 +++ [[ tgt =~ NOPRIME ]]
    2013-06-10 16:34:33 +++ [[ tgt =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:33 +++ echo tgt
    2013-06-10 16:34:33 +++ for line in '$(<${fname})'
    2013-06-10 16:34:33 +++ [[ lvm2 =~ NOPRIME ]]
    2013-06-10 16:34:33 +++ [[ lvm2 =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:33 +++ echo lvm2
    2013-06-10 16:34:33 +++ IFS='
    2013-06-10 16:34:33 '
    2013-06-10 16:34:34 +++ for file in '${file_to_parse}'
    2013-06-10 16:34:34 +++ local fname=/home/ubuntu/devstack/files/apts/quantum
    2013-06-10 16:34:34 +++ local OIFS line package distros distro
    2013-06-10 16:34:34 +++ [[ -e /home/ubuntu/devstack/files/apts/quantum ]]
    2013-06-10 16:34:34 +++ OIFS='
    2013-06-10 16:34:34 '
    2013-06-10 16:34:34 +++ IFS='
    2013-06-10 16:34:34 '
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ ebtables =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ ebtables =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo ebtables
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ iptables =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ iptables =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo iptables
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ iputils-ping =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ iputils-ping =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo iputils-ping
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ iputils-arping =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ iputils-arping =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo iputils-arping
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ mysql-server #NOPRIME =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ continue
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ sudo =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ sudo =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo sudo
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ python-boto =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ python-boto =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo python-boto
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ python-iso8601 =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ python-iso8601 =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo python-iso8601
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ python-paste =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ python-paste =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo python-paste
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ python-routes =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ python-routes =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo python-routes
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ python-suds =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ python-suds =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo python-suds
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ python-netaddr =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ python-netaddr =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo python-netaddr
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ python-pastedeploy =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ python-pastedeploy =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo python-pastedeploy
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ python-greenlet =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ python-greenlet =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo python-greenlet
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ python-kombu =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ python-kombu =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo python-kombu
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ python-eventlet =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ python-eventlet =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo python-eventlet
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ python-sqlalchemy =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ python-sqlalchemy =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo python-sqlalchemy
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ python-mysqldb =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ python-mysqldb =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo python-mysqldb
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ python-pyudev =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ python-pyudev =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo python-pyudev
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ python-qpid # dist:precise =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ python-qpid # dist:precise =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ package='python-qpid '
    2013-06-10 16:34:34 +++ distros=precise
    2013-06-10 16:34:34 +++ [[ precise =~ precise ]]
    2013-06-10 16:34:34 +++ echo 'python-qpid '
    2013-06-10 16:34:34 +++ continue
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ dnsmasq-base =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ dnsmasq-base =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ echo dnsmasq-base
    2013-06-10 16:34:34 +++ for line in '$(<${fname})'
    2013-06-10 16:34:34 +++ [[ dnsmasq-utils # for dhcp_release only available in dist:oneiric,precise,quantal =~ NOPRIME ]]
    2013-06-10 16:34:34 +++ [[ dnsmasq-utils # for dhcp_release only available in dist:oneiric,precise,quantal =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:34 +++ package='dnsmasq-utils '
    2013-06-10 16:34:34 +++ distros=oneiric,precise,quantal
    2013-06-10 16:34:35 +++ [[ oneiric,precise,quantal =~ precise ]]
    2013-06-10 16:34:35 +++ echo 'dnsmasq-utils '
    2013-06-10 16:34:35 +++ continue
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ rabbitmq-server # NOPRIME =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ continue
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ qpid # NOPRIME =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ continue
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ sqlite3 =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ sqlite3 =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35 +++ echo sqlite3
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ vlan =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ vlan =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35 +++ echo vlan
    2013-06-10 16:34:35 +++ IFS='
    2013-06-10 16:34:35 '
    2013-06-10 16:34:35 +++ for file in '${file_to_parse}'
    2013-06-10 16:34:35 +++ local fname=/home/ubuntu/devstack/files/apts/n-novnc
    2013-06-10 16:34:35 +++ local OIFS line package distros distro
    2013-06-10 16:34:35 +++ [[ -e /home/ubuntu/devstack/files/apts/n-novnc ]]
    2013-06-10 16:34:35 +++ OIFS='
    2013-06-10 16:34:35 '
    2013-06-10 16:34:35 +++ IFS='
    2013-06-10 16:34:35 '
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ python-numpy =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ python-numpy =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35 +++ echo python-numpy
    2013-06-10 16:34:35 +++ IFS='
    2013-06-10 16:34:35 '
    2013-06-10 16:34:35 +++ for file in '${file_to_parse}'
    2013-06-10 16:34:35 +++ local fname=/home/ubuntu/devstack/files/apts/glance
    2013-06-10 16:34:35 +++ local OIFS line package distros distro
    2013-06-10 16:34:35 +++ [[ -e /home/ubuntu/devstack/files/apts/glance ]]
    2013-06-10 16:34:35 +++ OIFS='
    2013-06-10 16:34:35 '
    2013-06-10 16:34:35 +++ IFS='
    2013-06-10 16:34:35 '
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ gcc =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ gcc =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35 +++ echo gcc
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ libxml2-dev =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ libxml2-dev =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35 +++ echo libxml2-dev
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ python-dev =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ python-dev =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35 +++ echo python-dev
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ python-eventlet =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ python-eventlet =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35 +++ echo python-eventlet
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ python-routes =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ python-routes =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35 +++ echo python-routes
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ python-greenlet =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ python-greenlet =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35 +++ echo python-greenlet
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ python-argparse # dist:oneiric =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ python-argparse # dist:oneiric =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35 +++ package='python-argparse '
    2013-06-10 16:34:35 +++ distros=oneiric
    2013-06-10 16:34:35 +++ [[ oneiric =~ precise ]]
    2013-06-10 16:34:35 +++ continue
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ python-sqlalchemy =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ python-sqlalchemy =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35 +++ echo python-sqlalchemy
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ python-wsgiref =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ python-wsgiref =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35 +++ echo python-wsgiref
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ python-pastedeploy =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ python-pastedeploy =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35 +++ echo python-pastedeploy
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ python-xattr =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ python-xattr =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35 +++ echo python-xattr
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ python-iso8601 =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ python-iso8601 =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35 +++ echo python-iso8601
    2013-06-10 16:34:35 +++ IFS='
    2013-06-10 16:34:35 '
    2013-06-10 16:34:35 +++ for file in '${file_to_parse}'
    2013-06-10 16:34:35 +++ local fname=/home/ubuntu/devstack/files/apts/keystone
    2013-06-10 16:34:35 +++ local OIFS line package distros distro
    2013-06-10 16:34:35 +++ [[ -e /home/ubuntu/devstack/files/apts/keystone ]]
    2013-06-10 16:34:35 +++ OIFS='
    2013-06-10 16:34:35 '
    2013-06-10 16:34:35 +++ IFS='
    2013-06-10 16:34:35 '
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ python-setuptools =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ python-setuptools =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35 +++ echo python-setuptools
    2013-06-10 16:34:35 +++ for line in '$(<${fname})'
    2013-06-10 16:34:35 +++ [[ python-dev =~ NOPRIME ]]
    2013-06-10 16:34:35 +++ [[ python-dev =~ (.*)#.*dist:([^ ]*) ]]
    2013-06-10 16:34:35

  4. James RenJames Ren06-28-2013


    Hi Brent, thanks for the great article. Just a little question on your floating IP range, should it be 172.24.4.224/27?

    Cheers,
    James

  5. linuxmonklinuxmonk07-19-2013


    Brent, awesome blog post. I tried setting up stable/grizzly via devstack. It fails to start keystone. There seems to be a bug in keystone. I got around this by making a dirty fix in my devstack/lib/keystone script. Then the stack executed beyond the first failure (https://bugs.launchpad.net/keystone/+bug/1201861). But then when the keystone client tries to create role etc. is it normal to see 503/Network error and the script still continuing ?

    • linuxmonklinuxmonk07-23-2013


      Requests from keystone client were directed to my proxy server while it shouldn’t have gone that route. Had to set no_proxy environment variable and then everything works !!

    • hupiperhupiper09-16-2013


      I’m still getting the timeout after explicitly setting the ports. If anyone can shed some light on why that might still be happening, I would appreciate it!

  6. niksniks08-06-2013


    can we add another one server/hypervisor in existing openstack dashbord????if yes plz suggest method for it

  7. LinLin09-12-2013


    The quickest way to get up and running on one node with OpenStack is to use NanoStack on Amazon EC2. It’s a PAID AMI but it’s pretty cheap. There is no installation and configuration. Just start an instance of NanoStack and you are in business. It’s a great OpenStack sandbox.
    (https://aws.amazon.com/marketplace/pp/B00F2NNR3C))

  8. Brent SalisburyBrent Salisbury09-12-2013


    Thanks Lin!

  9. Brent SalisburyBrent Salisbury09-12-2013


    Hey all, btw, if you would post your working “localrc” files for different architectures and #nodes that would be cool for people. I would love to see them too if you had a moment.

  10. Morgan YangMorgan Yang10-01-2013


    Hi Brent:

    I have been following your blogs and posts for openvswitch, openflow, and KVM and I want to thank you for all your good work. I’m running “stack.sh” script based installed right now on an ubuntu 12.04 server. I get a permission error with “2013-10-01 10:36:23 /home/myang/devstack/tools/install_prereqs.sh: line 74: /home/myang/devstack/.prereqs: Permission denied”. Exporting the environmental variables does not seem to resolve it. Do you have any recommendations to resolve this?

    • Morgan YangMorgan Yang10-01-2013


      Got it, i used “sudo git clone”, thats why

  11. GokulGokul10-13-2013


    Hi Scott .. great blog. A request for more clarifications in your posts. It is not very apparent on where you are running these commands. Eg., The “Nova Network Configuration” … are you running these commands on the controller node or the compute node or both? Do I need to do a git clone for installing openstack on both controller node AND compute node? Or do I just install it on controller node and then scp the devstack directory to the compute node (and then run stack.sh there as well) ? I have been trying to go through several of your blogs and I always seem to run into these missing pieces of information which confuse me (which probably are very apparent to you and many of the more experienced people here). So just a gentle request here for explicitly listing the steps required.


  12. What i do not realize is if truth be told how you’re not really a lot more neatly-appreciated than you may be
    now. You are so intelligent. You understand therefore significantly in relation to this topic, made me in my view imagine it from so
    many varied angles. Its like men and women don’t seem to be
    fascinated unless it is one thing to do with Woman gaga!
    Your own stuffs outstanding. Always care for it
    up!

  13. Www.Youtube.ComWww.Youtube.Com04-22-2014


    Hello! Someone in my Facebook group shared this site with us so
    I came to look it over. I’m definitely enjoying
    the information. I’m book-marking and will be tweeting this to
    my followers! Fantastic blog and wonderful design.


  14. When you entertain, keep everything in your own style.

    It has good inhibitory effect on the variant streptococcus which can result in dental
    caries. Mothers just gave birth to the baby, very weak, need to her husband’s care and care, hope the new dads are more patience to his wife and children, carefully
    take care of them, and don’t give this very happy time leave any regret.
    You will take Mo Nai for a beautiful picture, if there is
    no one to tell you. All of these questions around
    one focus, that is the safety problem. Most people not only have no
    life subsidies, also have to pay higher costs, have to ask parents for support, or they work solve learning and
    life difficulties through a part-time job.
    This kind of site can truly offer the right services, right Dofus kamas in right
    way to the people who is in need. The latest data of the American
    market research center Kantar Media, also
    shows P&G is at the eighth year supreme advertiser. Its
    yellow prism packing makes it impressive in people’s minds.
    As we all know, “Pirates of the Caribbean”, with its simple and
    honest and well-behaved they reveal the unique shape, the
    color of the horse across the great, elegant fashion and luxury features such as
    the system does not delete files Niece loved by so many players, being the case,
    wow is MM favorite send these “Pirates of the Caribbean” course designed
    to pull air choice for you because of who. The stove is still hot to
    cook food, and people could take out the food
    after one minute. ‘I have never cared about the ritual supplies store
    downstairs of the house before, but now I have been the regular customer in order to buy balloons.
    So, developing a good life habit, living far away from factors which will result cancer, eating more anti-cancer foods and doing
    more exercise are good ways to prevent yourself from cancer.

    The harsh reality of business is that everything is not popular in
    its list of prescriptions, especially when they can block
    the samples under examination. Do not underestimate this rose,
    but you it’s “Pirates of the Caribbean” love the success of <. "Pirates of the Caribbean" Bo Thomas ancient church priest every day waiting for one to one on a nice ring, where he married and, of course, you are no exception Oh. Exercise makes the heart and lung function been strengthened. Vitamin C can synthesize carnitine to promote fat metabolism and accelerate fat decomposition and combustion. A variety of paints and adhesives brushed on the surface of furniture contain large numbers of volatile organic compounds which will pollute indoor air and harm the respiratory system and nervous system. Microwave oven should be placed in ventilated place, where there are no magnetic materials so as not to interfere with the magnetic field of oven and decrease the work efficiency. The green mountains, the white walls and red roofs of farmhouses, the colorful flowers and full of green wood make up amazing scenery. The study found that running shoes increased knee and hip torque when compared to running with no shoes at all. These additives contain compound benzene and even some poor quality toilet paper contains formaldehyde, E. Especially on childbirth eve, fatty food, too sweet, too salty, spicy cold, stimulate alcohol and easy to cause contractions food, had better not to touch. Recommended food: nuts such as peanuts, walnuts, sesame seeds; lean meat, dairy, eggs, malt.


  15. The development for God of War Collection was outsourced
    from SCE Santa Monica Studio to Bluepoint Games. If the cooked time is too long, the food will become hard
    and lose its flavor, color and taste. People may feel tired and
    the things they do may not be satisfying. All of these questions
    around one focus, that is the safety problem.
    The craftsmen use these materials at great prices and do not be surprised if shortages occur.
    There is no extra decoration in the appearance which makes this phone simple and gentle.
    The stove is still hot to cook food, and people could take out the food after one minute.
    This makes the game more than just fighting and training.
    Not the most instinctive, but not as bad as some others out there.
    The AI enemies are often boring to fight because they are so.
    Yes, of course your account will be banned for buying Dofus
    kamas online, if you buy gold from that cheap price site which far away from what is normal, if you and your friend never know about the site,
    if your order don’t have any guarantee about the refund, or you don’t get
    a promised delivery time and don’t know who will do this delivery, 90% sure you will
    loss your money and get a banned email on your mail box.
    The artwork is fantastic, and the characters are largely
    customizable. Or of course, you can choose a profession that does not have anything
    that attacks you. It you have vacation before Christmas Day,
    it is a good choice to visit the German Christmas market and I am sure you will be
    deeply attracted by there. Therefore, skin cleansing only need to meet two basic conditions: thorough clean and skin moisture.
    The foot of human body is also vulnerable to cold invasion.
    If you have interests in our products, please visit our website and you will find
    what you want. Choose your favorite sports in your free time and have a happy hour to
    keep healthy. If you get splashed on by another monkey’s balloon,
    you will be incased in a bubble. The person’s work associates and colleagues
    are other possible sources of info that you can use. To do a few times in a day groups will let you
    have the more tightening, more charming legs. Many people know this truth, but they do not have the
    courage to refuse others. Because of the dry office
    environment, wearing the contact lens for a long time will cause skins around eyes dry.
    There are many different dungeons, but most are available for
    paying players only. Take care of the baby’s burden falls on
    the new dad, how can do a competent new dad.


  16. An interesting discussion is definitely worth comment.
    There’s no doubt that that you need to write more on this issue, it may not be a taboo subject but typically people don’t discuss such topics.
    To the next! All the best!!

  17. sale modelsale model04-26-2014


    Do you have a spam issue on this site; I also am a blogger, and I was wondering your situation;
    many of us have created some nice practices and we are looking to exchange strategies with others,
    why not shoot me an e-mail if interested.


  18. I have compiled a series of guides on how to Dofus kamas as
    soon as possible. Do you want to experience the journey you have never tried in the
    real world. One of the best features of Dofus is
    the job system.


  19. When the baby has been just born, their ability to
    resist the body is very bad, very delicate. You can play up to five Characters at one time and all the characters on one server will share a bank account, which is actually horribly convenient.

    However, we should know that long-term drinking milk
    with empty stomach is a certain injury to our health. Your best reaction is,
    to immediately stop the job at hand and immediately begin her new job, and the account, expression on the face will show you worry double times than the boss.

    You can order a cup of yogurt after meal, for the lactic acid bacteria in yogurt can better suppress the growth
    of corrupted strains and protect the intestinal and
    gastric health effectively. Some plant components in red skins could inhibit the growth of protein in tumor cells effectively, and reduce the reaction ability of tumor cells to estrogen.
    Alright, now that you have made your character, its time to play.
    But you don’t hurry back, because that would lead to your
    boss think that you didn’t do your best to do it, you must have a good shopping once street,
    on the street drink a cup of coffee, see pretty boys and girls
    in the street then come back. The ginger water could make the body warm, increase energy, active blood,
    accelerate blood circulation, and help people especially the elderly
    and young children to fight against the cold
    climate. In fact, person’s life is all the time in the “waiting”.
    The stove is still hot to cook food, and people could take
    out the food after one minute. ‘I have never cared about the ritual supplies store downstairs of the house before, but
    now I have been the regular customer in order to buy balloons.

    Insomniac Games seem to be opened to the idea of a Ratchet
    & Clank Collection on the Playstation 3 as long as SCEA supports the idea and finds another developer to handle
    the port. So, it may seem like just a game, but there are things to learn as well.
    Do not underestimate this rose, but you it’s “Pirates of the Caribbean” love the success of <. This simple action can let you exercise abdominal muscle, slowly practice six muscles. They will let you become thin while you are working, and it's not so hard. Because how many real people do you see named, I_am_awesome12837. The development for God of War Collection was outsourced from SCE Santa Monica Studio to Bluepoint Games. A blog is a web-based publishing platform, which is shortened form of the word "weblog. All the success is adventurous results all dare to think, dare to do. During the Christmas market open, the Roman Berger Square will transform into a festival market with handicrafts and Christmas food. a) Missions Suppose you start looking Incarnam, you must completely familiar with the characters with an exclamation point on the head, giving the search are their main source of Kamas. In fact, different kinds of cosmetic products eventually have different proportion of the raw material costs, such as washing powder may account for 60% to 70%, and toothpaste, shampoo account for 30% ~ 40%. New dad taking care of their babies mainly need to pay attention to four:.

  20. hotele lublinhotele lublin04-27-2014


    Ƭhis is a topic that іs close to my heart…
    Many thanks! Exactly where are your coոtact details though?

  21. MayaMaya05-03-2014


    Do you have any video of that? I’d care to find out more details.