bsdci / libioc

A Python library to manage jails with ioc{age,ell}
https://bsd.ci/libioc
Other
38 stars 11 forks source link

booleans not converted correctly for sysctl #673

Closed igalic closed 5 years ago

igalic commented 5 years ago

in our setup, we have vnet=yes set in defaults

root@container-host1 /u/l/s/ioc# ioc start ssh-devops
[+] JailResolverConfig@ssh-devops: OK [0.005s]
[+] JailDependantsStart@ssh-devops: No dependant jails [0.002s]
[-] JailLaunch@ssh-devops: ...
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/libioc/JailParams.py", line 65, in value                                                                                      
    value = int(value)  # noqa: T484
ValueError: invalid literal for int() with base 10: 'vnet'

During handling of the above exception, another exception occurred:

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/start.py", line 85, in cli
    **start_args
  File "/usr/local/lib/python3.6/site-packages/ioc_cli/start.py", line 181, in _normal
    print_function(jail.start())
  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/libioc/Jail.py", line 573, in start
    passthru=passthru
  File "/usr/local/lib/python3.6/site-packages/libioc/Jail.py", line 1674, in _launch_persistent_jail                                                                        
    command = self.__get_launch_command(self._launch_args + [
  File "/usr/local/lib/python3.6/site-packages/libioc/Jail.py", line 2241, in __getattribute__                                                                               
    return object.__getattribute__(self, key)
  File "/usr/local/lib/python3.6/site-packages/libioc/Jail.py", line 1653, in _launch_args                                                                                   
    sysctl.value = value
  File "/usr/local/lib/python3.6/site-packages/libioc/JailParams.py", line 67, in value                                                                                      
    self.__raise_value_type_error()
  File "/usr/local/lib/python3.6/site-packages/libioc/JailParams.py", line 80, in __raise_value_type_error                                                                   
    raise TypeError(f"{self.name} sysctl requires {type_name}")
TypeError: security.jail.param.vnet sysctl requires INT
igalic commented 5 years ago

this bug was not general to booleans, but specific to vnet, which, wrongly was being set to 'vnet'.

gronke commented 5 years ago

fixed in https://github.com/bsdci/libioc/pull/663