Bug 40674

Summary: univention-app upgrade fails in some cases
Product: UCS Reporter: Dirk Wiesenthal <wiesenthal>
Component: App CenterAssignee: Dirk Wiesenthal <wiesenthal>
Status: CLOSED FIXED QA Contact: Florian Best <best>
Severity: normal    
Priority: P5 CC: walkenhorst
Version: UCS 4.1   
Target Milestone: UCS 4.1-1-errata   
Hardware: Other   
OS: Linux   
What kind of report is it?: --- What type of bug is this?: ---
Who will be affected by this bug?: --- How will those affected feel about the bug?: ---
User Pain: Enterprise Customer affected?:
School Customer affected?: ISV affected?:
Waiting Support: Flags outvoted (downgraded) after PO Review:
Ticket number: Bug group (optional):
Max CVSS v3 score:
Bug Depends on:    
Bug Blocks: 40675    

Description Dirk Wiesenthal univentionstaff 2016-02-16 17:14:22 CET
def _install_packages(self, packages, percentage_end, update=True)

does not return a proper Process object when upgrading an App. This leads to errors. Can happen when univention-upgrade is called.
Comment 1 Dirk Wiesenthal univentionstaff 2016-02-17 11:59:23 CET
Fixed in
  univention-appcenter 5.0.20-2.113.201602161759

Reproduce:
  univention-app install openvpn4ucs=1.1.4
  univention-app upgrade openvpn4ucs
Comment 2 Florian Best univentionstaff 2016-02-17 12:19:30 CET
Got this traceback when reproducing:

Traceback (most recent call last):
  File "/usr/bin/univention-app", line 86, in <module>
    main()
  File "/usr/bin/univention-app", line 76, in main
    ret = args.func(args)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/__init__.py", line 182, in call_with_namespace
    result = self.main(namespace)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/upgrade.py", line 68, in main
    return self.do_it(args)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/install_base.py", line 107, in do_it
    self._do_it(app, args)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/docker_upgrade.py", line 84, in _do_it
    return super(Upgrade, self)._do_it(app, args)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/install.py", line 73, in _do_it
    if self._install_app(app, args):
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/docker_install.py", line 53, in _install_app
    return super(Install, self)._install_app(app, args)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/install.py", line 138, in _install_app
    self._install_master_packages(app, 30)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/install.py", line 89, in _install_master_packages
    ucr_save(self._register_component_dict(self, old_app, server))
TypeError: _register_component_dict() takes exactly 3 arguments (4 given)
Comment 3 Florian Best univentionstaff 2016-02-17 12:32:04 CET
REOPEN: The code still looks broken.
What should have happen when I reproduce this in your way mentioned above?
Comment 4 Dirk Wiesenthal univentionstaff 2016-02-17 14:19:54 CET
Please use:

univention-app install kix4otrs6=6.1.11-0
univention-app upgrade kix4otrs6

The traceback you mention is another Bug: Bug#40713
Comment 5 Florian Best univentionstaff 2016-02-18 15:22:18 CET
Traceback (most recent call last):
  File "/usr/bin/univention-app", line 86, in <module>
    main()
  File "/usr/bin/univention-app", line 76, in main
    ret = args.func(args)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/__init__.py", line 182, in call_with_namespace
    result = self.main(namespace)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/upgrade.py", line 68, in main
    args.app = app
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/install_base.py", line 107, in do_it
    self._do_it(app, args)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/docker_upgrade.py", line 84, in _do_it
    return super(Upgrade, self)._do_it(app, args)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/install.py", line 73, in _do_it
    if self._install_app(app, args):
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/docker_install.py", line 53, in _install_app
    return super(Install, self)._install_app(app, args)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/install.py", line 145, in _install_app
    install_master = True
AttributeError: 'NoneType' object has no attribute 'returncode'
Comment 6 Florian Best univentionstaff 2016-02-18 16:49:46 CET
OK: reproduced (comment #5)
OK: fixed
OK: YAML
Comment 7 Janek Walkenhorst univentionstaff 2016-02-24 13:06:50 CET
<http://errata.software-univention.de/ucs/4.1/118.html>