Skip to content

Provision ix name attribute is broken #666

Open
@urosgruber

Description

@urosgruber

Using ix provisioning plugin and using plexmediaserver as name does not work. Steps to recreate

ioc create foo provisioning.method=ixs provisioning.source=plexmediaserver template=yes
ioc provision foo

It throws an error

Traceback (most recent call last):
  File "/usr/local/bin/ioc", line 10, in <module>
    sys.dd:exit(cli())
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/ioc_cli/provision.py", line 65, in cli
    **start_args
  File "/usr/local/lib/python3.6/site-packages/ioc_cli/provision.py", line 102, in _provision
    print_function(_execute_provisioner(jail))
  File "/usr/local/lib/python3.6/site-packages/ioc_cli/__init__.py", line 87, in print_events
    for event in generator:
  File "/usr/local/lib/python3.6/site-packages/ioc_cli/provision.py", line 123, in _execute_provisioner
    for event in jail.provisioner.provision():
  File "/usr/local/lib/python3.6/site-packages/libioc/Provisioning/__init__.py", line 183, in provision
    Prototype.check_requirements(self)
  File "/usr/local/lib/python3.6/site-packages/libioc/Provisioning/__init__.py", line 142, in check_requirements
    if self.source is None:
  File "/usr/local/lib/python3.6/site-packages/libioc/Provisioning/__init__.py", line 133, in source
    return None if (config_value is None) else Source(config_value)
  File "/usr/local/lib/python3.6/site-packages/libioc/Provisioning/__init__.py", line 50, in __init__
    self.value = value
  File "/usr/local/lib/python3.6/site-packages/libioc/Provisioning/__init__.py", line 87, in value
    raise ValueError("Provisioning Source must be AbsolutePath or URL")
ValueError: Provisioning Source must be AbsolutePath or URL

Trying to use URL as name also fail because in the code

return (
            "https://raw.githubusercontent.com/freenas/iocage-ix-plugins"
            f"/master/{name}.json"
        )

you can see it should be a regular name and not the URL. I think it would be nice if name can be either URL or a name. But the actual check is done in init . I'm have very basic Python knowledge and trying to fix this would take a lot of time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugcompatibilityCompatibility with other iocage variants

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions