[Toaster] [PATCH] toaster: models Remove manual transaction control from lsupdates

Smith, Elliot elliot.smith at intel.com
Wed Feb 10 03:53:01 PST 2016


On 8 February 2016 at 17:16, Michael Wood <michael.g.wood at intel.com> wrote:

> Revert "toaster: models.py do not use transactions".
> This reverts commit e248a503ba84658dea086e65e9cde8b845b9c0ed
> (Bitbake rev: 48d0d510816346073f135bb86fb7904fdb50bb27)
>

Sent to bitbake-devel and added to toaster-next.

Elliot


>
> Manually manging the database transactions caused more
> problems than it temporarily solved so we return control back to
> Django's orm.
>
> [YOCTO #8796]
>
> Signed-off-by: Michael Wood <michael.g.wood at intel.com>
> ---
>  bitbake/lib/toaster/orm/models.py | 23 +----------------------
>  1 file changed, 1 insertion(+), 22 deletions(-)
>
> diff --git a/bitbake/lib/toaster/orm/models.py
> b/bitbake/lib/toaster/orm/models.py
> index ac2aa9e..01afeed 100644
> --- a/bitbake/lib/toaster/orm/models.py
> +++ b/bitbake/lib/toaster/orm/models.py
> @@ -1032,8 +1032,7 @@ class LayerIndexLayerSource(LayerSource):
>
>          # update layers
>          layers_info = _get_json_response(apilinks['layerItems'])
> -        if not connection.features.autocommits_when_autocommit_is_off:
> -            transaction.set_autocommit(False)
> +
>          for li in layers_info:
>              # Special case for the openembedded-core layer
>              if li['name'] == oe_core_layer:
> @@ -1065,17 +1064,12 @@ class LayerIndexLayerSource(LayerSource):
>              l.description = li['description']
>              l.save()
>
> -        if not connection.features.autocommits_when_autocommit_is_off:
> -            transaction.set_autocommit(True)
> -
>          # update layerbranches/layer_versions
>          logger.debug("Fetching layer information")
>          layerbranches_info = _get_json_response(apilinks['layerBranches']
>                  + "?filter=branch:%s" % "OR".join(map(lambda x:
> str(x.up_id), [i for i in Branch.objects.filter(layer_source = self) if
> i.up_id is not None] ))
>              )
>
> -        if not connection.features.autocommits_when_autocommit_is_off:
> -            transaction.set_autocommit(False)
>          for lbi in layerbranches_info:
>              lv, created =
> Layer_Version.objects.get_or_create(layer_source = self,
>                      up_id = lbi['id'],
> @@ -1088,14 +1082,10 @@ class LayerIndexLayerSource(LayerSource):
>              lv.commit = lbi['actual_branch']
>              lv.dirpath = lbi['vcs_subdir']
>              lv.save()
> -        if not connection.features.autocommits_when_autocommit_is_off:
> -            transaction.set_autocommit(True)
>
>          # update layer dependencies
>          layerdependencies_info =
> _get_json_response(apilinks['layerDependencies'])
>          dependlist = {}
> -        if not connection.features.autocommits_when_autocommit_is_off:
> -            transaction.set_autocommit(False)
>          for ldi in layerdependencies_info:
>              try:
>                  lv = Layer_Version.objects.get(layer_source = self, up_id
> = ldi['layerbranch'])
> @@ -1113,8 +1103,6 @@ class LayerIndexLayerSource(LayerSource):
>              LayerVersionDependency.objects.filter(layer_version =
> lv).delete()
>              for lvd in dependlist[lv]:
>
>  LayerVersionDependency.objects.get_or_create(layer_version = lv,
> depends_on = lvd)
> -        if not connection.features.autocommits_when_autocommit_is_off:
> -            transaction.set_autocommit(True)
>
>
>          # update machines
> @@ -1123,8 +1111,6 @@ class LayerIndexLayerSource(LayerSource):
>                  + "?filter=layerbranch:%s" % "OR".join(map(lambda x:
> str(x.up_id), Layer_Version.objects.filter(layer_source = self)))
>              )
>
> -        if not connection.features.autocommits_when_autocommit_is_off:
> -            transaction.set_autocommit(False)
>          for mi in machines_info:
>              mo, created = Machine.objects.get_or_create(layer_source =
> self, up_id = mi['id'], layer_version =
> Layer_Version.objects.get(layer_source = self, up_id = mi['layerbranch']))
>              mo.up_date = mi['updated']
> @@ -1132,16 +1118,11 @@ class LayerIndexLayerSource(LayerSource):
>              mo.description = mi['description']
>              mo.save()
>
> -        if not connection.features.autocommits_when_autocommit_is_off:
> -            transaction.set_autocommit(True)
> -
>          # update recipes; paginate by layer version / layer branch
>          logger.debug("Fetching target information")
>          recipes_info = _get_json_response(apilinks['recipes']
>                  + "?filter=layerbranch:%s" % "OR".join(map(lambda x:
> str(x.up_id), Layer_Version.objects.filter(layer_source = self)))
>              )
> -        if not connection.features.autocommits_when_autocommit_is_off:
> -            transaction.set_autocommit(False)
>          for ri in recipes_info:
>              try:
>                  ro, created = Recipe.objects.get_or_create(layer_source =
> self, up_id = ri['id'], layer_version =
> Layer_Version.objects.get(layer_source = self, up_id = ri['layerbranch']))
> @@ -1163,8 +1144,6 @@ class LayerIndexLayerSource(LayerSource):
>              except IntegrityError as e:
>                  logger.debug("Failed saving recipe, ignoring: %s (%s:%s)"
> % (e, ro.layer_version, ri['filepath']+"/"+ri['filename']))
>                  ro.delete()
> -        if not connection.features.autocommits_when_autocommit_is_off:
> -            transaction.set_autocommit(True)
>
>  class BitbakeVersion(models.Model):
>
> --
> 2.5.0
>
> --
> _______________________________________________
> toaster mailing list
> toaster at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/toaster
>



-- 
Elliot Smith
Software Engineer
Intel Open Source Technology Centre
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/toaster/attachments/20160210/4bb8bed1/attachment.html>


More information about the toaster mailing list