From 808b7beec8ae9d3451806d015a4621b3cc4a1466 Mon Sep 17 00:00:00 2001 From: Chenxiong Qi Date: Apr 24 2019 09:06:38 +0000 Subject: Refactor code style of code creating test data This patch proposes another code style to create module builds and associated component builds. The major purpose to make this refactor is to make it easier to follow up the lines of code and understand the test data and the relationship between module builds and component builds. Signed-off-by: Chenxiong Qi --- diff --git a/tests/__init__.py b/tests/__init__.py index e9f4304..28ec02b 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -146,12 +146,25 @@ def _populate_data(session, data_size=10, contexts=False, scratch=False): num_contexts = 2 if contexts else 1 for index in range(data_size): for context in range(num_contexts): - build_one = ModuleBuild() - build_one.name = 'nginx' - build_one.stream = '1' - build_one.version = 2 + index - build_one.state = BUILD_STATES['ready'] - build_one.scratch = scratch + build_one = ModuleBuild( + name='nginx', + stream='1', + version=2 + index, + state=BUILD_STATES['ready'], + scratch=scratch, + modulemd=read_staged_data('nginx_mmd'), + koji_tag='scrmod-nginx-1.2' if scratch else 'module-nginx-1.2', + scmurl='git://pkgs.domain.local/modules/nginx' + '?#ba95886c7a443b36a9ce31abda1f9bef22f2f8c9', + batch=2, + # https://www.youtube.com/watch?v=iQGwrK_yDEg, + owner='Moe Szyslak', + time_submitted=datetime(2016, 9, 3, 11, 23, 20) + timedelta(minutes=(index * 10)), + time_modified=datetime(2016, 9, 3, 11, 25, 32) + timedelta(minutes=(index * 10)), + time_completed=datetime(2016, 9, 3, 11, 25, 32) + timedelta(minutes=(index * 10)), + rebuild_strategy='changed-and-after', + ) + if contexts: build_one.stream = str(index) unique_hash = hashlib.sha1(("%s:%s:%d:%d" % ( @@ -162,160 +175,133 @@ def _populate_data(session, data_size=10, contexts=False, scratch=False): build_one.ref_build_context = unique_hash combined_hashes = '{0}:{1}'.format(unique_hash, unique_hash) build_one.context = hashlib.sha1(combined_hashes.encode("utf-8")).hexdigest()[:8] - build_one.modulemd = read_staged_data('nginx_mmd') - if scratch: - build_one.koji_tag = 'scrmod-nginx-1.2' - else: - build_one.koji_tag = 'module-nginx-1.2' - build_one.scmurl = ('git://pkgs.domain.local/modules/nginx?' - '#ba95886c7a443b36a9ce31abda1f9bef22f2f8c9') - build_one.batch = 2 - # https://www.youtube.com/watch?v=iQGwrK_yDEg - build_one.owner = 'Moe Szyslak' - build_one.time_submitted = \ - datetime(2016, 9, 3, 11, 23, 20) + timedelta(minutes=(index * 10)) - build_one.time_modified = \ - datetime(2016, 9, 3, 11, 25, 32) + timedelta(minutes=(index * 10)) - build_one.time_completed = \ - datetime(2016, 9, 3, 11, 25, 32) + timedelta(minutes=(index * 10)) - build_one.rebuild_strategy = 'changed-and-after' + session.add(build_one) session.commit() build_one_component_release = get_rpm_release(build_one) - component_one_build_one = ComponentBuild() - component_one_build_one.package = 'nginx' - component_one_build_one.scmurl = \ - ('git://pkgs.domain.local/rpms/nginx?' - '#ga95886c8a443b36a9ce31abda1f9bed22f2f8c3') - component_one_build_one.format = 'rpms' - component_one_build_one.task_id = 12312345 + index - component_one_build_one.state = koji.BUILD_STATES['COMPLETE'] - component_one_build_one.nvr = 'nginx-1.10.1-2.{0}'.format(build_one_component_release) - component_one_build_one.batch = 1 - component_one_build_one.module_id = 2 + index * 3 - component_one_build_one.tagged = True - component_one_build_one.tagged_in_final = True - - component_two_build_one = ComponentBuild() - component_two_build_one.package = 'module-build-macros' - component_two_build_one.scmurl = \ - ('/tmp/module_build_service-build-macrosWZUPeK/SRPMS/' - 'module-build-macros-0.1-1.module_nginx_1_2.src.rpm') - component_two_build_one.format = 'rpms' - component_two_build_one.task_id = 12312321 + index - component_two_build_one.state = koji.BUILD_STATES['COMPLETE'] - component_two_build_one.nvr = \ - 'module-build-macros-01-1.{0}'.format(build_one_component_release) - component_two_build_one.batch = 2 - component_two_build_one.module_id = 2 + index * 3 - component_two_build_one.tagged = True - component_two_build_one.tagged_in_final = True - - build_two = ModuleBuild() - build_two.name = 'postgressql' - build_two.stream = '1' - build_two.version = 2 + index - build_two.state = BUILD_STATES['done'] - build_two.scratch = scratch - build_two.modulemd = read_staged_data('testmodule') - if scratch: - build_two.koji_tag = 'scrmod-postgressql-1.2' - else: - build_two.koji_tag = 'module-postgressql-1.2' - build_two.scmurl = ('git://pkgs.domain.local/modules/postgressql?' - '#aa95886c7a443b36a9ce31abda1f9bef22f2f8c9') - build_two.batch = 2 - build_two.owner = 'some_user' - build_two.time_submitted = \ - datetime(2016, 9, 3, 12, 25, 33) + timedelta(minutes=(index * 10)) - build_two.time_modified = \ - datetime(2016, 9, 3, 12, 27, 19) + timedelta(minutes=(index * 10)) - build_two.time_completed = \ - datetime(2016, 9, 3, 11, 27, 19) + timedelta(minutes=(index * 10)) - build_two.rebuild_strategy = 'changed-and-after' + component_one_build_one = ComponentBuild( + package='nginx', + scmurl='git://pkgs.domain.local/rpms/nginx?' + '#ga95886c8a443b36a9ce31abda1f9bed22f2f8c3', + format='rpms', + task_id=12312345 + index, + state=koji.BUILD_STATES['COMPLETE'], + nvr='nginx-1.10.1-2.{0}'.format(build_one_component_release), + batch=1, + module_id=2 + index * 3, + tagged=True, + tagged_in_final=True, + ) + + component_two_build_one = ComponentBuild( + package='module-build-macros', + scmurl='/tmp/module_build_service-build-macrosWZUPeK/SRPMS/' + 'module-build-macros-0.1-1.module_nginx_1_2.src.rpm', + format='rpms', + task_id=12312321 + index, + state=koji.BUILD_STATES['COMPLETE'], + nvr='module-build-macros-01-1.{0}'.format(build_one_component_release), + batch=2, + module_id=2 + index * 3, + tagged=True, + tagged_in_final=True, + ) + + build_two = ModuleBuild( + name='postgressql', + stream='1', + version=2 + index, + state=BUILD_STATES['done'], + scratch=scratch, + modulemd=read_staged_data('testmodule'), + koji_tag='scrmod-postgressql-1.2' if scratch else 'module-postgressql-1.2', + scmurl='git://pkgs.domain.local/modules/postgressql' + '?#aa95886c7a443b36a9ce31abda1f9bef22f2f8c9', + batch=2, + owner='some_user', + time_submitted=datetime(2016, 9, 3, 12, 25, 33) + timedelta(minutes=(index * 10)), + time_modified=datetime(2016, 9, 3, 12, 27, 19) + timedelta(minutes=(index * 10)), + time_completed=datetime(2016, 9, 3, 11, 27, 19) + timedelta(minutes=(index * 10)), + rebuild_strategy='changed-and-after', + ) + session.add(build_two) session.commit() build_two_component_release = get_rpm_release(build_two) - component_one_build_two = ComponentBuild() - component_one_build_two.package = 'postgresql' - component_one_build_two.scmurl = \ - ('git://pkgs.domain.local/rpms/postgresql?' - '#dc95586c4a443b26a9ce38abda1f9bed22f2f8c3') - component_one_build_two.format = 'rpms' - component_one_build_two.task_id = 2433433 + index - component_one_build_two.state = koji.BUILD_STATES['COMPLETE'] - component_one_build_two.nvr = 'postgresql-9.5.3-4.{0}'.format(build_two_component_release) - component_one_build_two.batch = 2 - component_one_build_two.module_id = 3 + index * 3 - component_one_build_two.tagged = True - component_one_build_two.tagged_in_final = True - - component_two_build_two = ComponentBuild() - component_two_build_two.package = 'module-build-macros' - component_two_build_two.scmurl = \ - ('/tmp/module_build_service-build-macrosWZUPeK/SRPMS/' - 'module-build-macros-0.1-1.module_postgresql_1_2.src.rpm') - component_two_build_two.format = 'rpms' - component_two_build_two.task_id = 47383993 + index - component_two_build_two.state = koji.BUILD_STATES['COMPLETE'] - component_two_build_two.nvr = \ - 'module-build-macros-01-1.{0}'.format(build_two_component_release) - component_two_build_two.batch = 1 - component_two_build_two.module_id = 3 + index * 3 - component_one_build_two.tagged = True - component_one_build_two.build_time_only = True - - build_three = ModuleBuild() - build_three.name = 'testmodule' - build_three.stream = '4.3.43' - build_three.version = 6 + index - build_three.state = BUILD_STATES['wait'] - build_three.scratch = scratch - build_three.modulemd = read_staged_data('testmodule') - build_three.koji_tag = None - build_three.scmurl = ('git://pkgs.domain.local/modules/testmodule?' - '#ca95886c7a443b36a9ce31abda1f9bef22f2f8c9') - build_three.batch = 0 - build_three.owner = 'some_other_user' - build_three.time_submitted = \ - datetime(2016, 9, 3, 12, 28, 33) + timedelta(minutes=(index * 10)) - build_three.time_modified = \ - datetime(2016, 9, 3, 12, 28, 40) + timedelta(minutes=(index * 10)) - build_three.time_completed = None - build_three.rebuild_strategy = 'changed-and-after' + component_one_build_two = ComponentBuild( + package='postgresql', + scmurl='git://pkgs.domain.local/rpms/postgresql' + '?#dc95586c4a443b26a9ce38abda1f9bed22f2f8c3', + format='rpms', + task_id=2433433 + index, + state=koji.BUILD_STATES['COMPLETE'], + nvr='postgresql-9.5.3-4.{0}'.format(build_two_component_release), + batch=2, + module_id=3 + index * 3, + tagged=True, + tagged_in_final=True, + ) + + component_two_build_two = ComponentBuild( + package='module-build-macros', + scmurl='/tmp/module_build_service-build-macrosWZUPeK/SRPMS/' + 'module-build-macros-0.1-1.module_postgresql_1_2.src.rpm', + format='rpms', + task_id=47383993 + index, + state=koji.BUILD_STATES['COMPLETE'], + nvr='module-build-macros-01-1.{0}'.format(build_two_component_release), + batch=1, + module_id=3 + index * 3, + ) + + build_three = ModuleBuild( + name='testmodule', + stream='4.3.43', + version=6 + index, + state=BUILD_STATES['wait'], + scratch=scratch, + modulemd=read_staged_data('testmodule'), + koji_tag=None, + scmurl='git://pkgs.domain.local/modules/testmodule' + '?#ca95886c7a443b36a9ce31abda1f9bef22f2f8c9', + batch=0, + owner='some_other_user', + time_submitted=datetime(2016, 9, 3, 12, 28, 33) + timedelta(minutes=(index * 10)), + time_modified=datetime(2016, 9, 3, 12, 28, 40) + timedelta(minutes=(index * 10)), + time_completed=None, + rebuild_strategy='changed-and-after', + ) session.add(build_three) session.commit() build_three_component_release = get_rpm_release(build_three) - component_one_build_three = ComponentBuild() - component_one_build_three.package = 'rubygem-rails' - component_one_build_three.scmurl = \ - ('git://pkgs.domain.local/rpms/rubygem-rails?' - '#dd55886c4a443b26a9ce38abda1f9bed22f2f8c3') - component_one_build_three.format = 'rpms' - component_one_build_three.task_id = 2433433 + index - component_one_build_three.state = koji.BUILD_STATES['FAILED'] - component_one_build_three.nvr = \ - 'postgresql-9.5.3-4.{0}'.format(build_three_component_release) - component_one_build_three.batch = 2 - component_one_build_three.module_id = 4 + index * 3 - - component_two_build_three = ComponentBuild() - component_two_build_three.package = 'module-build-macros' - component_two_build_three.scmurl = \ - ('/tmp/module_build_service-build-macrosWZUPeK/SRPMS/' - 'module-build-macros-0.1-1.module_testmodule_1_2.src.rpm') - component_two_build_three.format = 'rpms' - component_two_build_three.task_id = 47383993 + index - component_two_build_three.state = koji.BUILD_STATES['COMPLETE'] - component_two_build_three.nvr = \ - 'module-build-macros-01-1.{0}'.format(build_three_component_release) - component_two_build_three.batch = 1 - component_two_build_three.module_id = 4 + index * 3 - component_two_build_three.tagged = True - component_two_build_three.build_time_only = True + component_one_build_three = ComponentBuild( + package='rubygem-rails', + scmurl='git://pkgs.domain.local/rpms/rubygem-rails' + '?#dd55886c4a443b26a9ce38abda1f9bed22f2f8c3', + format='rpms', + task_id=2433433 + index, + state=koji.BUILD_STATES['FAILED'], + nvr='postgresql-9.5.3-4.{0}'.format(build_three_component_release), + batch=2, + module_id=4 + index * 3, + ) + + component_two_build_three = ComponentBuild( + package='module-build-macros', + scmurl='/tmp/module_build_service-build-macrosWZUPeK/SRPMS/' + 'module-build-macros-0.1-1.module_testmodule_1_2.src.rpm', + format='rpms', + task_id=47383993 + index, + state=koji.BUILD_STATES['COMPLETE'], + nvr='module-build-macros-01-1.{0}'.format(build_three_component_release), + batch=1, + module_id=4 + index * 3, + tagged=True, + build_time_only=True, + ) session.add(component_one_build_one) session.add(component_two_build_one) @@ -340,105 +326,89 @@ def scheduler_init_data(tangerine_state=None, scratch=False): platform_br = module_build_service.models.ModuleBuild.query.get(1) - build_one = module_build_service.models.ModuleBuild() - build_one.name = 'testmodule' - build_one.stream = 'master' - build_one.version = 20170109091357 - build_one.state = BUILD_STATES['build'] - build_one.scratch = scratch - build_one.build_context = 'ac4de1c346dcf09ce77d38cd4e75094ec1c08eb0' - build_one.runtime_context = 'ac4de1c346dcf09ce77d38cd4e75094ec1c08eb0' - build_one.context = '7c29193d' - if scratch: - build_one.koji_tag = 'scrmod-testmodule-master-20170109091357-7c29193d' - else: - build_one.koji_tag = 'module-testmodule-master-20170109091357-7c29193d' - build_one.scmurl = 'https://src.stg.fedoraproject.org/modules/testmodule.git?#ff1ea79' - if tangerine_state: - build_one.batch = 3 - else: - build_one.batch = 2 - # https://www.youtube.com/watch?v=iOKymYVSaJE - build_one.owner = 'Buzz Lightyear' - build_one.time_submitted = datetime(2017, 2, 15, 16, 8, 18) - build_one.time_modified = datetime(2017, 2, 15, 16, 19, 35) - build_one.rebuild_strategy = 'changed-and-after' - build_one.modulemd = to_text_type(mmd.dumps()) - build_one_component_release = get_rpm_release(build_one) - build_one.buildrequires.append(platform_br) - - component_one_build_one = module_build_service.models.ComponentBuild() - component_one_build_one.package = 'perl-Tangerine' - component_one_build_one.scmurl = \ - ('https://src.fedoraproject.org/rpms/perl-Tangerine' - '?#4ceea43add2366d8b8c5a622a2fb563b625b9abf') - component_one_build_one.format = 'rpms' - component_one_build_one.task_id = 90276227 - component_one_build_one.state = koji.BUILD_STATES['COMPLETE'] - component_one_build_one.nvr = \ - 'perl-Tangerine-0.23-1.{0}'.format(build_one_component_release) - component_one_build_one.batch = 2 - component_one_build_one.module_id = 2 - component_one_build_one.ref = '4ceea43add2366d8b8c5a622a2fb563b625b9abf' - component_one_build_one.tagged = True - component_one_build_one.tagged_in_final = True - - component_two_build_one = module_build_service.models.ComponentBuild() - component_two_build_one.package = 'perl-List-Compare' - component_two_build_one.scmurl = \ - ('https://src.fedoraproject.org/rpms/perl-List-Compare' - '?#76f9d8c8e87eed0aab91034b01d3d5ff6bd5b4cb') - component_two_build_one.format = 'rpms' - component_two_build_one.task_id = 90276228 - component_two_build_one.state = koji.BUILD_STATES['COMPLETE'] - component_two_build_one.nvr = \ - 'perl-List-Compare-0.53-5.{0}'.format(build_one_component_release) - component_two_build_one.batch = 2 - component_two_build_one.module_id = 2 - component_two_build_one.ref = '76f9d8c8e87eed0aab91034b01d3d5ff6bd5b4cb' - component_two_build_one.tagged = True - component_two_build_one.tagged_in_final = True - - component_three_build_one = module_build_service.models.ComponentBuild() - component_three_build_one.package = 'tangerine' - component_three_build_one.scmurl = \ - ('https://src.fedoraproject.org/rpms/tangerine' - '?#fbed359411a1baa08d4a88e0d12d426fbf8f602c') - component_three_build_one.format = 'rpms' - component_three_build_one.batch = 3 - component_three_build_one.module_id = 2 - component_three_build_one.ref = 'fbed359411a1baa08d4a88e0d12d426fbf8f602c' - component_three_build_one.state = tangerine_state - if tangerine_state: - component_three_build_one.task_id = 90276315 - component_three_build_one.nvr = \ - 'tangerine-0.22-3.{0}'.format(build_one_component_release) - if tangerine_state == koji.BUILD_STATES['COMPLETE']: - component_three_build_one.tagged = True - component_three_build_one.tagged_in_final = True - - component_four_build_one = module_build_service.models.ComponentBuild() - component_four_build_one.package = 'module-build-macros' - component_four_build_one.scmurl = \ - ('/tmp/module_build_service-build-macrosqr4AWH/SRPMS/module-build-' - 'macros-0.1-1.module_testmodule_master_20170109091357.src.rpm') - component_four_build_one.format = 'rpms' - component_four_build_one.task_id = 90276181 - component_four_build_one.state = koji.BUILD_STATES['COMPLETE'] - component_four_build_one.nvr = \ - 'module-build-macros-0.1-1.{0}'.format(build_one_component_release) - component_four_build_one.batch = 1 - component_four_build_one.module_id = 2 - component_four_build_one.tagged = True - component_four_build_one.build_time_only = True + module_build = module_build_service.models.ModuleBuild( + name='testmodule', + stream='master', + version=20170109091357, + state=BUILD_STATES['build'], + scratch=scratch, + build_context='ac4de1c346dcf09ce77d38cd4e75094ec1c08eb0', + runtime_context='ac4de1c346dcf09ce77d38cd4e75094ec1c08eb0', + context='7c29193d', + koji_tag='scrmod-testmodule-master-20170109091357-7c29193d' + if scratch else + 'module-testmodule-master-20170109091357-7c29193d', + scmurl='https://src.stg.fedoraproject.org/modules/testmodule.git?#ff1ea79', + batch=3 if tangerine_state else 2, + # https://www.youtube.com/watch?v=iOKymYVSaJE + owner='Buzz Lightyear', + time_submitted=datetime(2017, 2, 15, 16, 8, 18), + time_modified=datetime(2017, 2, 15, 16, 19, 35), + rebuild_strategy='changed-and-after', + modulemd=to_text_type(mmd.dumps()), + ) + + module_build.buildrequires.append(platform_br) + build_one_component_release = get_rpm_release(module_build) + + module_build.component_builds.extend([ + module_build_service.models.ComponentBuild( + package='perl-Tangerine', + scmurl='https://src.fedoraproject.org/rpms/perl-Tangerine' + '?#4ceea43add2366d8b8c5a622a2fb563b625b9abf', + format='rpms', + task_id=90276227, + state=koji.BUILD_STATES['COMPLETE'], + nvr='perl-Tangerine-0.23-1.{0}'.format(build_one_component_release), + batch=2, + ref='4ceea43add2366d8b8c5a622a2fb563b625b9abf', + tagged=True, + tagged_in_final=True, + ), + module_build_service.models.ComponentBuild( + package='perl-List-Compare', + scmurl='https://src.fedoraproject.org/rpms/perl-List-Compare' + '?#76f9d8c8e87eed0aab91034b01d3d5ff6bd5b4cb', + format='rpms', + task_id=90276228, + state=koji.BUILD_STATES['COMPLETE'], + nvr='perl-List-Compare-0.53-5.{0}'.format(build_one_component_release), + batch=2, + ref='76f9d8c8e87eed0aab91034b01d3d5ff6bd5b4cb', + tagged=True, + tagged_in_final=True, + ), + module_build_service.models.ComponentBuild( + package='tangerine', + scmurl='https://src.fedoraproject.org/rpms/tangerine' + '?#fbed359411a1baa08d4a88e0d12d426fbf8f602c', + format='rpms', + batch=3, + ref='fbed359411a1baa08d4a88e0d12d426fbf8f602c', + state=tangerine_state, + task_id=90276315 if tangerine_state else None, + nvr='tangerine-0.22-3.{}'.format(build_one_component_release) + if tangerine_state else None, + tagged=tangerine_state == koji.BUILD_STATES['COMPLETE'], + tagged_in_final=tangerine_state == koji.BUILD_STATES['COMPLETE'], + ), + module_build_service.models.ComponentBuild( + package='module-build-macros', + scmurl='/tmp/module_build_service-build-macrosqr4AWH/SRPMS/module-build-' + 'macros-0.1-1.module_testmodule_master_20170109091357.src.rpm', + format='rpms', + task_id=90276181, + state=koji.BUILD_STATES['COMPLETE'], + nvr='module-build-macros-0.1-1.{}'.format(build_one_component_release), + batch=1, + tagged=True, + build_time_only=True, + ), + ]) with make_session(conf) as session: session.add(platform_br) - session.add(build_one) - session.add(component_one_build_one) - session.add(component_two_build_one) - session.add(component_three_build_one) - session.add(component_four_build_one) + session.add(module_build) session.commit() @@ -453,25 +423,28 @@ def reuse_component_init_data(): platform_br = module_build_service.models.ModuleBuild.query.get(1) - build_one = module_build_service.models.ModuleBuild() - build_one.name = 'testmodule' - build_one.stream = 'master' - build_one.version = 20170109091357 - build_one.state = BUILD_STATES['ready'] - build_one.ref_build_context = 'ac4de1c346dcf09ce77d38cd4e75094ec1c08eb0' - build_one.runtime_context = 'ac4de1c346dcf09ce77d38cd4e75094ec1c08eb0' - build_one.build_context = 'ac4de1c346dcf09ce77d38cd4e75094ec1c08eb1' - build_one.context = '78e4a6fd' - build_one.koji_tag = 'module-testmodule-master-20170109091357-78e4a6fd' - build_one.scmurl = 'https://src.stg.fedoraproject.org/modules/testmodule.git?#ff1ea79' - build_one.batch = 3 - build_one.owner = 'Tom Brady' - build_one.time_submitted = datetime(2017, 2, 15, 16, 8, 18) - build_one.time_modified = datetime(2017, 2, 15, 16, 19, 35) - build_one.time_completed = datetime(2017, 2, 15, 16, 19, 35) - build_one.rebuild_strategy = 'changed-and-after' + build_one = module_build_service.models.ModuleBuild( + name='testmodule', + stream='master', + version=20170109091357, + state=BUILD_STATES['ready'], + ref_build_context='ac4de1c346dcf09ce77d38cd4e75094ec1c08eb0', + runtime_context='ac4de1c346dcf09ce77d38cd4e75094ec1c08eb0', + build_context='ac4de1c346dcf09ce77d38cd4e75094ec1c08eb1', + context='78e4a6fd', + koji_tag='module-testmodule-master-20170109091357-78e4a6fd', + scmurl='https://src.stg.fedoraproject.org/modules/testmodule.git?#ff1ea79', + batch=3, + owner='Tom Brady', + time_submitted=datetime(2017, 2, 15, 16, 8, 18), + time_modified=datetime(2017, 2, 15, 16, 19, 35), + time_completed=datetime(2017, 2, 15, 16, 19, 35), + rebuild_strategy='changed-and-after', + ) + build_one_component_release = get_rpm_release(build_one) - mmd.set_version(build_one.version) + + mmd.set_version(int(build_one.version)) xmd = glib.from_variant_dict(mmd.get_xmd()) xmd['mbs']['scmurl'] = build_one.scmurl xmd['mbs']['commit'] = 'ff1ea79fc952143efeed1851aa0aa006559239ba' @@ -479,84 +452,81 @@ def reuse_component_init_data(): build_one.modulemd = to_text_type(mmd.dumps()) build_one.buildrequires.append(platform_br) - component_one_build_one = module_build_service.models.ComponentBuild() - component_one_build_one.package = 'perl-Tangerine' - component_one_build_one.scmurl = \ - ('https://src.fedoraproject.org/rpms/perl-Tangerine' - '?#4ceea43add2366d8b8c5a622a2fb563b625b9abf') - component_one_build_one.format = 'rpms' - component_one_build_one.task_id = 90276227 - component_one_build_one.state = koji.BUILD_STATES['COMPLETE'] - component_one_build_one.nvr = \ - 'perl-Tangerine-0.23-1.{0}'.format(build_one_component_release) - component_one_build_one.batch = 2 - component_one_build_one.module_id = 2 - component_one_build_one.ref = '4ceea43add2366d8b8c5a622a2fb563b625b9abf' - component_one_build_one.tagged = True - component_one_build_one.tagged_in_final = True - component_two_build_one = module_build_service.models.ComponentBuild() - component_two_build_one.package = 'perl-List-Compare' - component_two_build_one.scmurl = \ - ('https://src.fedoraproject.org/rpms/perl-List-Compare' - '?#76f9d8c8e87eed0aab91034b01d3d5ff6bd5b4cb') - component_two_build_one.format = 'rpms' - component_two_build_one.task_id = 90276228 - component_two_build_one.state = koji.BUILD_STATES['COMPLETE'] - component_two_build_one.nvr = \ - 'perl-List-Compare-0.53-5.{0}'.format(build_one_component_release) - component_two_build_one.batch = 2 - component_two_build_one.module_id = 2 - component_two_build_one.ref = '76f9d8c8e87eed0aab91034b01d3d5ff6bd5b4cb' - component_two_build_one.tagged = True - component_two_build_one.tagged_in_final = True - component_three_build_one = module_build_service.models.ComponentBuild() - component_three_build_one.package = 'tangerine' - component_three_build_one.scmurl = \ - ('https://src.fedoraproject.org/rpms/tangerine' - '?#fbed359411a1baa08d4a88e0d12d426fbf8f602c') - component_three_build_one.format = 'rpms' - component_three_build_one.task_id = 90276315 - component_three_build_one.state = koji.BUILD_STATES['COMPLETE'] - component_three_build_one.nvr = \ - 'tangerine-0.22-3.{0}'.format(build_one_component_release) - component_three_build_one.batch = 3 - component_three_build_one.module_id = 2 - component_three_build_one.ref = 'fbed359411a1baa08d4a88e0d12d426fbf8f602c' - component_three_build_one.tagged = True - component_three_build_one.tagged_in_final = True - component_four_build_one = module_build_service.models.ComponentBuild() - component_four_build_one.package = 'module-build-macros' - component_four_build_one.scmurl = \ - ('/tmp/module_build_service-build-macrosqr4AWH/SRPMS/module-build-' - 'macros-0.1-1.module_testmodule_master_20170109091357.src.rpm') - component_four_build_one.format = 'rpms' - component_four_build_one.task_id = 90276181 - component_four_build_one.state = koji.BUILD_STATES['COMPLETE'] - component_four_build_one.nvr = \ - 'module-build-macros-0.1-1.{0}'.format(build_one_component_release) - component_four_build_one.batch = 1 - component_four_build_one.module_id = 2 - component_four_build_one.tagged = True - component_four_build_one.build_time_only = True - - build_two = module_build_service.models.ModuleBuild() - build_two.name = 'testmodule' - build_two.stream = 'master' - build_two.version = 20170219191323 - build_two.state = BUILD_STATES['build'] - build_two.ref_build_context = 'ac4de1c346dcf09ce77d38cd4e75094ec1c08eb0' - build_two.runtime_context = 'ac4de1c346dcf09ce77d38cd4e75094ec1c08eb0' - build_two.build_context = 'ac4de1c346dcf09ce77d38cd4e75094ec1c08eb1' - build_two.context = 'c40c156c' - build_two.koji_tag = 'module-testmodule-master-20170219191323-c40c156c' - build_two.scmurl = 'https://src.stg.fedoraproject.org/modules/testmodule.git?#55f4a0a' - build_two.batch = 1 - build_two.owner = 'Tom Brady' - build_two.time_submitted = datetime(2017, 2, 19, 16, 8, 18) - build_two.time_modified = datetime(2017, 2, 19, 16, 8, 18) - build_two.rebuild_strategy = 'changed-and-after' + build_one.component_builds.extend([ + module_build_service.models.ComponentBuild( + package='perl-Tangerine', + scmurl='https://src.fedoraproject.org/rpms/perl-Tangerine' + '?#4ceea43add2366d8b8c5a622a2fb563b625b9abf', + format='rpms', + task_id=90276227, + state=koji.BUILD_STATES['COMPLETE'], + nvr='perl-Tangerine-0.23-1.{0}'.format(build_one_component_release), + batch=2, + ref='4ceea43add2366d8b8c5a622a2fb563b625b9abf', + tagged=True, + tagged_in_final=True, + ), + module_build_service.models.ComponentBuild( + package='perl-List-Compare', + scmurl='https://src.fedoraproject.org/rpms/perl-List-Compare' + '?#76f9d8c8e87eed0aab91034b01d3d5ff6bd5b4cb', + format='rpms', + task_id=90276228, + state=koji.BUILD_STATES['COMPLETE'], + nvr='perl-List-Compare-0.53-5.{0}'.format(build_one_component_release), + batch=2, + ref='76f9d8c8e87eed0aab91034b01d3d5ff6bd5b4cb', + tagged=True, + tagged_in_final=True, + ), + module_build_service.models.ComponentBuild( + package='tangerine', + scmurl='https://src.fedoraproject.org/rpms/tangerine' + '?#fbed359411a1baa08d4a88e0d12d426fbf8f602c', + format='rpms', + task_id=90276315, + state=koji.BUILD_STATES['COMPLETE'], + nvr='tangerine-0.22-3.{0}'.format(build_one_component_release), + batch=3, + ref='fbed359411a1baa08d4a88e0d12d426fbf8f602c', + tagged=True, + tagged_in_final=True, + ), + module_build_service.models.ComponentBuild( + package='module-build-macros', + scmurl='/tmp/module_build_service-build-macrosqr4AWH/SRPMS/module-build-' + 'macros-0.1-1.module_testmodule_master_20170109091357.src.rpm', + format='rpms', + task_id=90276181, + state=koji.BUILD_STATES['COMPLETE'], + nvr='module-build-macros-0.1-1.{0}'.format(build_one_component_release), + batch=1, + tagged=True, + build_time_only=True, + ), + ]) + + build_two = module_build_service.models.ModuleBuild( + name='testmodule', + stream='master', + version=20170219191323, + state=BUILD_STATES['build'], + ref_build_context='ac4de1c346dcf09ce77d38cd4e75094ec1c08eb0', + runtime_context='ac4de1c346dcf09ce77d38cd4e75094ec1c08eb0', + build_context='ac4de1c346dcf09ce77d38cd4e75094ec1c08eb1', + context='c40c156c', + koji_tag='module-testmodule-master-20170219191323-c40c156c', + scmurl='https://src.stg.fedoraproject.org/modules/testmodule.git?#55f4a0a', + batch=1, + owner='Tom Brady', + time_submitted=datetime(2017, 2, 19, 16, 8, 18), + time_modified=datetime(2017, 2, 19, 16, 8, 18), + rebuild_strategy='changed-and-after', + ) + build_two_component_release = get_rpm_release(build_two) - mmd.set_version(build_one.version) + + mmd.set_version(int(build_one.version)) xmd = glib.from_variant_dict(mmd.get_xmd()) xmd['mbs']['scmurl'] = build_one.scmurl xmd['mbs']['commit'] = '55f4a0a2e6cc255c88712a905157ab39315b8fd8' @@ -564,60 +534,49 @@ def reuse_component_init_data(): build_two.modulemd = to_text_type(mmd.dumps()) build_two.buildrequires.append(platform_br) - component_one_build_two = module_build_service.models.ComponentBuild() - component_one_build_two.package = 'perl-Tangerine' - component_one_build_two.scmurl = \ - ('https://src.fedoraproject.org/rpms/perl-Tangerine' - '?#4ceea43add2366d8b8c5a622a2fb563b625b9abf') - component_one_build_two.format = 'rpms' - component_one_build_two.batch = 2 - component_one_build_two.module_id = 3 - component_one_build_two.ref = '4ceea43add2366d8b8c5a622a2fb563b625b9abf' - component_two_build_two = module_build_service.models.ComponentBuild() - component_two_build_two.package = 'perl-List-Compare' - component_two_build_two.scmurl = \ - ('https://src.fedoraproject.org/rpms/perl-List-Compare' - '?#76f9d8c8e87eed0aab91034b01d3d5ff6bd5b4cb') - component_two_build_two.format = 'rpms' - component_two_build_two.batch = 2 - component_two_build_two.module_id = 3 - component_two_build_two.ref = '76f9d8c8e87eed0aab91034b01d3d5ff6bd5b4cb' - component_three_build_two = module_build_service.models.ComponentBuild() - component_three_build_two.package = 'tangerine' - component_three_build_two.scmurl = \ - ('https://src.fedoraproject.org/rpms/tangerine' - '?#fbed359411a1baa08d4a88e0d12d426fbf8f602c') - component_three_build_two.format = 'rpms' - component_three_build_two.batch = 3 - component_three_build_two.module_id = 3 - component_three_build_two.ref = 'fbed359411a1baa08d4a88e0d12d426fbf8f602c' - component_four_build_two = module_build_service.models.ComponentBuild() - component_four_build_two.package = 'module-build-macros' - component_four_build_two.scmurl = \ - ('/tmp/module_build_service-build-macrosqr4AWH/SRPMS/module-build-' - 'macros-0.1-1.module_testmodule_master_20170219191323.src.rpm') - component_four_build_two.format = 'rpms' - component_four_build_two.task_id = 90276186 - component_four_build_two.state = koji.BUILD_STATES['COMPLETE'] - component_four_build_two.nvr = \ - 'module-build-macros-0.1-1.{0}'.format(build_two_component_release) - component_four_build_two.batch = 1 - component_four_build_two.module_id = 3 - component_four_build_two.tagged = True - component_four_build_two.build_time_only = True + build_two.component_builds.extend([ + module_build_service.models.ComponentBuild( + package='perl-Tangerine', + scmurl='https://src.fedoraproject.org/rpms/perl-Tangerine' + '?#4ceea43add2366d8b8c5a622a2fb563b625b9abf', + format='rpms', + batch=2, + ref='4ceea43add2366d8b8c5a622a2fb563b625b9abf', + ), + module_build_service.models.ComponentBuild( + package='perl-List-Compare', + scmurl='https://src.fedoraproject.org/rpms/perl-List-Compare' + '?#76f9d8c8e87eed0aab91034b01d3d5ff6bd5b4cb', + format='rpms', + batch=2, + ref='76f9d8c8e87eed0aab91034b01d3d5ff6bd5b4cb', + ), + module_build_service.models.ComponentBuild( + package='tangerine', + scmurl='https://src.fedoraproject.org/rpms/tangerine' + '?#fbed359411a1baa08d4a88e0d12d426fbf8f602c', + format='rpms', + batch=3, + ref='fbed359411a1baa08d4a88e0d12d426fbf8f602c', + ), + module_build_service.models.ComponentBuild( + package='module-build-macros', + scmurl='/tmp/module_build_service-build-macrosqr4AWH/SRPMS/module-build-' + 'macros-0.1-1.module_testmodule_master_20170219191323.src.rpm', + format='rpms', + task_id=90276186, + state=koji.BUILD_STATES['COMPLETE'], + nvr='module-build-macros-0.1-1.{0}'.format(build_two_component_release), + batch=1, + tagged=True, + build_time_only=True, + ) + ]) with make_session(conf) as session: session.add(platform_br) session.add(build_one) - session.add(component_one_build_one) - session.add(component_two_build_one) - session.add(component_three_build_one) - session.add(component_four_build_one) session.add(build_two) - session.add(component_one_build_two) - session.add(component_two_build_two) - session.add(component_three_build_two) - session.add(component_four_build_two) session.commit() @@ -633,25 +592,23 @@ def reuse_shared_userspace_init_data(): mmd = Modulemd.Module().new_from_file(formatted_testmodule_yml_path) mmd.upgrade() - build_one = module_build_service.models.ModuleBuild() - build_one.name = mmd.get_name() - build_one.stream = mmd.get_stream() - build_one.version = mmd.get_version() - build_one.build_context = 'e046b867a400a06a3571f3c71142d497895fefbe' - build_one.runtime_context = '50dd3eb5dde600d072e45d4120e1548ce66bc94a' - build_one.state = BUILD_STATES['ready'] - build_one.modulemd = to_text_type(mmd.dumps()) - build_one.koji_tag = 'module-shared-userspace-f26-20170601141014-75f92abb' - build_one.scmurl = ('https://src.stg.fedoraproject.org/modules/testmodule.' - 'git?#7fea453') - build_one.batch = 16 - build_one.owner = 'Tom Brady' - build_one.time_submitted = datetime(2017, 2, 15, 16, 8, 18) - build_one.time_modified = datetime(2017, 2, 15, 16, 19, 35) - build_one.time_completed = datetime(2017, 2, 15, 16, 19, 35) - build_one.rebuild_strategy = 'changed-and-after' - - session.add(build_one) + module_build = module_build_service.models.ModuleBuild( + name=mmd.get_name(), + stream=mmd.get_stream(), + version=mmd.get_version(), + build_context='e046b867a400a06a3571f3c71142d497895fefbe', + runtime_context='50dd3eb5dde600d072e45d4120e1548ce66bc94a', + state=BUILD_STATES['ready'], + modulemd=to_text_type(mmd.dumps()), + koji_tag='module-shared-userspace-f26-20170601141014-75f92abb', + scmurl='https://src.stg.fedoraproject.org/modules/testmodule.git?#7fea453', + batch=16, + owner='Tom Brady', + time_submitted=datetime(2017, 2, 15, 16, 8, 18), + time_modified=datetime(2017, 2, 15, 16, 19, 35), + time_completed=datetime(2017, 2, 15, 16, 19, 35), + rebuild_strategy='changed-and-after', + ) components = list(mmd.get_rpm_components().values()) components.sort(key=lambda x: x.get_buildorder()) @@ -665,18 +622,21 @@ def reuse_shared_userspace_init_data(): pkgref = mmd.get_xmd()['mbs']['rpms'][pkg.get_name()]['ref'] full_url = pkg.get_repository() + "?#" + pkgref - build = module_build_service.models.ComponentBuild( - module_id=2, - package=pkg.get_name(), - format="rpms", - scmurl=full_url, - batch=batch, - ref=pkgref, - state=1, - tagged=True, - tagged_in_final=True - ) - session.add(build) + + module_build.component_builds.append( + module_build_service.models.ComponentBuild( + package=pkg.get_name(), + format="rpms", + scmurl=full_url, + batch=batch, + ref=pkgref, + state=1, + tagged=True, + tagged_in_final=True + )) + + session.add(module_build) + session.commit() # Create shared-userspace-577, state is WAIT, no component built formatted_testmodule_yml_path = os.path.join( @@ -684,25 +644,23 @@ def reuse_shared_userspace_init_data(): mmd2 = Modulemd.Module().new_from_file(formatted_testmodule_yml_path) mmd2.upgrade() - build_one = module_build_service.models.ModuleBuild() - build_one.name = mmd2.get_name() - build_one.stream = mmd2.get_stream() - build_one.version = mmd2.get_version() - build_one.build_context = 'e046b867a400a06a3571f3c71142d497895fefbe' - build_one.runtime_context = '50dd3eb5dde600d072e45d4120e1548ce66bc94a' - build_one.state = BUILD_STATES['done'] - build_one.modulemd = to_text_type(mmd2.dumps()) - build_one.koji_tag = 'module-shared-userspace-f26-20170605091544-75f92abb' - build_one.scmurl = ('https://src.stg.fedoraproject.org/modules/testmodule.' - 'git?#7fea453') - build_one.batch = 0 - build_one.owner = 'Tom Brady' - build_one.time_submitted = datetime(2017, 2, 15, 16, 8, 18) - build_one.time_modified = datetime(2017, 2, 15, 16, 19, 35) - build_one.time_completed = datetime(2017, 2, 15, 16, 19, 35) - build_one.rebuild_strategy = 'changed-and-after' - - session.add(build_one) + module_build = module_build_service.models.ModuleBuild( + name=mmd2.get_name(), + stream=mmd2.get_stream(), + version=mmd2.get_version(), + build_context='e046b867a400a06a3571f3c71142d497895fefbe', + runtime_context='50dd3eb5dde600d072e45d4120e1548ce66bc94a', + state=BUILD_STATES['done'], + modulemd=to_text_type(mmd2.dumps()), + koji_tag='module-shared-userspace-f26-20170605091544-75f92abb', + scmurl='https://src.stg.fedoraproject.org/modules/testmodule.git?#7fea453', + batch=0, + owner='Tom Brady', + time_submitted=datetime(2017, 2, 15, 16, 8, 18), + time_modified=datetime(2017, 2, 15, 16, 19, 35), + time_completed=datetime(2017, 2, 15, 16, 19, 35), + rebuild_strategy='changed-and-after', + ) components2 = list(mmd2.get_rpm_components().values()) # Store components to database in different order than for 570 to @@ -719,15 +677,18 @@ def reuse_shared_userspace_init_data(): pkgref = mmd2.get_xmd()['mbs']['rpms'][pkg.get_name()]['ref'] full_url = pkg.get_repository() + "?#" + pkgref - build = module_build_service.models.ComponentBuild( - module_id=3, - package=pkg.get_name(), - format="rpms", - scmurl=full_url, - batch=batch, - ref=pkgref - ) - session.add(build) + + module_build.component_builds.append( + module_build_service.models.ComponentBuild( + package=pkg.get_name(), + format="rpms", + scmurl=full_url, + batch=batch, + ref=pkgref + )) + + session.add(module_build) + session.commit() def make_module(nsvc, requires_list=None, build_requires_list=None, base_module=None, @@ -811,27 +772,26 @@ def make_module(nsvc, requires_list=None, build_requires_list=None, base_module= if not store_to_db: return mmd - module_build = ModuleBuild() - module_build.name = name - module_build.stream = stream - module_build.stream_version = module_build.get_stream_version(stream) - module_build.version = version - module_build.context = context - module_build.state = BUILD_STATES['ready'] - module_build.scmurl = 'https://src.stg.fedoraproject.org/modules/unused.git?#ff1ea79' - module_build.batch = 1 - module_build.owner = 'Tom Brady' - module_build.time_submitted = datetime(2017, 2, 15, 16, 8, 18) - module_build.time_modified = datetime(2017, 2, 15, 16, 19, 35) - module_build.rebuild_strategy = 'changed-and-after' - module_build.build_context = context - module_build.stream_build_context = context - module_build.runtime_context = context - module_build.modulemd = to_text_type(mmd.dumps()) + module_build = ModuleBuild( + name=name, + stream=stream, + stream_version=ModuleBuild.get_stream_version(stream), + version=version, + context=context, + state=BUILD_STATES['ready'], + scmurl='https://src.stg.fedoraproject.org/modules/unused.git?#ff1ea79', + batch=1, + owner='Tom Brady', + time_submitted=datetime(2017, 2, 15, 16, 8, 18), + time_modified=datetime(2017, 2, 15, 16, 19, 35), + rebuild_strategy='changed-and-after', + build_context=context, + runtime_context=context, + modulemd=to_text_type(mmd.dumps()), + koji_tag=xmd['mbs']['koji_tag'] if 'koji_tag' in xmd['mbs'] else None + ) if base_module: module_build.buildrequires.append(base_module) - if 'koji_tag' in xmd['mbs']: - module_build.koji_tag = xmd['mbs']['koji_tag'] db.session.add(module_build) db.session.commit()