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

Matthias Dellweg mdellweg at redhat.com
Wed May 12 08:36:03 UTC 2021


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> 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> 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 . 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/
>>   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
> 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/ 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/ . 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 .
> However, 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
>>
>> 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
>>
>> 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> 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>
>>> 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>
>>>> 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
>>>>>
>>>>> 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
>>>>> https://listman.redhat.com/mailman/listinfo/pulp-list
>>>>
>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-list/attachments/20210512/cf176d35/attachment.htm>


More information about the Pulp-list mailing list