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
diff --git a/openbsc/tests/ctrl_test_runner.py b/openbsc/tests/ctrl_test_runner.py
index 4fd831f..9050c09 100644
--- a/openbsc/tests/ctrl_test_runner.py
+++ b/openbsc/tests/ctrl_test_runner.py
@@ -219,7 +219,7 @@
     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 @@
     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 @@
         """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 @@
     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')