Bug 1413145

Summary: Hammer - Unable to remove repo content using repo name if more than one repository with same name exists
Product: Red Hat Satellite Reporter: Stanislav Tkachenko <stkachen>
Component: RepositoriesAssignee: Swapnil Abnave <sabnave>
Status: CLOSED DUPLICATE QA Contact: Katello QA List <katello-qa-list>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.3.0CC: akofink, bbuckingham, dhlavacd, jcallaha, sabnave, tstrachota
Target Milestone: UnspecifiedKeywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-03-09 19:46:00 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Stanislav Tkachenko 2017-01-13 18:07:27 UTC
Description of problem:
Unable to remove repo content using repo name if more than one repository with same name exists.
If more than one repo with the same name but in different products/organizations exists, it is not possible to remove its content using repo name via hammer.
Most of the `repository` subcommands allows to specify --product/--product-id and --organization/--organization-id but `remove-content` allows to provide only repo's --name or --id.

> hammer> repository remove-content --help  
> Usage:
>     repository remove-content [OPTIONS]
> Options:
>  --id ID                       repository ID
>  --ids IDS                     Array of content ids to remove
>                               Comma separated list of values.
> --name NAME                   Repository name to search by
> -h, --help                    print help
> hammer> 

> repository create --name a --product 1 --content-type yum --url http://inecas.fedorapeople.org/fakerepos/zoo3/ --organization-id 1
> repository create --name a --product 2 --content-type yum --url http://inecas.fedorapeople.org/fakerepos/zoo3/ --organization-id 1
> repository synchronize --name a --product 1 --organization-id 1
> repository synchronize --name a --product 2 --organization-id 1
> repository remove-content --name a --ids 4403  
> Could not remove content:
>  Error: found more than one repository
> repository remove-content --name a --ids 4403 --product 1 --organization-id=1
> Could not remove content:
>  Error: Unrecognised option '--product'



Version-Release number of selected component (if applicable):
Satellite 6.3.0 Snap 8.0 / Foreman 1.13.2.2
tfm-rubygem-hammer_cli_foreman-0.8.0-1

How reproducible:
Always

Steps to Reproduce:
1. Create 2 repos with the same name but in different products
2. Try to remove content providing only repo name
3. Try to remove content providing repo name and product or organization name/id

Actual results:
Error `found more than one repository` or
Error `Unrecognised option '--product`

Expected results:
It should be possible to specify organization/product like for other repository subcommands.


Additional info:

Comment 2 Swapnil Abnave 2017-02-17 07:08:16 UTC
> Actual results:
> Error `found more than one repository` or
This seems to work as expected. To avoid the ambiguity you need to provide '--id'(repository-id) to identify repository of which content is to be removed.

$ hl repository remove-content --name yum-repo --id 21 --ids 39

> Error `Unrecognised option '--product`
This probably is an RFE. Right now the API(/apidoc/v2/repositories/remove_content.html
) does not accept product/product-id as an option.

$ hl repository remove-content --help
Usage:
    hammer repository remove-content [OPTIONS]

Options:
 --id ID                       repository ID
 --ids IDS                     Array of content ids to remove
                               Comma separated list of values. Values containing comma should be double quoted
 --name NAME                   Repository name to search by
 -h, --help                    print help

Comment 3 Stanislav Tkachenko 2017-02-17 07:53:41 UTC
Yes, error when only repo name is specified is expected. However, lack of --product option seems to me as a bug rather than RFE. All repository  subcommands (create/update/delete/info etc) accept (and require) --product or --product-id when only repo name is specified. Without --product --name option absolutely useless.

Comment 4 Swapnil Abnave 2017-02-20 15:01:20 UTC
(In reply to Stanislav Tkachenko from comment #3)
> Yes, error when only repo name is specified is expected. However, lack of
> --product option seems to me as a bug rather than RFE. All repository 
> subcommands (create/update/delete/info etc) accept (and require) --product
> or --product-id when only repo name is specified. Without --product --name
> option absolutely useless.

Gotcha, makes sense. Created foreman issue http://projects.theforeman.org/issues/18572

Comment 5 Andrew Kofink 2017-03-09 19:46:00 UTC

*** This bug has been marked as a duplicate of bug 1416868 ***