<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nova.git/bin/nova-compute, branch shared-key-msg</title>
<subtitle>OpenStack's nova patches.</subtitle>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/'/>
<entry>
<title>Delete unused bin directory</title>
<updated>2013-06-03T18:15:33+00:00</updated>
<author>
<name>Joe Gordon</name>
<email>joe.gordon0@gmail.com</email>
</author>
<published>2013-05-28T05:01:25+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=584b2fb4b0a1968699f8d2dd4b0a2af67e7dca8c'/>
<id>584b2fb4b0a1968699f8d2dd4b0a2af67e7dca8c</id>
<content type='text'>
Delete last bits of bin/.  With the move to entrypoints these aren't
needed anymore.

Update CONF.bindir to default to
  os.path.join(sys.prefix, 'local', 'bin')

Part of blueprint entrypoints-plugins

Change-Id: I95250d3779433e7b85aaa889a873b16c86a7d2be
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Delete last bits of bin/.  With the move to entrypoints these aren't
needed anymore.

Update CONF.bindir to default to
  os.path.join(sys.prefix, 'local', 'bin')

Part of blueprint entrypoints-plugins

Change-Id: I95250d3779433e7b85aaa889a873b16c86a7d2be
</pre>
</div>
</content>
</entry>
<entry>
<title>Move console scripts to entrypoints.</title>
<updated>2013-04-04T02:14:27+00:00</updated>
<author>
<name>Monty Taylor</name>
<email>mordred@inaugust.com</email>
</author>
<published>2012-08-15T19:02:51+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=799a925c1f4a388c30a7f0d9e1ffe1b82e8ced9d'/>
<id>799a925c1f4a388c30a7f0d9e1ffe1b82e8ced9d</id>
<content type='text'>
As part of the move of plugins to entrypoints, take advantage of the
entrypoints based console scripts, which will make our command line scripts
available for unittesting.

Part of blueprint entrypoints-plugins

Co-authored-by: Michael Still &lt;mikal@stillhq.com&gt;

Change-Id: I5f17348b7b3cc896c92263dd518abb128757d81f
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As part of the move of plugins to entrypoints, take advantage of the
entrypoints based console scripts, which will make our command line scripts
available for unittesting.

Part of blueprint entrypoints-plugins

Co-authored-by: Michael Still &lt;mikal@stillhq.com&gt;

Change-Id: I5f17348b7b3cc896c92263dd518abb128757d81f
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove gettext.install() from nova/__init__.py</title>
<updated>2013-04-01T17:44:47+00:00</updated>
<author>
<name>Mark McLoughlin</name>
<email>markmc@redhat.com</email>
</author>
<published>2013-03-31T23:53:25+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=9447e59b704701aad765f8ffa109843d9ffc88ae'/>
<id>9447e59b704701aad765f8ffa109843d9ffc88ae</id>
<content type='text'>
The gettext.install() function installs a builtin _() function which
translates a string in the translation domain supplied to the install()
function. If gettext.install() is called multiple times, it's the last
call to the function which wins and the last supplied translation domain
which is used e.g.

 &gt;&gt;&gt; import os
 &gt;&gt;&gt; os.environ['LANG'] = 'ja.UTF-8'
 &gt;&gt;&gt; import gettext
 &gt;&gt;&gt; gettext.install('keystone', unicode=1, localedir='/opt/stack/keystone/keystone/locale')
 &gt;&gt;&gt; print _('Invalid syslog facility')
 無効な syslog ファシリティ
 &gt;&gt;&gt; gettext.install('nova', unicode=1, localedir='/opt/stack/nova/nova/locale')
 &gt;&gt;&gt; print _('Invalid syslog facility')
 Invalid syslog facility

Usually this function is called early on in a toplevel script and we
assume that no other code will call it and override the installed _().
However, in Nova, we have taken a shortcut to avoid having to call it
explicitly from each script and instead call it from nova/__init__.py.

This shortcut would be perfectly fine if we were absolutely sure that
nova modules would never be imported from another program. It's probably
quite incorrect for a program to use nova code (indeed, if we wanted to
support this, Nova code shouldn't use the default _() function) but
nevertheless there are some corner cases where it happens. For example,
the keystoneclient auth_token middleware tries to import cfg from
nova.openstack.common and this in turn causes gettext.install('nova')
in other projects like glance or quantum.

To avoid any doubt here, let's just rip out the shortcut and always
call gettext.install() from the top-level script.

Change-Id: If4125d6bcbde63df95de129ac5c83b4a6d6f130a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The gettext.install() function installs a builtin _() function which
translates a string in the translation domain supplied to the install()
function. If gettext.install() is called multiple times, it's the last
call to the function which wins and the last supplied translation domain
which is used e.g.

 &gt;&gt;&gt; import os
 &gt;&gt;&gt; os.environ['LANG'] = 'ja.UTF-8'
 &gt;&gt;&gt; import gettext
 &gt;&gt;&gt; gettext.install('keystone', unicode=1, localedir='/opt/stack/keystone/keystone/locale')
 &gt;&gt;&gt; print _('Invalid syslog facility')
 無効な syslog ファシリティ
 &gt;&gt;&gt; gettext.install('nova', unicode=1, localedir='/opt/stack/nova/nova/locale')
 &gt;&gt;&gt; print _('Invalid syslog facility')
 Invalid syslog facility

Usually this function is called early on in a toplevel script and we
assume that no other code will call it and override the installed _().
However, in Nova, we have taken a shortcut to avoid having to call it
explicitly from each script and instead call it from nova/__init__.py.

This shortcut would be perfectly fine if we were absolutely sure that
nova modules would never be imported from another program. It's probably
quite incorrect for a program to use nova code (indeed, if we wanted to
support this, Nova code shouldn't use the default _() function) but
nevertheless there are some corner cases where it happens. For example,
the keystoneclient auth_token middleware tries to import cfg from
nova.openstack.common and this in turn causes gettext.install('nova')
in other projects like glance or quantum.

To avoid any doubt here, let's just rip out the shortcut and always
call gettext.install() from the top-level script.

Change-Id: If4125d6bcbde63df95de129ac5c83b4a6d6f130a
</pre>
</div>
</content>
</entry>
<entry>
<title>Use oslo-config-2013.1b4</title>
<updated>2013-02-20T05:16:32+00:00</updated>
<author>
<name>Mark McLoughlin</name>
<email>markmc@redhat.com</email>
</author>
<published>2013-02-15T22:30:16+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=706a1370056ffccc2c8811fc1ac0679944564ece'/>
<id>706a1370056ffccc2c8811fc1ac0679944564ece</id>
<content type='text'>
The cfg API is now available via the oslo-config library, so switch to
it and remove the copied-and-pasted version.

Add the 2013.1b4 tarball to tools/pip-requires - this will be changed
to 'oslo-config&gt;=2013.1' when oslo-config is published to pypi. This
will happen in time for grizzly final.

Add dependency_links to setup.py so that oslo-config can be installed
from the tarball URL specified in pip-requires.

Remove the 'deps = pep8==1.3.3' from tox.ini as it means all the other
deps get installed with easy_install which can't install oslo-config
from the URL.

Make tools/hacking.py include oslo in IMPORT_EXCEPTIONS like it already
does for paste. It turns out imp.find_module() doesn't correct handle
namespace packages.

Retain dummy cfg.py file until keystoneclient middleware has been
updated (I18c450174277c8e2d15ed93879da6cd92074c27a).

Change-Id: I4815aeb8a9341a31a250e920157f15ee15cfc5bc
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The cfg API is now available via the oslo-config library, so switch to
it and remove the copied-and-pasted version.

Add the 2013.1b4 tarball to tools/pip-requires - this will be changed
to 'oslo-config&gt;=2013.1' when oslo-config is published to pypi. This
will happen in time for grizzly final.

Add dependency_links to setup.py so that oslo-config can be installed
from the tarball URL specified in pip-requires.

Remove the 'deps = pep8==1.3.3' from tox.ini as it means all the other
deps get installed with easy_install which can't install oslo-config
from the URL.

Make tools/hacking.py include oslo in IMPORT_EXCEPTIONS like it already
does for paste. It turns out imp.find_module() doesn't correct handle
namespace packages.

Retain dummy cfg.py file until keystoneclient middleware has been
updated (I18c450174277c8e2d15ed93879da6cd92074c27a).

Change-Id: I4815aeb8a9341a31a250e920157f15ee15cfc5bc
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix nova-compute use of missing DBError</title>
<updated>2013-02-12T14:30:44+00:00</updated>
<author>
<name>Dan Smith</name>
<email>danms@us.ibm.com</email>
</author>
<published>2013-02-09T14:51:40+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=e7bc52d3f2ed783864984e021eb9d676a55943c7'/>
<id>e7bc52d3f2ed783864984e021eb9d676a55943c7</id>
<content type='text'>
Apparently exception.DBError disappeared at some point, but nova-
compute was still using it. Since it was a stretch in the first
place, and nothing else in exception.py looks reasonable, this
adds exception.DBNotAllowed.

Fixes bug 1120390

Change-Id: Ifbfa0b09f3dc011ad87f6f3b06eb0fdaa7247ec0
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Apparently exception.DBError disappeared at some point, but nova-
compute was still using it. Since it was a stretch in the first
place, and nothing else in exception.py looks reasonable, this
adds exception.DBNotAllowed.

Fixes bug 1120390

Change-Id: Ifbfa0b09f3dc011ad87f6f3b06eb0fdaa7247ec0
</pre>
</div>
</content>
</entry>
<entry>
<title>Ban database access in nova-compute</title>
<updated>2013-02-07T02:45:17+00:00</updated>
<author>
<name>Dan Smith</name>
<email>danms@us.ibm.com</email>
</author>
<published>2013-02-06T16:26:59+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=e5cbbcfc6a5fa31565d21e6c0ea260faca3b253d'/>
<id>e5cbbcfc6a5fa31565d21e6c0ea260faca3b253d</id>
<content type='text'>
This adds a wedge between nova-compute and the database implementation
to specifically catch, log, and deny accesses. Theoretically, this
should not be needed as a production environment would not even have
the compute nodes configured to talk to the database. However, testing
and upgraded environments may retain database access and thus avoid
hitting real issues that can be fixed up prior to release. Putting
this into the tree now will help ensure we have a consistent error
scenario for test setups prior to release.

Note that if nova is configured to use a local conductor, we do not
insert the wedge, which provides an easy out for anyone needing to
get a production system past a missed database access.

Related to bp no-db-compute.

Based on Russell's original tracer hack:

   I328fa92d5bfdadd5022f5c7efe981396d8ae7962

Change-Id: I478230220633e0d2ff94b6a4d756e07eab8517d7
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds a wedge between nova-compute and the database implementation
to specifically catch, log, and deny accesses. Theoretically, this
should not be needed as a production environment would not even have
the compute nodes configured to talk to the database. However, testing
and upgraded environments may retain database access and thus avoid
hitting real issues that can be fixed up prior to release. Putting
this into the tree now will help ensure we have a consistent error
scenario for test setups prior to release.

Note that if nova is configured to use a local conductor, we do not
insert the wedge, which provides an easy out for anyone needing to
get a production system past a missed database access.

Related to bp no-db-compute.

Based on Russell's original tracer hack:

   I328fa92d5bfdadd5022f5c7efe981396d8ae7962

Change-Id: I478230220633e0d2ff94b6a4d756e07eab8517d7
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle waiting for conductor in nova.service.</title>
<updated>2013-01-11T23:06:57+00:00</updated>
<author>
<name>Russell Bryant</name>
<email>rbryant@redhat.com</email>
</author>
<published>2013-01-11T19:11:08+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=f5a94c7c2cdf090659689fb3194e7e045a1ea2d4'/>
<id>f5a94c7c2cdf090659689fb3194e7e045a1ea2d4</id>
<content type='text'>
Previously we were waiting for conductor to respond to a ping() in the
compute manager.  This patch moves this down to the base Service class.
A nova service binary can indicate that db access is not allowed and if
so, as soon as the service gets created, it will block while waiting for
conductor to respond.

The compute service has been updated to use this.  This should not
result in any real functional difference.

The reason for this is that there is some database access that needs to
be avoided down at this level.  This allows us to divert these actions
to conductor if needed.

Part of bp no-db-compute.

Change-Id: Idd6387b9428e3f9f4e4dbfe51293693238b2daf0
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously we were waiting for conductor to respond to a ping() in the
compute manager.  This patch moves this down to the base Service class.
A nova service binary can indicate that db access is not allowed and if
so, as soon as the service gets created, it will block while waiting for
conductor to respond.

The compute service has been updated to use this.  This should not
result in any real functional difference.

The reason for this is that there is some database access that needs to
be avoided down at this level.  This allows us to divert these actions
to conductor if needed.

Part of bp no-db-compute.

Change-Id: Idd6387b9428e3f9f4e4dbfe51293693238b2daf0
</pre>
</div>
</content>
</entry>
<entry>
<title>Move compute_topic into nova.compute.rpcapi</title>
<updated>2013-01-09T08:13:14+00:00</updated>
<author>
<name>Mark McLoughlin</name>
<email>markmc@redhat.com</email>
</author>
<published>2013-01-08T07:01:42+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=eac6e73223658595737ea001e1e0b18cfb4398c1'/>
<id>eac6e73223658595737ea001e1e0b18cfb4398c1</id>
<content type='text'>
Even though the compute_topic opt is used outside nova.compute.rpcapi,
it makes sense for the RPC module to "own" the topic option.

blueprint: scope-config-opts
Change-Id: I453951825481b9a5ba1865f6bf1223f7b1e25f98
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Even though the compute_topic opt is used outside nova.compute.rpcapi,
it makes sense for the RPC module to "own" the topic option.

blueprint: scope-config-opts
Change-Id: I453951825481b9a5ba1865f6bf1223f7b1e25f98
</pre>
</div>
</content>
</entry>
<entry>
<title>Use CONF.import_opt() for nova.config opts</title>
<updated>2012-11-20T00:04:49+00:00</updated>
<author>
<name>Mark McLoughlin</name>
<email>markmc@redhat.com</email>
</author>
<published>2012-11-17T22:50:21+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=e237c86446ba4ecba95cf65a2609733707aab68e'/>
<id>e237c86446ba4ecba95cf65a2609733707aab68e</id>
<content type='text'>
The only reason for importing nova.config now is where one of the
options defined in that file is needed. Rather than importing
nova.config using an import statement, use CONF.import_opt() so
that it is clear which option we actually require.

In future, we will move many options out of nova.config so many
of these import_opt() calls will either go away or cause a module
other than nova.config to be imported.

Change-Id: I0646efddecdf2530903afd50c1f4364cb1d5dce1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The only reason for importing nova.config now is where one of the
options defined in that file is needed. Rather than importing
nova.config using an import statement, use CONF.import_opt() so
that it is clear which option we actually require.

In future, we will move many options out of nova.config so many
of these import_opt() calls will either go away or cause a module
other than nova.config to be imported.

Change-Id: I0646efddecdf2530903afd50c1f4364cb1d5dce1
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove nova.config.CONF</title>
<updated>2012-11-20T00:00:21+00:00</updated>
<author>
<name>Mark McLoughlin</name>
<email>markmc@redhat.com</email>
</author>
<published>2012-11-17T22:50:17+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=94d87bce212f91c54370784a5544f1a07625938a'/>
<id>94d87bce212f91c54370784a5544f1a07625938a</id>
<content type='text'>
Modules import nova.config for two reasons right now - firstly, to
reference nova.config.CONF and, secondly, if they use one of the
options defined in nova.config.

Often modules import nova.openstack.common.cfg and nova.config
which is a bit pointless since they could just use cfg.CONF if
they just want to nova.config in order to reference CONF.

Let's just use cfg.CONF everywhere and we can explicitly state
where we actually require options defined in nova.config.

Change-Id: Ie4184a74e3e78c99658becb18dce1c2087e450bb
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Modules import nova.config for two reasons right now - firstly, to
reference nova.config.CONF and, secondly, if they use one of the
options defined in nova.config.

Often modules import nova.openstack.common.cfg and nova.config
which is a bit pointless since they could just use cfg.CONF if
they just want to nova.config in order to reference CONF.

Let's just use cfg.CONF everywhere and we can explicitly state
where we actually require options defined in nova.config.

Change-Id: Ie4184a74e3e78c99658becb18dce1c2087e450bb
</pre>
</div>
</content>
</entry>
</feed>
