Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1691445 - python2-impacket removal breaks salt-cloud (v2018.3.4) [NEEDINFO]
Summary: python2-impacket removal breaks salt-cloud (v2018.3.4)
Keywords:
Status: MODIFIED
Alias: None
Product: Fedora EPEL
Classification: Fedora
Component: python-impacket
Version: epel7
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Michal Ambroz
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-03-21 15:46 UTC by Infant Vinay
Modified: 2020-01-15 17:17 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
rebus: needinfo? (infantvin)


Attachments (Terms of Use)

Description Infant Vinay 2019-03-21 15:46:06 UTC
Description of problem:

In the recent update for RHEL 7.6 about a week ago, it looks like the python2-impacket package provided in EPEL is being deprecated during a yum update process.

Due to this the salt-cloud command which uses impacket breaks as there is no replacement like pypsexec and smbprotocol provided as a replacement to transfer files to Windows minions created while using salt-cloud.

Reference: https://docs.saltstack.com/en/latest/topics/cloud/windows.html


Will you be making pypsexec and smbprotocol available so that we can start using them?

Are they available in a different RHEL7 repository from the official Redhat repos in subscription-manager?

Please let us know. 

Version-Release number of selected component (if applicable):
epel-release-7-11

How reproducible:

Always.

Steps to Reproduce:
1. Create a RHEL 7.4 system and install salt-cloud using python2-impacket and winexe packages with salt and salt-cloud v 2018.3.4
2. Create Windows minions with salt-cloud to test. Files copy successfully to the created minion using impacket and winexe.
3. Run yum update to install latest updates
4. Retry step 2 post the reboot. It will fail saying python2-impacket is not installed. This is because this package has been deprecated during the yum update. salt-cloud does not function because of this issue.

From the yum update messages:

Package python-impacket.noarch 0:0.9.14-3.el7 will be obsoleted

When we search the yum repos we have none of the replacement packages mentioned in the link given above (https://docs.saltstack.com/en/latest/topics/cloud/windows.html)

Actual results:

salt-cloud fails with error saying it cannot copy the minion exe to the Windows system created asking you to install python2-impacket. Since this package is deprecated by the update, it is unable to be used neither can the replacement packages like pypsexec and smbprotocol be used.

Expected results:

Normally the salt-cloud command should succeed and create the Windows VM and connect it to the salt-master.

Additional info:

Please let me know if you need any more. We had to revert to a snapshot to get this issue fixed.

Comment 1 Raphael Groner 2019-03-25 19:23:27 UTC
No idea what this bug has to do with python-pyvmomi. 
Reassigning in assumption this was reported in error and should better go against python-impact as the title implies.

Comment 2 Michal Ambroz 2019-04-04 20:14:27 UTC
The python-impacket package was removed from Fedora master due to not working support for python3. But this should not affect the epel and the python2-impacket package neede for the saltcloud.
https://src.fedoraproject.org/rpms/python-impacket/c/3cdb1dd4b08e63f427d10a16a7bb786c17008a64?branch=master

I know there is some ongoing effort to rebuild epel python packages, but that should be affecting only python3 packages (move from python3.4 to python3.6)

So I really do not know what this could be.

According to the list of packages - there should be served python2-impacket-0.9.18-3.el7 for the EPEL
https://apps.fedoraproject.org/packages/python-impacket

The python-impacket-0.9.14-3.el7 you probably got from the saltstack repository right?
https://repo.saltstack.com/yum/redhat/7/x86_64/2016.11/ perhaps?

The dependencies should be resolved and python2-impacket-0.9.18-3.el7 should be valid replacement for python-impacket-0.9.14-3.el7.
The python-impacket declared it provides python-impacket = 0.9.14-3.el7, the python2-impacket-0.9.18-3.el7 should match that as it provides both python-impacket and python2-impacket
rpm -q --provides python2-impacket
impacket = 0.9.18-3.el7
python-impacket = 0.9.18-3.el7
python2-impacket = 0.9.18-3.el7

Can you try to install python2-impacket manually? Does that work for you?
yum install python2-impacket

This could be issue with missing the EPEL repository or the EPEL signing key, please can you doublecheck you have it installed?
If not installed install with:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
# Chicken-egg problem - the file should come from epel-release package
rpm --import https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
rpm -Uhv https://download.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm


Another issue could be some dependency missing - like python-flask which comes from the RHEL Extra repository.
Do you have that repository enabled?

Best regards
Michal Ambroz

Comment 3 Infant Vinay 2019-04-09 13:15:20 UTC
Hi Michal

Sorry that I haven't responded to what you posted previously. However I have what you said on a todo list.
Currently the salt master where I can try what you have suggested is being used for some testing. I need sometime before I can try what you said and let you know if it works.


Could you please give me 2 weeks before I can get back to you? I will try to do so earlier if I can.


Thanks

- Infant

Comment 4 Infant Vinay 2019-04-15 16:07:12 UTC
Hi Michal

I got sometime to test this on the salt-master.

Here is what I found.

1) In the working condition, the salt-cloud command is using python-impacket provided by the saltstack repository.

# yum info python-impacket-0.9.14-3.el7.noarch
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Installed Packages
Name        : python-impacket
Arch        : noarch
Version     : 0.9.14
Release     : 3.el7
Size        : 9.4 M
Repo        : installed
From repo   : Saltstack


2) If we do a yum update, it obsoletes the python-impacket from saltstack and installs python2-impacket from EPEL since this package is of a higher version.
Once this happens, salt-cloud commands to create Windows VMs fail with the error as below

# salt-cloud -m map-file xxxx.xxx.com
The following virtual machines are set to be created:
  xxxx.xxx.comm

Proceed? [N/y] y
... proceeding
[ERROR   ] Please install impacket to enable SMB functionality
[ERROR   ] Failed to start Salt on host xxxx.xxx.com
[ERROR   ] Failed to create VM xxxx.xxx.com. Configuration value u'deploy_kwargs' needs to be set
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/salt/cloud/__init__.py", line 1284, in create
    output = self.clouds[func](vm_)
  File "/usr/lib/python2.7/site-packages/salt/cloud/clouds/vmware.py", line 2827, in create
    data['deploy_kwargs'] = out['deploy_kwargs']
KeyError: u'deploy_kwargs'
xxxxx.xxxx.com:
    ----------

3) If we remove python2-impacket provided by EPEL and try to install python-impacket which was present previously and worked, it will default to the EPEL package of python2-impacket since python-impacket is obsolete.

# yum install python-impacket.noarch
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Package python-impacket is obsoleted by python2-impacket, trying to install python2-impacket-0.9.18-3.el7.noarch instead
Resolving Dependencies
--> Running transaction check
---> Package python2-impacket.noarch 0:0.9.18-3.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================
 Package                     Arch              Version                  Repository       Size
==============================================================================================
Installing:
 python2-impacket            noarch            0.9.18-3.el7             EPEL            1.8 M

Transaction Summary
==============================================================================================
Install  1 Package

Total download size: 1.8 M
Installed size: 9.3 M
Is this ok [y/d/N]:

Workaround that I found is

# yum --setopt=obsoletes=0 install python-impacket

This forces the older saltstack repo impacket package to install.

NOTE:

We don't need to even do a yum update, if we remove python-impacket and install python2-impacket from EPEL repo, this issue will show up.

So, it looks like the root of the issue is python2-impacket from EPEL is causing something within the salt-cloud commands to break. Not sure if there is some missing link/module. Can you confirm what you find?

If you need any logs or information from the system in question, please do let me know.

- Infant

Comment 5 Fedora Admin XMLRPC Client 2020-01-15 17:17:48 UTC
This package has changed maintainer in the Fedora.
Reassigning to the new maintainer of this component.


Note You need to log in before you can comment on or make changes to this bug.