aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Chemeris <alexander.chemeris@gmail.com>2013-10-04 23:54:17 +0200
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2013-10-05 10:27:47 +0200
commitbd6d40f1fb5d73fd27feeb8faff13ee89a346cf5 (patch)
treeeeeb14bb3533c869117488ee6175fcae60557763
parent4ad593c8f636ba566f914c086287c43bb75ed7f8 (diff)
nitb: Add "subscriber create" VTY command.
It may be useful in production, but it's really required for VTY testing of subscriber related commands.
-rw-r--r--openbsc/src/libmsc/vty_interface_layer3.c27
-rw-r--r--openbsc/tests/vty_test_runner.py16
2 files changed, 43 insertions, 0 deletions
diff --git a/openbsc/src/libmsc/vty_interface_layer3.c b/openbsc/src/libmsc/vty_interface_layer3.c
index 19c78ea9c..acb4af7f6 100644
--- a/openbsc/src/libmsc/vty_interface_layer3.c
+++ b/openbsc/src/libmsc/vty_interface_layer3.c
@@ -218,6 +218,32 @@ DEFUN(show_subscr,
return CMD_SUCCESS;
}
+DEFUN(subscriber_create,
+ subscriber_create_cmd,
+ "subscriber create imsi ID",
+ "Operations on a Subscriber\n" \
+ "Create new subscriber\n" \
+ "Identify the subscriber by his IMSI\n" \
+ "Identifier for the subscriber\n")
+{
+ struct gsm_network *gsmnet = gsmnet_from_vty(vty);
+ struct gsm_subscriber *subscr;
+
+ subscr = db_create_subscriber(gsmnet, argv[0]);
+ if (!subscr) {
+ vty_out(vty, "%% No subscriber created for IMSI %s%s",
+ argv[0], VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ /* Show info about the created subscriber. */
+ subscr_dump_full_vty(vty, subscr, 0);
+
+ subscr_put(subscr);
+
+ return CMD_SUCCESS;
+}
+
DEFUN(subscriber_send_pending_sms,
subscriber_send_pending_sms_cmd,
"subscriber " SUBSCR_TYPES " ID sms pending-send",
@@ -949,6 +975,7 @@ int bsc_vty_init_extra(void)
install_element_ve(&sms_send_pend_cmd);
+ install_element_ve(&subscriber_create_cmd);
install_element_ve(&subscriber_send_sms_cmd);
install_element_ve(&subscriber_silent_sms_cmd);
install_element_ve(&subscriber_silent_call_start_cmd);
diff --git a/openbsc/tests/vty_test_runner.py b/openbsc/tests/vty_test_runner.py
index 3bb7bd86b..0bd79720e 100644
--- a/openbsc/tests/vty_test_runner.py
+++ b/openbsc/tests/vty_test_runner.py
@@ -215,6 +215,22 @@ class TestVTYNITB(TestVTYGenericBSC):
if classNum != 10:
self.assertEquals(res.find("rach access-control-class " + str(classNum) + " barred"), -1)
+ def testSubscriberCreate(self):
+ self.vty.enable()
+
+ imsi = "204300854013739"
+
+ # Initially we don't have this subscriber
+ self.vty.verify('show subscriber imsi '+imsi, ['% No subscriber found for imsi '+imsi])
+
+ # Lets create one
+ res = self.vty.command('subscriber create imsi '+imsi)
+ self.assert_(res.find(" IMSI: "+imsi) > 0)
+
+ # Now we have it
+ res = self.vty.command('show subscriber imsi '+imsi)
+ self.assert_(res.find(" IMSI: "+imsi) > 0)
+
class TestVTYBSC(TestVTYGenericBSC):
def vty_command(self):