bitbake: toaster: use force_bytes to display non-ascii project names

When user enters a non-ascii character in the project
name of toaster, the build doesn't get triggered.
Use force_bytes to fix this.

Also deal with non-ascii project names when logging the
build request in runbuilds.

[YOCTO #9071]

(Bitbake rev: b6141c4d170885d3bdf63074afcb1e41fde0a8f0)

Signed-off-by: Sujith H <sujith.h@gmail.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Sujith H 2016-03-08 18:09:02 +00:00 committed by Richard Purdie
parent aebc22dbfa
commit cc74a8ae26
3 changed files with 8 additions and 3 deletions

View File

@ -47,7 +47,7 @@ class Command(NoArgsCommand):
logger.debug("runbuilds: No build env")
return
logger.debug("runbuilds: starting build %s, environment %s" % (br, bec.be))
logger.debug("runbuilds: starting build %s, environment %s" % (str(br).decode('utf-8'), bec.be))
# write the build identification variable
BRVariable.objects.create(req = br, name="TOASTER_BRBE", value="%d:%d" % (br.pk, bec.be.pk))

View File

@ -1,5 +1,7 @@
from __future__ import unicode_literals
from django.db import models
from django.core.validators import MaxValueValidator, MinValueValidator
from django.utils.encoding import force_bytes
from orm.models import Project, ProjectLayer, ProjectVariable, ProjectTarget, Build, Layer_Version
# a BuildEnvironment is the equivalent of the "build/" directory on the localhost
@ -94,7 +96,7 @@ class BuildRequest(models.Model):
return self.brvariable_set.get(name="MACHINE").value
def __str__(self):
return "%s %s" % (self.project, self.get_state_display())
return force_bytes('%s %s' % (self.project, self.get_state_display()))
# These tables specify the settings for running an actual build.
# They MUST be kept in sync with the tables in orm.models.Project*

View File

@ -19,9 +19,12 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
from __future__ import unicode_literals
from django.db import models, IntegrityError
from django.db.models import F, Q, Avg, Max, Sum
from django.utils import timezone
from django.utils.encoding import force_bytes
from django.core.urlresolvers import reverse
@ -1614,7 +1617,7 @@ class LogMessage(models.Model):
lineno = models.IntegerField(null=True)
def __str__(self):
return "%s %s %s" % (self.get_level_display(), self.message, self.build)
return force_bytes('%s %s %s' % (self.get_level_display(), self.message, self.build))
def invalidate_cache(**kwargs):
from django.core.cache import cache