[Pulp-list] pulp-cli migration plan create FAIL

Ben Stanley ben.stanley at gmail.com
Thu May 13 03:06:32 UTC 2021


Matthias,

Thank you for this information. The output from those commands allowed 
me to identify where the file repositories are published. 
https://honeybee/pulp/content/file-repository-name/

Using that information, I was able to load the repository page and see 
the contents in my web browser (provided I knew the repository name from 
the pulp file distribution list command).

However, pulp2 allowed me to browse the list of published repositories 
directly. Can I do that with pulp3?

Should I be using Katello as a front end to provide some kind of user 
interface for pulp3? This seems very hard, even by pulp2 standards.

Ben.

On 12/5/21 6:36 pm, Matthias Dellweg wrote:
> Can you try to see, whether any of the following commands show the 
> expected entities?
> pulp file remote list
> pulp file repository list
> pulp file publication list
> pulp file distribution list
> pulp migration pulp2 repository list
>
> On Wed, May 12, 2021 at 9:43 AM Ben Stanley <ben.stanley at gmail.com 
> <mailto:ben.stanley at gmail.com>> wrote:
>
>     Please see responses inline.
>
>     On 6/5/21 8:15 pm, Matthias Dellweg wrote:
>>
>>
>>     On Thu, May 6, 2021 at 2:32 AM Ben Stanley <ben.stanley at gmail.com
>>     <mailto:ben.stanley at gmail.com>> wrote:
>>
>>         I have changed my ~/.config/pulp/settings.toml file as follows:
>>
>>         Old: base_url = "http://honeybee" <http://honeybee>
>>         New: base_url = "https://honeybee" <https://honeybee>
>>
>>         The old setting was created in accordance with instructions
>>         at
>>         https://github.com/pulp/pulp-cli/blob/develop/docs/install.md
>>         <https://github.com/pulp/pulp-cli/blob/develop/docs/install.md>
>>         . The instructions need to be updated.
>>
>>         With the settings file updated, I have managed to create a
>>         migration plan:
>>
>>         [root at honeybee plans]# pulp -vvv --no-verify-ssl --username
>>         USERNAME --password PASSWORD migration plan create
>>         --plan='{"plugins": [{"type": "iso"}]}'
>>         post https://honeybee/pulp/api/v3/migration-plans/
>>         <https://honeybee/pulp/api/v3/migration-plans/>
>>           Content-Type: application/json
>>           Content-Length: 48
>>         b'{"plan": "{\\"plugins\\": [{\\"type\\": \\"iso\\"}]}"}'
>>         Response: 201
>>         {"pulp_href":"/pulp/api/v3/migration-plans/UUID/","pulp_created":"2021-05-05T23:54:28.456994Z","plan":{"plugins":[{"type":"iso"}]}}
>>         {
>>           "pulp_href": "/pulp/api/v3/migration-plans/UUID/",
>>           "pulp_created": "2021-05-05T23:54:28.456994Z",
>>           "plan": {
>>             "plugins": [
>>               {
>>                 "type": "iso"
>>               }
>>             ]
>>           }
>>         }
>>
>>         [root at honeybee plans]#
>>
>>         After that I was able to reset the v3 repositories and run a
>>         migration.
>>
>>     That sounds great!
>>
>>         Now, is there any way that I can simplify these commands? Can
>>         I run pulp commands without having to specify the username
>>         and password and --no-verify-ssl on every command line?
>>
>>     Yes there is. You can add these parameters to the config file.
>>     See
>>     https://github.com/pulp/pulp-cli/blob/develop/docs/install.md#configuration
>>     <https://github.com/pulp/pulp-cli/blob/develop/docs/install.md#configuration>
>>     You should be able to perform a "pulp status" command without errors.
>     Thank you for this I can indeed to a "pulp status" and obtain
>     sensible output now, without needing all the extra flags.
>>
>>         Also, I tried to load the URL https://honeybee/pulp/isos/
>>         <https://honeybee/pulp/isos/> but the page timed out. Am I
>>         trying to load the correct URL for pulp3? I did not even get
>>         a https certificate error problem (I am using a self-signed
>>         certificate).
>>
>>     That looks to me like a Pulp2 address. I think, all Pulp3 content
>>     will be served at https://honeybee/pulp/content/
>>     <https://honeybee/pulp/content/> . Also note, that "iso" content
>>     will be migrated into the pulp_file plugin.
>     I have migrated the iso content using the 3 steps outlined at
>     https://pulp-2to3-migration.readthedocs.io/en/latest/workflows.html
>     <https://pulp-2to3-migration.readthedocs.io/en/latest/workflows.html>
>     . However, https://honeybee/pulp/content/
>     <https://honeybee/pulp/content/> loads an empty page. Is there
>     some secret path from that point, or do I have to publish all of
>     the migrated repositories?
>>
>>         Thanks for the help!
>>
>>         Ben.
>>
>>         On 5/5/21 6:33 pm, Matthias Dellweg wrote:
>>>         I think, you are hitting this error:
>>>         https://github.com/pulp/pulp-cli/issues/221
>>>         <https://github.com/pulp/pulp-cli/issues/221>
>>>
>>>         The problem is that Pulp adds a redirect from http to https,
>>>         but requests turns all POST requests into GET requests upon
>>>         redirect. So the server answers like you wanted to list the
>>>         migration plans (http 200) instead of creating a new one
>>>         (http 202).
>>>         To fix your specific problem, please point the base-address
>>>         to "https://" instead of "http://" in your CLI config file.
>>>         We captured the problem earlier here:
>>>         https://github.com/pulp/pulp-cli#known-issues
>>>         <https://github.com/pulp/pulp-cli#known-issues>
>>>
>>>         And we will try to capture that case in the abovementioned
>>>         issue and create a better error message.
>>>
>>>         Thank you so much for not giving up. Your feedback is really
>>>         helpful to us.
>>>
>>>           Matthias Dellweg
>>>
>>>         On Wed, May 5, 2021 at 8:20 AM Ben Stanley
>>>         <ben.stanley at gmail.com <mailto:ben.stanley at gmail.com>> wrote:
>>>
>>>             Hello Matthias,
>>>
>>>             Regarding the software versions:
>>>
>>>             [root at honeybee plans]# /usr/local/lib/pulp/bin/pip list
>>>             Package Version
>>>             -------------------------------------------------------
>>>             pulp-2to3-migration       0.11.0
>>>             pulpcore 3.12.0
>>>             pulp-cli 0.7.0
>>>
>>>             Looks like I could do some upgrading. I tried to upgrade
>>>             the pulp.pulp_installer, but that bombed (see separate
>>>             email).
>>>
>>>             Regarding the cached api-spec, I ran pulp status. There
>>>             is no mention of any api being outdated or refreshing
>>>             (see attached output 20210505_pulp_status.txt
>>>
>>>             I have also re-run the migration plan create with -vvv .
>>>             The output is attached as
>>>             20210505_pulp_migration_create_vvv.txt . I hope it means
>>>             more to you than it does to me.
>>>
>>>             Ben Stanley.
>>>
>>>             On 4/5/21 6:58 pm, Matthias Dellweg wrote:
>>>>             Hello again.
>>>>             The pulp cli is using requests to talk to your server.
>>>>             I seems like pointing the environment variable
>>>>             |REQUESTS_CA_BUNDLE| to the full path of a copy of the
>>>>             file you may find as '/etc/pulp/certs/root.crt' or
>>>>             '/etc/pulp/certs/ca.crt' tells requests to use the
>>>>             provided root certificate.
>>>>
>>>>             On Tue, May 4, 2021 at 10:28 AM Matthias Dellweg
>>>>             <mdellweg at redhat.com <mailto:mdellweg at redhat.com>> wrote:
>>>>
>>>>                 Hello Stan,
>>>>                 thank you for reporting this. First of all, you are
>>>>                 right about the `--plan`. Are you willing to send a
>>>>                 PR for that mistake?
>>>>                 Let me first ask you the typical support questions:
>>>>                 Which version of the migration plugin and the CLI
>>>>                 is this?
>>>>                 The error looks to me like the CLI get's an
>>>>                 unexpected answer from the server, and that can
>>>>                 have multiple reasons.
>>>>                 1. the cached api-spec of the CLI is outdated.
>>>>                 Please run `pulp <...> status` and look for
>>>>                 "Notice: Cached api is outdated. Refreshing...".
>>>>                 After that, try again.
>>>>                 2. the server does not reply in the way, it's
>>>>                 api-spec promises
>>>>                 3. something in the reverse proxy garbles the result
>>>>                 Can you please try to rerun your command with `pulp
>>>>                 -vvv --no-verify-ssl --username USERNAME ...` to
>>>>                 add some debugging output. It will show you the
>>>>                 requests sent to the server as well as the
>>>>                 responses. I hope this can give some insight.
>>>>
>>>>                 On Tue, May 4, 2021 at 2:18 AM Ben Stanley
>>>>                 <ben.stanley at gmail.com
>>>>                 <mailto:ben.stanley at gmail.com>> wrote:
>>>>
>>>>                     Hello pulp-list,
>>>>
>>>>                     I am attempting to migrate my pulp2 to pulp3.
>>>>
>>>>                     I seem to be facing difficulties at every step.
>>>>
>>>>                     After overcoming the initial difficulties of
>>>>                     installation, I am now up to trying to migrate
>>>>                     the data. Looking at the migration documentation:
>>>>
>>>>                     https://pulp-2to3-migration.readthedocs.io/en/latest/workflows.html
>>>>                     <https://pulp-2to3-migration.readthedocs.io/en/latest/workflows.html>
>>>>
>>>>                     I note that the command in the documentation is
>>>>                     incorrect:
>>>>
>>>>                     [root at honeybee plans]# *pulp --no-verify-ssl
>>>>                     --username */*USERNAME*/*--password
>>>>                     */*PASSWORD*/*migration plan create
>>>>                     plan='{"plugins": [{"type": "iso"}]}'*
>>>>
>>>>                     Usage: pulp migration plan create [OPTIONS]
>>>>
>>>>                     Try 'pulp migration plan create --help' for help.
>>>>
>>>>
>>>>                     Error: Missing option '--plan'.
>>>>
>>>>                     [root at honeybee plans]#
>>>>
>>>>                     The documentation should be corrected to use
>>>>                     --plan=<stuff> instead of plan=<stuff> .
>>>>
>>>>                     Even after I corrected the command to use
>>>>                     --plan=<stuff>, I got a huge error message.
>>>>
>>>>                     root at honeybee plans]# *pulp --no-verify-ssl
>>>>                     --username */*USERNAME*/*--password
>>>>                     */*PASSWORD*/*migration plan create
>>>>                     --plan='{"plugins": [{"type": "iso"}]}'*
>>>>
>>>>                     Traceback (most recent call last):
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/pulpcore/cli/common/openapi.py",
>>>>                     line 219, in parse_response
>>>>
>>>>                     response_spec =
>>>>                     method_spec["responses"][str(response.status_code)]
>>>>
>>>>                     KeyError: '200'
>>>>
>>>>
>>>>                     During handling of the above exception, another
>>>>                     exception occurred:
>>>>
>>>>
>>>>                     Traceback (most recent call last):
>>>>
>>>>                     File "/usr/local/bin/pulp", line 8, in <module>
>>>>
>>>>                     sys.exit(main())
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/click/core.py",
>>>>                     line 829, in __call__
>>>>
>>>>                     return self.main(*args, **kwargs)
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/click/core.py",
>>>>                     line 782, in main
>>>>
>>>>                     rv = self.invoke(ctx)
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/click/core.py",
>>>>                     line 1259, in invoke
>>>>
>>>>                     return
>>>>                     _process_result(sub_ctx.command.invoke(sub_ctx))
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/click/core.py",
>>>>                     line 1259, in invoke
>>>>
>>>>                     return
>>>>                     _process_result(sub_ctx.command.invoke(sub_ctx))
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/click/core.py",
>>>>                     line 1259, in invoke
>>>>
>>>>                     return
>>>>                     _process_result(sub_ctx.command.invoke(sub_ctx))
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/click/core.py",
>>>>                     line 1066, in invoke
>>>>
>>>>                     return ctx.invoke(self.callback, **ctx.params)
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/click/core.py",
>>>>                     line 610, in invoke
>>>>
>>>>                     return callback(*args, **kwargs)
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/click/decorators.py",
>>>>                     line 73, in new_func
>>>>
>>>>                     return ctx.invoke(f, obj, *args, **kwargs)
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/click/core.py",
>>>>                     line 610, in invoke
>>>>
>>>>                     return callback(*args, **kwargs)
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/click/decorators.py",
>>>>                     line 73, in new_func
>>>>
>>>>                     return ctx.invoke(f, obj, *args, **kwargs)
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/click/core.py",
>>>>                     line 610, in invoke
>>>>
>>>>                     return callback(*args, **kwargs)
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/pulpcore/cli/common/generic.py",
>>>>                     line 287, in callback
>>>>
>>>>                     result = entity_ctx.create(body=body)
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/pulpcore/cli/common/context.py",
>>>>                     line 364, in create
>>>>
>>>>                     self.CREATE_ID, parameters=_parameters,
>>>>                     body=body, non_blocking=non_blocking
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/pulpcore/cli/common/context.py",
>>>>                     line 129, in call
>>>>
>>>>                     result = self.api.call(operation_id, *args,
>>>>                     **kwargs)
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/pulpcore/cli/common/openapi.py",
>>>>                     line 284, in call
>>>>
>>>>                     return self.parse_response(method_spec, response)
>>>>
>>>>                     File
>>>>                     "/usr/local/lib/pulp/lib64/python3.6/site-packages/pulpcore/cli/common/openapi.py",
>>>>                     line 222, in parse_response
>>>>
>>>>                     response_spec =
>>>>                     method_spec["responses"][str(100 *
>>>>                     int(response.status_code / 100))]
>>>>
>>>>                     KeyError: '200'
>>>>
>>>>                     [root at honeybee plans]#
>>>>
>>>>
>>>>
>>>>                     What do I need to fix to proceed with my migration?
>>>>
>>>>                     And I'd also like to know how I can get it to
>>>>                     work without having to specify --no-verify-ssl
>>>>                     . Note that I have a self-signed certificate. I
>>>>                     don't mind pointing the pulp command to the
>>>>                     self-signed certificate file so that it will
>>>>                     accept it, but I don't know how to do that.
>>>>
>>>>                     Thanks,
>>>>                     Ben Stanley.
>>>>
>>>>
>>>>                     _______________________________________________
>>>>                     Pulp-list mailing list
>>>>                     Pulp-list at redhat.com <mailto:Pulp-list at redhat.com>
>>>>                     https://listman.redhat.com/mailman/listinfo/pulp-list
>>>>                     <https://listman.redhat.com/mailman/listinfo/pulp-list>
>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-list/attachments/20210513/e797070c/attachment.htm>


More information about the Pulp-list mailing list