Ask Your Question

markmc's profile - activity

2013-10-23 21:56:56 -0500 received badge  Nice Answer (source)
2013-06-06 04:07:20 -0500 received badge  Teacher (source)
2013-06-06 02:15:06 -0500 received badge  Editor (source)
2013-06-06 00:41:54 -0500 answered a question What options are available to get an OpenStack training certification?

These are the training offerings I can find:

  • (Alter Way)
  • (eNovance)
  • (GridDynamics)
  • (Hastexo)
  • (Linux Foundation)
  • (Mirantis)
  • (Objectif Libre)
  • (Piston)
  • (Pythagore)
  • (qstc)
  • (Rackspace)
  • (Red Hat)
  • (StackOps)
  • (SwiftStack)

Thanks to Dave Neary for some of these links.

2012-07-19 09:11:27 -0500 answered a question ImportError using api-paste.ini configuration example

Mark McLoughlin suggests this article as an answer to your question: FAQ #2004: “Malformed request url (HTTP 400)”.

2012-07-19 08:56:48 -0500 answered a question unrecognized content type provided in request from pid=999

Created a FAQ FAQ #2003: “Unrecognized Content-Type provided in request”.

2012-02-10 14:00:36 -0500 answered a question nova-manage and libvirt_type flag

"nova-manage prints libvirt related warnings if libvirt isn't installed" is certainly a valid bug IMHO

This would work:

   def is_libvirt_kvm_or_qemu():
       if FLAGS.connection_type != 'libvirt':
           return False

       flags.DECLARE('libvirt_type', 'nova.virt.libvirt.connection')

       return FLAGS.libvirt_type in ['kvm', 'qemu']

    if not is_libvirt_kvm_or_qermu():
        msg = _('Only KVM and QEmu are supported for now. Sorry!')
        raise exception.Error(msg)
2012-02-10 11:36:06 -0500 answered a question nova-manage and libvirt_type flag

bin/nova-manage uses libvirt_type here:

    if (FLAGS.connection_type != 'libvirt' or
       (FLAGS.connection_type == 'libvirt' and
        FLAGS.libvirt_type not in ['kvm', 'qemu'])):
        msg = _('Only KVM and QEmu are supported for now. Sorry!')
        raise exception.Error(msg)

in order for --libvirt_type to be parsed from the command line or the contents of the flagfile, the option has to be registered before it is referenced in the code above

the option is registered in nova/virt/libvirt/


FLAGS = flags.FLAGS FLAGS.add_options(libvirt_opts)

i.e. you need to import nova.virt.libvirt.connection in order for the option to be registered

Rather than import the module into the namespace, we use flags.DECLARE() to do this - all it does is import the module and check that the option has been registered:

def DECLARE(name, module_string, flag_values=FLAGS): if module_string not in sys.modules: __import__(module_string, globals(), locals()) if name not in flag_values: raise UnrecognizedFlag('%s not defined by %s' % (name, module_string))

We don't need to declare options like connection_type because that is registered when we import the nova.flags module