def neutron_cfg(self, cmd_val, cfg_obj, name_uuid, **kwargs):
        cfgobj_dict = {"network": "net", "subnet": "subnet"}
        if cfg_obj != '':
            if cfg_obj not in cfgobj_dict:
                raise KeyError
        if cmd_val == '' or name_uuid == '':
            _log.info('''Function Usage: gbp_policy_cfg_all 'rule' 0 "abc"\n
                       --cmd_val == 0:delete; 1:create; 2:update\n
                       -- name_uuid == UUID or name_string\n''')
            return 0

        # Build the command with mandatory params
        if cmd_val == 0:
            cmd = 'neutron %s-delete ' % cfgobj_dict[cfg_obj] + str(name_uuid)
        if cmd_val == 1:
            cmd = 'neutron %s-create ' % cfgobj_dict[cfg_obj] + str(name_uuid)
        if cmd_val == 2:
            cmd = 'neutron %s-update ' % cfgobj_dict[cfg_obj] + str(name_uuid)
        # Build the cmd string for optional/non-default args/values
        for arg, value in kwargs.items():
            if '_' in arg:
                arg = string.replace(arg, '_', '-')
            cmd = cmd + " --" + "".join('%s=%s' % (arg, value))
        _log.info(cmd)
        # Execute the cmd
        cmd_out = commands.getoutput(cmd)

        # Catch for non-exception error strings, even though try clause
        # succeded
        if self.cmd_error_check(cmd_out) == 0:
            return 0
        if cmd_val == 1:
            obj_uuid = self.get_uuid(cmd_out)
            return obj_uuid
Read from the specified handle
dataset/ETHPy150Open openstack/group-based-policy/gbpservice/tests/contrib/gbpfunctests/libs/config_libs.py/Gbp_Config.neutron_cfg--crossover with--dataset/ETHPy150Open ALPSquid/thebutton-monitor/src/gatt.py/connect.read