import_otherdistro.py: create layer/branch if they don't exist

Make it easier to import different versions of the other distro by not
requiring you to manually create the layer and branch.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
This commit is contained in:
Paul Eggleton 2019-03-29 10:33:24 +13:00
parent 7ba3ca2e57
commit 2b3e88345b

View File

@ -312,23 +312,38 @@ def update_recipe_file(path, recipe, repodir, raiseexceptions=False):
def check_branch_layer(args): def check_branch_layer(args):
from layerindex.models import LayerItem, LayerBranch from layerindex.models import Branch, LayerItem, LayerBranch
branch = utils.get_branch(args.branch) branch = utils.get_branch(args.branch)
if not branch: if branch:
logger.error("Specified branch %s is not valid" % args.branch) if not branch.comparison:
return 1, None logger.error("Specified branch %s is not a comparison branch" % args.branch)
return 1, None
res = list(LayerItem.objects.filter(name=args.layer)[:1])
if res:
layer = res[0]
else: else:
logger.error('Cannot find specified layer "%s"' % args.layer) branch = Branch()
return 1, None branch.name = args.branch
branch.bitbake_branch = '-'
branch.short_description = '' # FIXME
branch.updates_enabled = False
branch.comparison = True
branch.save()
layer = LayerItem.objects.filter(name=args.layer).first()
if layer:
if not layer.comparison:
logger.error("Specified layer %s is not a comparison layer" % args.branch)
return 1, None
else:
layer = LayerItem()
layer.name = args.layer
layer.layer_type = 'M'
layer.summary = layer.name
layer.description = layer.name
layer.comparison = True
layer.save()
layerbranch = layer.get_layerbranch(args.branch) layerbranch = layer.get_layerbranch(args.branch)
if not layerbranch: if not layerbranch:
# LayerBranch doesn't exist for this branch, create it
layerbranch = LayerBranch() layerbranch = LayerBranch()
layerbranch.layer = layer layerbranch.layer = layer
layerbranch.branch = branch layerbranch.branch = branch