Datera / targetcli

CLI and shell for the Linux SCSI Target
http://linux-iscsi.org/wiki/targetcli
Apache License 2.0
52 stars 21 forks source link

targetcli saveconfig with error message #27

Open schoerg opened 6 years ago

schoerg commented 6 years ago

targetcli 3.0.pre4.1~ga55d018 (rtslib 3.0.pre4.1~g1b33ceb)

Linux 4.11.7-041107-lowlatency #201706240231 SMP PREEMPT Sat Jun 24 06:38:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux I can't save the config:

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/configshell/shell.py", line 990, in run_interactive
    self._cli_loop()
  File "/usr/lib/python2.7/dist-packages/configshell/shell.py", line 820, in _cli_loop
    self.run_cmdline(cmdline)
  File "/usr/lib/python2.7/dist-packages/configshell/shell.py", line 934, in run_cmdline
    self._execute_command(path, command, pparams, kparams)
  File "/usr/lib/python2.7/dist-packages/configshell/shell.py", line 909, in _execute_command
    result = target.execute_command(command, pparams, kparams)
  File "/usr/lib/python2.7/dist-packages/targetcli/ui_node.py", line 104, in execute_command
    pparams, kparams)
  File "/usr/lib/python2.7/dist-packages/configshell/node.py", line 1416, in execute_command
    result = method(*pparams, **kparams)
  File "/usr/lib/python2.7/dist-packages/targetcli/ui_node.py", line 123, in ui_command_saveconfig
    CliConfig.save_running_config()
  File "/usr/lib/python2.7/dist-packages/targetcli/cli_config.py", line 64, in save_running_config
    config = Config()
  File "/usr/lib/python2.7/dist-packages/rtslib/config.py", line 133, in __init__
    self._load_policy()
  File "/usr/lib/python2.7/dist-packages/rtslib/config.py", line 144, in _load_policy
    parse_tree = self._policy_parser.parse_file(filepath)
  File "/usr/lib/python2.7/dist-packages/rtslib/config_parser.py", line 144, in parse_file
    return self._parser.parseFile(filepath, parseAll=True).asList()
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 2131, in parseFile
    return self.parseString(file_contents, parseAll)
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1603, in parseString
    loc, tokens = self._parse( instring, 0 )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3811, in parseImpl
    return super(ZeroOrMore, self).parseImpl(instring, loc, doActions)
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3735, in parseImpl
    loc, tokens = self_expr_parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3605, in parseImpl
    return self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3605, in parseImpl
    return self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3283, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3418, in parseImpl
    ret = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3283, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3874, in parseImpl
    loc, tokens = self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3418, in parseImpl
    ret = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3605, in parseImpl
    return self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3283, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3735, in parseImpl
    loc, tokens = self_expr_parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3605, in parseImpl
    return self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3605, in parseImpl
    return self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3283, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3418, in parseImpl
    ret = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3283, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3874, in parseImpl
    loc, tokens = self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3418, in parseImpl
    ret = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3605, in parseImpl
    return self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3283, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3735, in parseImpl
    loc, tokens = self_expr_parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3605, in parseImpl
    return self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3605, in parseImpl
    return self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3283, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3418, in parseImpl
    ret = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3283, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3874, in parseImpl
    loc, tokens = self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3418, in parseImpl
    ret = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3605, in parseImpl
    return self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3283, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3735, in parseImpl
    loc, tokens = self_expr_parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3605, in parseImpl
    return self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3605, in parseImpl
    return self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3283, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3418, in parseImpl
    ret = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3283, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3874, in parseImpl
    loc, tokens = self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3418, in parseImpl
    ret = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3605, in parseImpl
    return self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3283, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3735, in parseImpl
    loc, tokens = self_expr_parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3605, in parseImpl
    return self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3605, in parseImpl
    return self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3283, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1375, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 3418, in parseImpl
    ret = e._parse( instring, loc, doActions )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1401, in _parseNoCache
    tokens = fn( instring, tokensStart, retTokens )
  File "/usr/local/lib/python2.7/dist-packages/pyparsing.py", line 1045, in wrapper
    ret = func(*args[limit[0]:])
  File "/usr/lib/python2.7/dist-packages/rtslib/config_parser.py", line 228, in _parse_action_attr
    ref_path = " ".join(ref_path.asList())
AttributeError: 'list' object has no attribute 'asList'

No difference if I use the Ubuntu 16.04 package, or compile targetcliand rtsilbfrom latest git.

rds76 commented 6 years ago

Hi, guess Ubuntu 16.04 uses *-fb targetcli version called free branch. Those forks are not compatible vice versa. Use distro package is preffered or remove targetcli distro and build any from git yourself. Btw I built both manually to work together on debian wheezy with latest kernel.

schoerg commented 6 years ago

I tried building from git.

rds76 commented 6 years ago

do you have policy files in /var/taget/policy/ ?

schoerg commented 6 years ago

Yes.

backstore_fileio.lio
backstore_iblock.lio
backstore_pscsi.lio
backstore_ramdisk.lio
fabric_ib_srpt.lio
fabric_iscsi.lio
fabric_loopback.lio
fabric_qla2xxx.lio
fabric_tcm_fc.lio
fabric_vhost.lio
rds76 commented 6 years ago

what version o pyparsing do u have? have you checked content of policy files?

schoerg commented 6 years ago

2.1.8

storage fileio disk %str {
    wwn %str
    path %str
    size %bytes
    buffered %bool(yes)
    attribute {
        block_size %int(512)
        emulate_3pc %bool(yes)
        emulate_caw %bool(yes)
        emulate_dpo %bool(no)
        emulate_fua_read %bool(no)
        emulate_fua_write %bool(yes)
        emulate_model_alias %bool(no)
        emulate_rest_reord %bool(no)
        emulate_tas %bool(yes)
        emulate_tpu %bool(no)
        emulate_tpws %bool(no)
        emulate_ua_intlck_ctrl %bool(no)
        emulate_write_cache %bool(yes)
        enforce_pr_isids %bool(yes)
        fabric_max_sectors %int(8192)
        is_nonrot %bool(no)
        max_unmap_block_desc_count %int(1)
        max_unmap_lba_count %int(8192)
        max_write_same_len %int(4096)
        optimal_sectors %int(8192)
        queue_depth %int(128)
        unmap_granularity %int(1)
        unmap_granularity_alignment %int(0)
    }
}
rds76 commented 6 years ago

Mine is ii python-pyparsing 1.5.6+dfsg1-2 all Python parsing module Have u tried targetcli-fb version?