Esempio n. 1
0
 def remove_topic(self, msg):
     received_data = json.loads(msg.payload)
     payload = Utils().validate_data(received_data, MANAGEMENT_PASSWORD,
                                     ['password', 'client'])
     if payload.result == 'OK':
         topic = Topic.select().where(
             Topic.name == str(received_data['topic']))
         if topic.count() > 0:
             topic[0].delete_instance()
         else:
             payload.result = 'KO'
             payload.error = 'Topic not found'
         saved_topics = []
         for topic in Topic.select():
             saved_topics.append(topic.name)
         payload.topics = saved_topics
     return payload.get_json()
Esempio n. 2
0
 def list_topics(self, msg):
     received_data = json.loads(msg.payload)
     payload = Utils().validate_data(received_data,
                                     QUERY_PASSWORD, ['password', 'client'],
                                     topic=False)
     if payload.result == 'OK':
         saved_topics = []
         for topic in Topic.select():
             saved_topics.append(topic.name)
         payload.topics = saved_topics
     return payload.get_json()
Esempio n. 3
0
 def add_topic(self, msg):
     received_data = json.loads(msg.payload)
     payload = Utils().validate_data(received_data, MANAGEMENT_PASSWORD,
                                     ['password', 'client'])
     if payload.result == 'OK':
         new_topic, created = Topic.get_or_create(
             name=str(received_data['topic']))
         saved_topics = []
         for topic in Topic.select():
             saved_topics.append(topic.name)
         payload.topics = saved_topics
     return payload.get_json()
    def test_on_message_remove_topic(self):
        with test_database(test_db, (Log, Topic), create_tables=True):
            self.client.subscribed_topics = []
            self.client.subscribe('/test/topic/test1')
            self.client.subscribe('/test/topic/test2')
            self.client.subscribe('/test/topic/test3')
            Topic.create(name='/test/topic/test1')
            Topic.create(name='/test/topic/test2')
            Topic.create(name='/test/topic/test3')

            self.payload['options'] = None
            self.payload['topic'] = '/test/topic/test3'
            self.payload['password'] = Settings.MANAGEMENT_PASSWORD
            self.msg = msg(topic=Settings.ROOT_TOPIC + 'topic/remove',
                           payload=json.dumps(self.payload))
            mqtt_controller = MqttController()
            result = mqtt_controller.on_message(self.client, self.msg)
            self.assertEqual(2, len(self.client.subscribed_topics))
            self.assertEqual(2, Topic.select().count())
Esempio n. 5
0
 def is_topic_subscribed(self, topic):
     if Topic.select().where(Topic.name == topic).count():
         return True
     else:
         return False
Esempio n. 6
0
 def get_storaged_topics(self):
     return Topic.select()