Example #1
0
        def buildKZorpMessage(self, dispatcher_name):
                messages = []

                # determine maximum dimension length

                kzorp_dimensions = {}
                for (key, value) in self._dimensions.items():
                        kzorp_dimensions[self.valid_dimensions[key]] = value

                kzorp_dimension_sizes = dict(map(lambda (key, value): (key, len(value)), kzorp_dimensions.items()))
                max_dimension_length = max(kzorp_dimension_sizes.values()) if len(kzorp_dimension_sizes) > 0 else 0

                messages.append((kznf.KZNL_MSG_ADD_RULE,
                                 kznf.create_add_n_dimension_rule_msg(dispatcher_name,
                                                                      self.getId(),
                                                                      self._service.name,
                                                                      kzorp_dimension_sizes)))

                for i in xrange(max_dimension_length):
                        data = {}

                        for dimension, values in kzorp_dimensions.items():
                                if len(values) > i:
                                        data[dimension] = values[i]

                        messages.append((kznf.KZNL_MSG_ADD_RULE_ENTRY,
                                         kznf.create_add_n_dimension_rule_entry_msg(dispatcher_name,
                                                                                    self.getId(),
                                                                                    data)))
                return messages