Issue #6442

Updated by ttereshc about 4 years ago

Upload of an advisory raises `invalid literal for int() with base 10: 'sha256'` if checksum type is specified. 

 An example of advisory which triggers the error. 
   "id": "my_advisory_id", 
   "updated_date": "2014-06-10 00:00:00", 
   "description": "description", 
   "issued_date": "2014-06-10 00:00:00", 
   "fromstr": "me", 
   "status": "final", 
   "title": "kexec-tools bug fix update", 
   "summary": "summary", 
   "version": "1", 
   "type": "bugfix", 
   "severity": "", 
   "solution": "solution", 
   "release": "", 
   "rights": "Copyright 2014", 
   "pushcount": "1", 
   "pkglist": [ 
       "name": "long namet", 
       "shortname": "short name", 
       "packages": [ 
           "arch": "x86_64", 
           "epoch": "0", 
           "filename": "kexec-tools-2.0.4-32.el7_0.1.x86_64.rpm", 
           "name": "kexec-tools", 
           "reboot_suggested": false, 
           "relogin_suggested": false, 
           "restart_suggested": false, 
           "release": "32.el7_0.1", 
           "src": "kexec-tools-2.0.4-32.el7_0.1.src.rpm", 
           "sum": "8e214681104e4ba73726e0ce11d21b963ec0390fd70458d439ddc72372082034", 
           "sum_type": "sha256", 
           "version": "2.0.4" 
   "references": [ 
       "href": "", 
       "id": "", 
       "title": "my advisory", 
       "type": "bugzilla" 
   "reboot_suggested": false 

 ### Proposed solution 

 Currently, sum_type is a TextField which stores an id(int) of checksum type as it defined in createrepo_c. 
 The suggestion is: 
  - change a filed type and store an integer value in the PositiveIntegerField with choices, values for which are taken from what is supported in createrpo_c. 
  - write a migration to convert the field to integer 
  - convert a string representing checksum type to a createrepo_c id during upload