Code Duplication    Length = 10-11 lines in 3 locations

opcua/server/subscription_service.py 3 locations

@@ 69-79 (lines=11) @@
66
67
    def publish(self, acks):
68
        self.logger.info("publish request with acks %s", acks)
69
        with self._lock:
70
            for subid, sub in self.subscriptions.items():
71
                sub.publish([ack.SequenceNumber for ack in acks if ack.SubscriptionId == subid])
72
73
    def create_monitored_items(self, params):
74
        self.logger.info("create monitored items")
75
        with self._lock:
76
            if params.SubscriptionId not in self.subscriptions:
77
                res = []
78
                for _ in params.ItemsToCreate:
79
                    response = ua.MonitoredItemCreateResult()
80
                    response.StatusCode = ua.StatusCode(ua.StatusCodes.BadSubscriptionIdInvalid)
81
                    res.append(response)
82
                return res
@@ 57-67 (lines=11) @@
54
    def delete_subscriptions(self, ids):
55
        self.logger.info("delete subscriptions: %s", ids)
56
        res = []
57
        for i in ids:
58
            with self._lock:
59
                if i not in self.subscriptions:
60
                    res.append(ua.StatusCode(ua.StatusCodes.BadSubscriptionIdInvalid))
61
                else:
62
                    sub = self.subscriptions.pop(i)
63
                    sub.stop()
64
                    res.append(ua.StatusCode())
65
        return res
66
67
    def publish(self, acks):
68
        self.logger.info("publish request with acks %s", acks)
69
        with self._lock:
70
            for subid, sub in self.subscriptions.items():
@@ 81-90 (lines=10) @@
78
                for _ in params.ItemsToCreate:
79
                    response = ua.MonitoredItemCreateResult()
80
                    response.StatusCode = ua.StatusCode(ua.StatusCodes.BadSubscriptionIdInvalid)
81
                    res.append(response)
82
                return res
83
            return self.subscriptions[params.SubscriptionId].monitored_item_srv.create_monitored_items(params)
84
85
    def modify_monitored_items(self, params):
86
        self.logger.info("modify monitored items")
87
        with self._lock:
88
            if params.SubscriptionId not in self.subscriptions:
89
                res = []
90
                for _ in params.ItemsToModify:
91
                    result = ua.MonitoredItemModifyResult()
92
                    result.StatusCode = ua.StatusCode(ua.StatusCodes.BadSubscriptionIdInvalid)
93
                    res.append(result)