コード例 #1
0
ファイル: scripts.py プロジェクト: icclab/crmsh
def _parse_parameters(name, args, main):
    '''
    Parse run parameters into a dict.
    '''
    args = utils.nvpairs2dict(args)
    params = {}
    for key, default, _ in common_params():
        params[key] = default
    for key, val in args.iteritems():
        params[key] = val
    for param in main['parameters']:
        name = param['name']
        if name not in params:
            if 'default' not in param:
                raise ValueError("Missing required parameter %s" % (name))
            params[name] = param['default']

    user = params['user']
    port = params['port']
    _filter_dict(params, 'nodes', _filter_nodes, user, port)
    _filter_dict(params, 'dry_run', utils.is_boolean_true)
    _filter_dict(params, 'sudo', utils.is_boolean_true)
    _filter_dict(params, 'statefile', lambda x: (x and os.path.abspath(x)) or x)
    if config.core.debug:
        params['debug'] = True
    return params
コード例 #2
0
def _parse_parameters(name, args, main):
    '''
    Parse run parameters into a dict.
    '''
    args = utils.nvpairs2dict(args)
    params = {}
    for key, default, _ in common_params():
        params[key] = default
    for key, val in args.iteritems():
        params[key] = val
    for param in main['parameters']:
        name = param['name']
        if name not in params:
            if 'default' not in param:
                raise ValueError("Missing required parameter %s" % (name))
            params[name] = param['default']

    user = params['user']
    port = params['port']
    _filter_dict(params, 'nodes', _filter_nodes, user, port)
    _filter_dict(params, 'dry_run', utils.is_boolean_true)
    _filter_dict(params, 'sudo', utils.is_boolean_true)
    _filter_dict(params, 'statefile', lambda x:
                 (x and os.path.abspath(x)) or x)
    if config.core.debug:
        params['debug'] = True
    return params
コード例 #3
0
ファイル: ui_cluster.py プロジェクト: lge/crmsh
 def do_add(self, context, *args):
     '''
     Add the given node(s) to the cluster.
     Installs packages, sets up corosync and pacemaker, etc.
     Must be executed from a node in the existing cluster.
     '''
     params = self._args_implicit(context, args, 'node')
     paramdict = utils.nvpairs2dict(params)
     node = paramdict.get('node')
     if node:
         node = node.replace(',', ' ').split()
     else:
         node = []
     nodes = paramdict.get('nodes')
     if not nodes:
         nodes = utils.list_cluster_nodes()
     nodes += node
     params += ['nodes=%s' % (','.join(nodes))]
     return scripts.run('add', params)
コード例 #4
0
 def do_add(self, context, *args):
     '''
     Add the given node(s) to the cluster.
     Installs packages, sets up corosync and pacemaker, etc.
     Must be executed from a node in the existing cluster.
     '''
     params = self._args_implicit(context, args, 'node')
     paramdict = utils.nvpairs2dict(params)
     node = paramdict.get('node')
     if node:
         node = node.replace(',', ' ').split()
     else:
         node = []
     nodes = paramdict.get('nodes')
     if not nodes:
         nodes = utils.list_cluster_nodes()
     nodes += node
     params += ['nodes=%s' % (','.join(nodes))]
     return scripts.run('add', params)
コード例 #5
0
def test_nvpairs2dict():
    assert utils.nvpairs2dict(['a=b', 'c=d']) == {'a': 'b', 'c': 'd'}
    assert utils.nvpairs2dict(['a=b=c', 'c=d']) == {'a': 'b=c', 'c': 'd'}
    assert utils.nvpairs2dict(['a']) == {'a': None}