#368 Couple of bugfixes for APIv3
Merged 5 years ago by clime. Opened 5 years ago by frostyx.
copr/ frostyx/copr fix-apiv3  into  master

@@ -19,7 +19,8 @@ 

  

  def to_dict(package):

      source_dict = package.source_json_dict

-     source_dict["source_build_method"] = source_dict.pop("srpm_build_method", None)

+     if "srpm_build_method" in source_dict:

+         source_dict["source_build_method"] = source_dict.pop("srpm_build_method")

      return {

          "id": package.id,

          "name": package.name,

@@ -207,6 +207,7 @@ 

  @api_login_required

  def delete_project(ownername, projectname):

      copr = get_copr(ownername, projectname)

+     copr_dict = to_dict(copr)

      form = forms.APICoprDeleteForm(csrf_enabled=False)

  

      if form.validate_on_submit() and copr:
@@ -220,4 +221,4 @@ 

              db.session.commit()

      else:

          raise BadRequest(form.errors)

-     return flask.jsonify(to_dict(copr))

+     return flask.jsonify(copr_dict)

@@ -107,7 +107,7 @@ 

  

      def edit(self, ownername, projectname, chroots=None, description=None, instructions=None, homepage=None,

               contact=None, additional_repos=None, unlisted_on_hp=None, enable_net=None,

-              auto_prune=None, use_bootstrap_container=None):

+              auto_prune=None, use_bootstrap_container=None, devel_mode=None):

          """

          Edit a project

  
@@ -123,6 +123,7 @@ 

          :param bool enable_net: if builder can access net for builds in this project

          :param bool auto_prune: if backend auto-deletion script should be run for the project

          :param bool use_bootstrap_container: if mock bootstrap container is used to initialize the buildroot

+         :param bool devel_mode: if createrepo should run automatically

          :return: Munch

          """

          endpoint = "/project/edit/{ownername}/{projectname}"
@@ -141,6 +142,7 @@ 

              "enable_net": enable_net,

              "auto_prune": auto_prune,

              "use_bootstrap_container": use_bootstrap_container,

+             "devel_mode": devel_mode,

          }

          request = Request(endpoint, api_base_url=self.api_base_url, method=POST,

                            params=params, data=data, auth=self.auth)

I've been working on copr-cli rewrite in order to use APIv3 client in it. Through beaker tests, I've discovered a couple of bugs.

  • When package source is empty (e.g. after package reset), we don't send {} as source_dict
  • Project deletion always deletes a project but ends with an error because it tries to access it's properties after it is gone
  • Devel mode (aka disable_createrepo) is possible to set when creating a project, but it is not possible to edit.

This PR fixes it.

LGTM. The description for devel_mode in doc string is not very precise but that's just a detail.

Pull-Request has been merged by clime

5 years ago