Bug 928964 - unit_copy with --recursive option does not copy dependencies over
Summary: unit_copy with --recursive option does not copy dependencies over
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Pulp
Classification: Retired
Component: user-experience
Version: Master
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: 2.2.0
Assignee: Michael Hrivnak
QA Contact: Preethi Thomas
URL:
Whiteboard:
: 923406 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-03-28 20:29 UTC by Preethi Thomas
Modified: 2013-09-10 15:45 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-09-10 15:45:58 UTC
Embargoed:


Attachments (Terms of Use)

Description Preethi Thomas 2013-03-28 20:29:45 UTC
Description of problem:
[root@mgmt8 ~]# pulp-admin rpm repo copy rpm  --from-repo-id Repo1 --to-repo-id Repo3 --str-eq 'name=pulp-agent'  --recursive
Progress on this task can be viewed using the commands under "repo tasks".


2013-03-28 15:20:45,348 - INFO - POST request to /pulp/api/v2/repositories/Repo3/actions/associate/ with parameters {"source_repo_id": "Repo1", "override_config": {"recursive": true}, "criteria": {"type_ids": ["rpm"], "filters": {"unit": {"name": "pulp-agent"}}}}
2013-03-28 15:20:45,348 - INFO - Response status : 202 

2013-03-28 15:20:45,349 - INFO - Response body :
 {
  "task_group_id": null, 
  "call_request_id": "3e736328-ac6a-4dd3-abb8-f84a3065a110", 
  "exception": null, 
  "_href": "/pulp/api/v2/tasks/3e736328-ac6a-4dd3-abb8-f84a3065a110/", 
  "task_id": "3e736328-ac6a-4dd3-abb8-f84a3065a110", 
  "call_request_tags": [
    "pulp:repository:Repo3", 
    "pulp:repository:Repo1", 
    "pulp:action:associate"
  ], 
  "reasons": [], 
  "start_time": null, 
  "traceback": null, 
  "schedule_id": null, 
  "finish_time": null, 
  "state": "waiting", 
  "result": null, 
  "dependency_failures": {}, 
  "call_request_group_id": null, 
  "progress": {}, 
  "principal_login": "admin", 
  "response": "accepted", 
  "tags": [
    "pulp:repository:Repo3", 
    "pulp:repository:Repo1", 
    "pulp:action:associate"
  ]
}


<jdob> my guess is that it's sending the wrong flag
<jdob> it's called "resolve_dependencies" in the importer
<preethi> ah ok
<jdob> and IIRC, when I was in there changing stuff for copy (which is only in master), I think it's passing "recursive"

<jdob> yep, it's passing the wrong name for the flag
<jdob> for dep solving, it's "recursive" 
<jdob> for copying, it's "resolve_dependencies"
<preethi> ah ok
<jdob> which was fun to find since god forbid make a constant or some docs about it
* rbarlow is sad that they don't use the same variable for both so they are consistent :(
<jdob> preethi: file a new bug on it
<preethi> will do

<jdob> preethi: just file against master, it's a client-side thing that won't be needed for 2.1.1 and we'll get it in for 2.2
<preethi> ok

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:

Comment 1 Jay Dobies 2013-04-01 13:57:43 UTC
*** Bug 923406 has been marked as a duplicate of this bug. ***

Comment 2 Michael Hrivnak 2013-05-30 17:56:07 UTC
The --recursive option now works.

Comment 3 Michael Hrivnak 2013-06-03 13:26:29 UTC
https://github.com/pulp/pulp_rpm/pull/211

Comment 4 Jeff Ortel 2013-06-04 15:54:56 UTC
build: 2.2.0-0.1.beta

Comment 5 Preethi Thomas 2013-06-12 15:32:32 UTC
verified

[root@hp-dl360g6-01 ~]# rpm -q pulp-server
pulp-server-2.2.0-0.3.beta.fc18.noarch
[root@hp-dl360g6-01 ~]# 

repo copy rpm with --recursive no longer hangs. But it doesn't seem to be getting the dependencies for packages when recursive is specified.

[root@hp-dl360g6-01 ~]# pulp-admin rpm repo create --repo-id pulp --feed http://repos.fedorapeople.org/repos/pulp/pulp/v2/testing/fedora-18/x86_64/
Successfully created repository [pulp]


[root@hp-dl360g6-01 ~]# pulp-admin rpm repo create --repo-id pulp-copy
Successfully created repository [pulp-copy]

[root@hp-dl360g6-01 ~]# pulp-admin rpm repo sync run --repo-id pulp
+----------------------------------------------------------------------+
                    Synchronizing Repository [pulp]
+----------------------------------------------------------------------+

This command may be exited by pressing ctrl+c without affecting the actual
operation on the server.

Downloading metadata...
[\]
... completed

Downloading repository content...
[==================================================] 100%
RPMs:       43/43 items
Delta RPMs: 0/0 items

... completed

Downloading distribution files...
[==================================================] 100%
Distributions: 0/0 items
... completed

Importing errata...
[-]
... completed

Importing package groups/categories...
[-]
... completed

Publishing packages...
[==================================================] 100%
Packages: 43/43 items
... completed

Publishing distributions...
[==================================================] 100%
Distributions: 0/0 items
... completed

Generating metadata
[-]
... completed

Publishing repository over HTTPS
[-]
... completed

[root@hp-dl360g6-01 ~]#  pulp-admin rpm repo copy rpm  --from-repo-id pulp --to-repo-id pulp-copy --str-eq 'name=pulp-agent'  --recursive
This command may be exited via ctrl+c without affecting the request.

[-]
Waiting to begin...

[-]
Running...

Units:
  pulp-agent-2.2.0-0.3.beta.fc18-noarch

[root@hp-dl360g6-01 ~]#  pulp-admin rpm repo copy rpm  --from-repo-id pulp --to-repo-id pulp-copy --str-eq 'name=pulp-server'  --recursive
This command may be exited via ctrl+c without affecting the request.

[-]
Waiting to begin...

[-]
Running...

Units:
  pulp-server-2.2.0-0.3.beta.fc18-noarch



[root@hp-dl360g6-01 ~]# pulp-admin rpm repo content rpm --repo-id pulp-copy
Arch:         noarch
Buildhost:    localhost
Checksum:     c5696d1c96e776ff6c01b169f25f53f740b8925980e094d578ced6bba6b7ff6f
Checksumtype: sha256
Description:  Gofer provides an extensible, light weight, universal python
              agent. The gofer core agent is a python daemon (service) that
              provides infrastructure for exposing a remote API and for running
              Recurring Actions. The APIs contributed by plug-ins are accessible
              by Remote Method Invocation (RMI). The transport for RMI is AMQP
              using the QPID message broker. Actions are also provided by
              plug-ins and are executed at the specified interval.
Epoch:        0
Filename:     gofer-0.76-1.fc18.noarch.rpm
License:      LGPLv2
Name:         gofer
Provides:     config(gofer) = 0.76-1.fc18-0, gofer = 0.76-1.fc18-0
Release:      1.fc18
Requires:     /bin/bash, /bin/sh, /bin/sh, /usr/bin/env, python(abi) = 2.7-0,
              python-gofer = 0.76-0, python-iniparse
Vendor:       None
Version:      0.76

Arch:         x86_64
Buildhost:    localhost
Checksum:     542bf676cac004eebb0e10dfd21624aebf73f20d7bd6cc809a8f6f9977b7ae62
Checksumtype: sha256
Description:  This package allows you to call OpenSSL functions from python
              scripts.
Epoch:        0
Filename:     m2crypto-0.21.1.pulp-8.fc18.x86_64.rpm
License:      MIT
Name:         m2crypto
Provides:     m2crypto = 0.21.1.pulp-8.fc18-0, m2crypto(x86-64) =
              0.21.1.pulp-8.fc18-0
Release:      8.fc18
Requires:     libc.so.6(GLIBC_2.14)(64bit), libcrypto.so.10()(64bit),
              libcrypto.so.10(libcrypto.so.10)(64bit), libpthread.so.0()(64bit),
              libpthread.so.0(GLIBC_2.2.5)(64bit), libpython2.7.so.1.0()(64bit),
              libssl.so.10()(64bit), libssl.so.10(libssl.so.10)(64bit),
              python(abi) = 2.7-0, rtld(GNU_HASH)
Vendor:       None
Version:      0.21.1.pulp

Arch:         x86_64
Buildhost:    localhost
Checksum:     dbb8e0946308ad6bb5460088c811a988fb6173c1ef2b7e5b013ea4ef00ac3095
Checksumtype: sha256
Description:  The mod_wsgi adapter is an Apache module that provides a WSGI
              compliant interface for hosting Python based web applications
              within Apache. The adapter is written completely in C code against
              the Apache C runtime and for hosting WSGI applications within
              Apache has a lower overhead than using existing WSGI adapters for
              mod_python or CGI.
Epoch:        0
Filename:     mod_wsgi-3.4-1.pulp.fc18.x86_64.rpm
License:      ASL 2.0
Name:         mod_wsgi
Provides:     config(mod_wsgi) = 3.4-1.pulp.fc18-0, mod_wsgi =
              3.4-1.pulp.fc18-0, mod_wsgi(x86-64) = 3.4-1.pulp.fc18-0,
              mod_wsgi.so()(64bit)
Release:      1.pulp.fc18
Requires:     libc.so.6(GLIBC_2.14)(64bit), libdl.so.2()(64bit),
              libm.so.6()(64bit), libpthread.so.0()(64bit),
              libpthread.so.0(GLIBC_2.2.5)(64bit), libpython2.7.so.1.0()(64bit),
              libutil.so.1()(64bit), rtld(GNU_HASH)
Vendor:       None
Version:      3.4

Arch:         noarch
Buildhost:    localhost
Checksum:     65479024c7d9b1aa9f728352bd4355ae1d2f716167e9c93eea645e27546deabe
Checksumtype: sha256
Description:  The pulp agent, used to provide remote command & control and
              scheduled actions such as reporting installed content profiles on
              a defined interval.
Epoch:        0
Filename:     pulp-agent-2.2.0-0.3.beta.fc18.noarch.rpm
License:      GPLv2
Name:         pulp-agent
Provides:     config(pulp-agent) = 2.2.0-0.3.beta.fc18-0, pulp-agent =
              2.2.0-0.3.beta.fc18-0
Release:      0.3.beta.fc18
Requires:     gofer >= 0.76-0, pulp-consumer-client = 2.2.0-0,
              python-pulp-agent-lib = 2.2.0-0, python-pulp-bindings = 2.2.0-0
Vendor:       None
Version:      2.2.0

Arch:         noarch
Buildhost:    localhost
Checksum:     6b270e1f5eb09ac32a9982dc87f18195c696777c4717adc9c9ce442c892dd78a
Checksumtype: sha256
Description:  Pulp provides replication, access, and accounting for software
              repositories.
Epoch:        0
Filename:     pulp-server-2.2.0-0.3.beta.fc18.noarch.rpm
License:      GPLv2
Name:         pulp-server
Provides:     config(pulp-server) = 2.2.0-0.3.beta.fc18-0, pulp-server =
              2.2.0-0.3.beta.fc18-0
Release:      0.3.beta.fc18
Requires:     /bin/bash, /usr/bin/env, /usr/bin/python, acl, crontabs,
              genisoimage, httpd, m2crypto >= 0.21.1.pulp-7-0, mod_ssl, mod_wsgi
              >= 3.4-1.pulp-0, mongodb, mongodb-server, nss-tools, openssl,
              pymongo >= 2.1.1-0, python(abi) = 2.7-0, python-BeautifulSoup,
              python-gofer >= 0.76-0, python-httplib2, python-isodate >=
              0.5.0-1.pulp-0, python-ldap, python-nectar >= 0.99-0,
              python-oauth2 >= 1.5.170-2.pulp-0, python-okaara >= 1.0.32-0,
              python-pulp-common = 2.2.0-0, python-qpid, python-setuptools,
              python-webpy, qpid-cpp-server
Vendor:       None
Version:      2.2.0

Arch:         noarch
Buildhost:    localhost
Checksum:     14aa91e0ff76dfbeb8b43d968caae20c6b32509032c0c9dd513b6419b1774284
Checksumtype: sha256
Description:  Contains gofer python lib modules.
Epoch:        0
Filename:     python-gofer-0.76-1.fc18.noarch.rpm
License:      LGPLv2
Name:         python-gofer
Provides:     python-gofer = 0.76-1.fc18-0
Release:      1.fc18
Requires:     PyPAM, python(abi) = 2.7-0, python-qpid >= 0.7-0,
              python-simplejson
Vendor:       None
Version:      0.76

Arch:         noarch
Buildhost:    localhost
Checksum:     1c2f54e518c0c138ff69928eb3e469489f03c985732d7184c66718b1debb3ddf
Checksumtype: sha256
Description:  This module implements ISO 8601 date, time and duration parsing.
              The implementation follows ISO8601:2004 standard, and implements
              only date/time representations mentioned in the standard. If
              something is not mentioned there, then it is treated as non
              existent, and not as an allowed option.  For instance,
              ISO8601:2004 never mentions 2 digit years. So, it is not intended
              by this module to support 2 digit years. (while it may still be
              valid as ISO date, because it is not explicitly forbidden.)
              Another example is, when no time zone information is given for a
              time, then it should be interpreted as local time, and not UTC. 
              As this module maps ISO 8601 dates/times to standard Python data
              types, like *date*, *time*, *datetime* and *timedelta*, it is not
              possible to convert all possible ISO 8601 dates/times. For
              instance, dates before 0001-01-01 are not allowed by the Python
              *date* and *datetime* classes. Additionally fractional seconds are
              limited to microseconds. That means if the parser finds for
              instance nanoseconds it will round it to microseconds.
Epoch:        0
Filename:     python-isodate-0.5.0-1.pulp.fc18.noarch.rpm
License:      BSD
Name:         python-isodate
Provides:     python-isodate = 0.5.0-1.pulp.fc18-0
Release:      1.pulp.fc18
Requires:     python(abi) = 2.7-0
Vendor:       None
Version:      0.5.0

Arch:         noarch
Buildhost:    localhost
Checksum:     77731b3c24045cc6d93228c4bb7145fe638edff81b859a345f5d1bbad1a82c8c
Checksumtype: sha256
Description:  Performance tuned network download client library
Epoch:        0
Filename:     python-nectar-0.99-1.fc18.noarch.rpm
License:      GPLv2
Name:         python-nectar
Provides:     python-nectar = 0.99-1.fc18-0
Release:      1.fc18
Requires:     python(abi) = 2.7-0, python-eventlet >= 0.9.17-0, python-isodate
              >= 0.4.9-0, python-pycurl >= 7.19.0-0, python-requests >= 1.1.0-0
Vendor:       None
Version:      0.99

Arch:         noarch
Buildhost:    localhost
Checksum:     13909685a86b16138f6718e2359ffb59c1176389f1c2b38942f18774656b085c
Checksumtype: sha256
Description:  Oauth2 was originally forked from Leah Culver and Andy Smith's
              oauth.py code. Some of the tests come from a fork by Vic Fryzel,
              while a revamped Request class and more tests were merged in from
              Mark Paschal's fork. A number of notable differences exist between
              this code and its forefathers:  - 100% unit test coverage. - The
              DataStore object has been completely ripped out. While creating
              unit   tests for the library I found several substantial bugs with
              the   implementation and confirmed with Andy Smith that it was
              never fully   baked. - Classes are no longer prefixed with OAuth.
              - The Request class now extends from dict. - The library is likely
              no longer compatible with Python 2.3. - The Client class works and
              extends from httplib2. It's a thin wrapper   that handles
              automatically signing any normal HTTP request you might   wish to
              make.
Epoch:        0
Filename:     python-oauth2-1.5.170-3.pulp.fc18.noarch.rpm
License:      MIT
Name:         python-oauth2
Provides:     python-oauth2 = 1.5.170-3.pulp.fc18-0
Release:      3.pulp.fc18
Requires:     python(abi) = 2.7-0, python-httplib2
Vendor:       None
Version:      1.5.170

Arch:         noarch
Buildhost:    localhost
Checksum:     bc5fc21c85cef88cc3c3d2c5f155c72e1b808f5f55b1b00fb8c8ca32475a53bd
Checksumtype: sha256
Description:  Python library to facilitate the creation of command-line
              interfaces.
Epoch:        0
Filename:     python-okaara-1.0.32-1.fc18.noarch.rpm
License:      GPLv2
Name:         python-okaara
Provides:     python-okaara = 1.0.32-1.fc18-0
Release:      1.fc18
Requires:     python(abi) = 2.7-0
Vendor:       None
Version:      1.0.32

Arch:         noarch
Buildhost:    localhost
Checksum:     5f0bcd76247504a8a0eddf5c2335f02a7e50e05d03c35c17cff5baa9d053585b
Checksumtype: sha256
Description:  The Apache Qpid Python client library for AMQP.
Epoch:        0
Filename:     python-qpid-0.7.946106-2.fc18.noarch.rpm
License:      ASL 2.0
Name:         python-qpid
Provides:     python-qpid = 0.7.946106-2.fc18-0
Release:      2.fc18
Requires:     /usr/bin/env, /usr/bin/python, python(abi) = 2.7-0
Vendor:       None
Version:      0.7.946106

Arch:         noarch
Buildhost:    localhost
Checksum:     7db70eaae4a0a2f69825da1eda5c24d1b316ab3ffc9cf4e45ea1a78cb1f1cf08
Checksumtype: sha256
Description:  web.py is a web framework for python that is as simple as it is
              powerful. web.py is in the public domain; you can use it for
              whatever purpose with absolutely no restrictions.
Epoch:        0
Filename:     python-webpy-0.32-9.fc18.noarch.rpm
License:      Public Domain and BSD
Name:         python-webpy
Provides:     python-webpy = 0.32-9.fc18-0
Release:      9.fc18
Requires:     python(abi) = 2.7-0
Vendor:       None
Version:      0.32

Comment 6 Preethi Thomas 2013-09-10 15:45:58 UTC
2.2 released
http://repos.fedorapeople.org/repos/pulp/pulp/stable/2.2/


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