CTRL: remove boilerplate

Use CTRL_CMD_DEFINE_RO(), CTRL_CMD_DEFINE_WO() and
CTRL_CMD_DEFINE_WO_NOVRF() where appropriate to get rid of boilerplate
code.

Change-Id: I5bcea0b4f4b8f535bef2b423f2013b8b4a218b5b
This commit is contained in:
Max 2017-01-11 18:37:55 +01:00
parent 76f048a1fd
commit f6e51709fc
4 changed files with 13 additions and 105 deletions

View File

@ -70,17 +70,6 @@ CTRL_CMD_DEFINE_RANGE(net_mcc, "mcc", struct gsm_network, country_code, 1, 999);
CTRL_CMD_VTY_STRING(net_short_name, "short-name", struct gsm_network, name_short);
CTRL_CMD_VTY_STRING(net_long_name, "long-name", struct gsm_network, name_long);
static int verify_net_apply_config(struct ctrl_cmd *cmd, const char *v, void *d)
{
return 0;
}
static int get_net_apply_config(struct ctrl_cmd *cmd, void *data)
{
cmd->reply = "Write only attribute";
return CTRL_CMD_ERROR;
}
static int set_net_apply_config(struct ctrl_cmd *cmd, void *data)
{
struct gsm_network *net = cmd->node;
@ -107,7 +96,7 @@ static int set_net_apply_config(struct ctrl_cmd *cmd, void *data)
return CTRL_CMD_REPLY;
}
CTRL_CMD_DEFINE(net_apply_config, "apply-configuration");
CTRL_CMD_DEFINE_WO_NOVRF(net_apply_config, "apply-configuration");
static int verify_net_mcc_mnc_apply(struct ctrl_cmd *cmd, const char *value, void *d)
{
@ -126,12 +115,6 @@ static int verify_net_mcc_mnc_apply(struct ctrl_cmd *cmd, const char *value, voi
return 0;
}
static int get_net_mcc_mnc_apply(struct ctrl_cmd *cmd, void *data)
{
cmd->reply = "Write only attribute";
return CTRL_CMD_ERROR;
}
static int set_net_mcc_mnc_apply(struct ctrl_cmd *cmd, void *data)
{
struct gsm_network *net = cmd->node;
@ -165,23 +148,12 @@ oom:
cmd->reply = "OOM";
return CTRL_CMD_ERROR;
}
CTRL_CMD_DEFINE(net_mcc_mnc_apply, "mcc-mnc-apply");
CTRL_CMD_DEFINE_WO(net_mcc_mnc_apply, "mcc-mnc-apply");
/* BTS related commands below */
CTRL_CMD_DEFINE_RANGE(bts_lac, "location-area-code", struct gsm_bts, location_area_code, 0, 65535);
CTRL_CMD_DEFINE_RANGE(bts_ci, "cell-identity", struct gsm_bts, cell_identity, 0, 65535);
static int verify_bts_apply_config(struct ctrl_cmd *cmd, const char *v, void *d)
{
return 0;
}
static int get_bts_apply_config(struct ctrl_cmd *cmd, void *data)
{
cmd->reply = "Write only attribute";
return CTRL_CMD_ERROR;
}
static int set_bts_apply_config(struct ctrl_cmd *cmd, void *data)
{
struct gsm_bts *bts = cmd->node;
@ -196,18 +168,7 @@ static int set_bts_apply_config(struct ctrl_cmd *cmd, void *data)
return CTRL_CMD_REPLY;
}
CTRL_CMD_DEFINE(bts_apply_config, "apply-configuration");
static int verify_bts_si(struct ctrl_cmd *cmd, const char *v, void *d)
{
return 0;
}
static int get_bts_si(struct ctrl_cmd *cmd, void *data)
{
cmd->reply = "Write only attribute";
return CTRL_CMD_ERROR;
}
CTRL_CMD_DEFINE_WO_NOVRF(bts_apply_config, "apply-configuration");
static int set_bts_si(struct ctrl_cmd *cmd, void *data)
{
@ -223,12 +184,7 @@ static int set_bts_si(struct ctrl_cmd *cmd, void *data)
cmd->reply = "Generated new System Information";
return CTRL_CMD_REPLY;
}
CTRL_CMD_DEFINE(bts_si, "send-new-system-informations");
static int verify_bts_chan_load(struct ctrl_cmd *cmd, const char *v, void *d)
{
return 0;
}
CTRL_CMD_DEFINE_WO_NOVRF(bts_si, "send-new-system-informations");
static int get_bts_chan_load(struct ctrl_cmd *cmd, void *data)
{
@ -271,23 +227,7 @@ error:
return CTRL_CMD_ERROR;
}
static int set_bts_chan_load(struct ctrl_cmd *cmd, void *data)
{
cmd->reply = "Read only attribute";
return CTRL_CMD_ERROR;
}
CTRL_CMD_DEFINE(bts_chan_load, "channel-load");
static int verify_bts_oml_conn(struct ctrl_cmd *cmd, const char *value, void *_data)
{
struct gsm_bts *bts = cmd->node;
if (!is_ipaccess_bts(bts)) {
cmd->reply = "";
return -1;
}
return 0;
}
CTRL_CMD_DEFINE_RO(bts_chan_load, "channel-load");
static int get_bts_oml_conn(struct ctrl_cmd *cmd, void *data)
{
@ -297,12 +237,7 @@ static int get_bts_oml_conn(struct ctrl_cmd *cmd, void *data)
return CTRL_CMD_REPLY;
}
static int set_bts_oml_conn(struct ctrl_cmd *cmd, void *data)
{
cmd->reply = "Read only attribute";
return CTRL_CMD_ERROR;
}
CTRL_CMD_DEFINE(bts_oml_conn, "oml-connection-state");
CTRL_CMD_DEFINE_RO(bts_oml_conn, "oml-connection-state");
static int verify_bts_gprs_mode(struct ctrl_cmd *cmd, const char *value, void *_data)
{

View File

@ -75,12 +75,6 @@ static int verify_subscriber_modify(struct ctrl_cmd *cmd, const char *value, voi
return rc;
}
static int get_subscriber_modify(struct ctrl_cmd *cmd, void *data)
{
cmd->reply = "Set only attribute";
return CTRL_CMD_ERROR;
}
static int set_subscriber_modify(struct ctrl_cmd *cmd, void *data)
{
struct gsm_network *net = cmd->node;
@ -157,18 +151,7 @@ fail:
return CTRL_CMD_ERROR;
}
CTRL_CMD_DEFINE(subscriber_modify, "subscriber-modify-v1");
static int verify_subscriber_delete(struct ctrl_cmd *cmd, const char *v, void *d)
{
return 0;
}
static int get_subscriber_delete(struct ctrl_cmd *cmd, void *data)
{
cmd->reply = "Set only attribute";
return CTRL_CMD_ERROR;
}
CTRL_CMD_DEFINE_WO(subscriber_modify, "subscriber-modify-v1");
static int set_subscriber_delete(struct ctrl_cmd *cmd, void *data)
{
@ -199,7 +182,7 @@ static int set_subscriber_delete(struct ctrl_cmd *cmd, void *data)
cmd->reply = was_used ? "Removed active subscriber" : "Removed";
return CTRL_CMD_REPLY;
}
CTRL_CMD_DEFINE(subscriber_delete, "subscriber-delete-v1");
CTRL_CMD_DEFINE_WO_NOVRF(subscriber_delete, "subscriber-delete-v1");
static int verify_subscriber_list(struct ctrl_cmd *cmd, const char *value, void *d)
{

View File

@ -446,11 +446,7 @@ static int verify_net_cfg_acc_cmd(struct ctrl_cmd *cmd, const char *value, void
return 0;
}
CTRL_CMD_DEFINE(net_save_cmd, "net 0 save-configuration");
static int verify_net_save_cmd(struct ctrl_cmd *cmd, const char *v, void *d)
{
return 0;
}
CTRL_CMD_DEFINE_WO_NOVRF(net_save_cmd, "net 0 save-configuration");
static int set_net_save_cmd(struct ctrl_cmd *cmd, void *data)
{
@ -464,12 +460,6 @@ static int set_net_save_cmd(struct ctrl_cmd *cmd, void *data)
return CTRL_CMD_REPLY;
}
static int get_net_save_cmd(struct ctrl_cmd *cmd, void *data)
{
cmd->reply = "Write only attribute";
return CTRL_CMD_ERROR;
}
struct ctrl_handle *bsc_nat_controlif_setup(struct bsc_nat *nat,
const char *bind_addr, int port)
{

View File

@ -219,7 +219,7 @@ class TestCtrlBSC(TestCtrlBase):
def testBtsGenerateSystemInformation(self):
r = self.do_get('bts.0.send-new-system-informations')
self.assertEquals(r['mtype'], 'ERROR')
self.assertEquals(r['error'], 'Write only attribute')
self.assertEquals(r['error'], 'Write Only attribute')
# No RSL links so it will fail
r = self.do_set('bts.0.send-new-system-informations', '1')
@ -229,7 +229,7 @@ class TestCtrlBSC(TestCtrlBase):
def testBtsChannelLoad(self):
r = self.do_set('bts.0.channel-load', '1')
self.assertEquals(r['mtype'], 'ERROR')
self.assertEquals(r['error'], 'Read only attribute')
self.assertEquals(r['error'], 'Read Only attribute')
# No RSL link so everything is 0
r = self.do_get('bts.0.channel-load')
@ -243,7 +243,7 @@ class TestCtrlBSC(TestCtrlBase):
"""Check OML state. It will not be connected"""
r = self.do_set('bts.0.oml-connection-state', '1')
self.assertEquals(r['mtype'], 'ERROR')
self.assertEquals(r['error'], 'Read only attribute')
self.assertEquals(r['error'], 'Read Only attribute')
# No RSL link so everything is 0
r = self.do_get('bts.0.oml-connection-state')
@ -531,7 +531,7 @@ class TestCtrlNITB(TestCtrlBase):
def testApplyConfiguration(self):
r = self.do_get('bts.0.apply-configuration')
self.assertEquals(r['mtype'], 'ERROR')
self.assertEquals(r['error'], 'Write only attribute')
self.assertEquals(r['error'], 'Write Only attribute')
r = self.do_set('bts.0.apply-configuration', '1')
self.assertEquals(r['mtype'], 'SET_REPLY')