Files
odoo-addons/addons/cetmix_tower_git/models/cx_tower_server.py

1 line
9.0 KiB
Python

IyBDb3B5cmlnaHQgKEMpIDIwMjQgQ2V0bWl4IE/DnAojIExpY2Vuc2UgQUdQTC0zLjAgb3IgbGF0ZXIgKGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsKS4KCmltcG9ydCBsb2dnaW5nCgpmcm9tIG9kb28gaW1wb3J0IGFwaSwgZmllbGRzLCBtb2RlbHMKCl9sb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKCgpjbGFzcyBDeFRvd2VyU2VydmVyKG1vZGVscy5Nb2RlbCk6CiAgICBfaW5oZXJpdCA9ICJjeC50b3dlci5zZXJ2ZXIiCgogICAgZ2l0X3Byb2plY3RfcmVsX2lkcyA9IGZpZWxkcy5PbmUybWFueSgKICAgICAgICBjb21vZGVsX25hbWU9ImN4LnRvd2VyLmdpdC5wcm9qZWN0LnJlbCIsCiAgICAgICAgaW52ZXJzZV9uYW1lPSJzZXJ2ZXJfaWQiLAogICAgICAgIGNvcHk9RmFsc2UsCiAgICAgICAgZGVwZW5kcz1bImdpdF9wcm9qZWN0X2lkcyJdLAogICAgICAgIGdyb3Vwcz0iY2V0bWl4X3Rvd2VyX3NlcnZlci5ncm91cF9tYW5hZ2VyLGNldG1peF90b3dlcl9zZXJ2ZXIuZ3JvdXBfcm9vdCIsCiAgICApCgogICAgIyBIZWxwZXIgZmllbGQgdG8gZ2V0IGFsbCBnaXQgcHJvamVjdHMgcmVsYXRlZCB0byBzZXJ2ZXIKICAgICMgSU1QT1JUQU5UOiBUaGlzIGZpZWxkIG1heSBjb250YWluIGR1cGxpY2F0ZXMgYmVjYXVzZSBvZiB0aGUgcmVsYXRpb24gbmF0dXJlIQogICAgZ2l0X3Byb2plY3RfaWRzID0gZmllbGRzLk1hbnkybWFueSgKICAgICAgICBjb21vZGVsX25hbWU9ImN4LnRvd2VyLmdpdC5wcm9qZWN0IiwKICAgICAgICByZWxhdGlvbj0iY3hfdG93ZXJfZ2l0X3Byb2plY3RfcmVsIiwKICAgICAgICBjb2x1bW4xPSJzZXJ2ZXJfaWQiLAogICAgICAgIGNvbHVtbjI9ImdpdF9wcm9qZWN0X2lkIiwKICAgICAgICByZWFkb25seT1UcnVlLAogICAgICAgIGNvcHk9RmFsc2UsCiAgICAgICAgZGVwZW5kcz1bImdpdF9wcm9qZWN0X3JlbF9pZHMiXSwKICAgICAgICBncm91cHM9ImNldG1peF90b3dlcl9zZXJ2ZXIuZ3JvdXBfbWFuYWdlcixjZXRtaXhfdG93ZXJfc2VydmVyLmdyb3VwX3Jvb3QiLAogICAgKQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAjIFlBTUwgbWl4aW4gbWV0aG9kcwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIGRlZiBfZ2V0X2ZpZWxkc19mb3JfeWFtbChzZWxmKToKICAgICAgICByZXMgPSBzdXBlcigpLl9nZXRfZmllbGRzX2Zvcl95YW1sKCkKICAgICAgICByZXMgKz0gWwogICAgICAgICAgICAiZ2l0X3Byb2plY3RfcmVsX2lkcyIsCiAgICAgICAgXQogICAgICAgIHJldHVybiByZXMKCiAgICBkZWYgX2dldF9mb3JjZV94Mm1fcmVzb2x2ZV9tb2RlbHMoc2VsZik6CiAgICAgICAgcmVzID0gc3VwZXIoKS5fZ2V0X2ZvcmNlX3gybV9yZXNvbHZlX21vZGVscygpCgogICAgICAgICMgQWRkIEZpbGUgaW4gb3JkZXIgdG8gYWx3YXlzIHRyeSB0byB1c2UgZXhpc3Rpbmcgb25lCiAgICAgICAgcmVzICs9IFsiY3gudG93ZXIuZmlsZSJdCiAgICAgICAgcmV0dXJuIHJlcwoKICAgIGRlZiBfdXBkYXRlX29yX2NyZWF0ZV9yZWxhdGVkX3JlY29yZCgKICAgICAgICBzZWxmLCBtb2RlbCwgcmVmZXJlbmNlLCB2YWx1ZXMsIGNyZWF0ZV9pbW1lZGlhdGVseT1GYWxzZQogICAgKToKICAgICAgICAjIEZpbGVzIG11c3QgYmUgY3JlYXRlZCBpbW1lZGlhdGVseSBiZWNhdXNlIHRoZXkgYXJlIHJlbGF0ZWQKICAgICAgICAjIHRvIGJvdGggc2VydmVyIGFuZCBnaXQgcHJvamVjdC4KICAgICAgICAjIFNvIGlmIGEgZmlsZSBpcyBub3QgY3JlYXRlZCBpbW1lZGlhdGVseSB3aGVuIGl0IGlzIGNyZWF0ZWQKICAgICAgICAjIGZvciB0aGUgc2VydmVyLCB0aGUgc2FtZSBmaWxlIHdpbGwgYmUgY3JlYXRlZCBmb3IgdGhlIGdpdCBwcm9qZWN0LgogICAgICAgICMgVGhpcyB3aWxsIGxlYWQgdG8gY3JlYXRpb24gb2YgdHdvIGZpbGVzIHdpdGggdGhlIHNhbWUgY29udGVudAogICAgICAgICMgZm9yIHRoZSBzYW1lIHNlcnZlci4KCiAgICAgICAgaWYgbW9kZWwuX25hbWUgPT0gImN4LnRvd2VyLmZpbGUiOgogICAgICAgICAgICBjcmVhdGVfaW1tZWRpYXRlbHkgPSBUcnVlCiAgICAgICAgcmV0dXJuIHN1cGVyKCkuX3VwZGF0ZV9vcl9jcmVhdGVfcmVsYXRlZF9yZWNvcmQoCiAgICAgICAgICAgIG1vZGVsLCByZWZlcmVuY2UsIHZhbHVlcywgY3JlYXRlX2ltbWVkaWF0ZWx5PWNyZWF0ZV9pbW1lZGlhdGVseQogICAgICAgICkKCiAgICBAYXBpLm1vZGVsCiAgICBkZWYgZ2V0X3NlcnZlcnNfYnlfZ2l0X3JlZihzZWxmLCByZXBvc2l0b3J5X3VybCwgaGVhZD1Ob25lLCBoZWFkX3R5cGU9Tm9uZSk6CiAgICAgICAgIiIiCiAgICAgICAgUmV0dXJuIHNlcnZlcnMgbGlua2VkIHRvIGEgZ2l2ZW4gR2l0IHJlcG9zaXRvcnkgcmVmZXJlbmNlLgoKICAgICAgICBQYXJhbWV0ZXJzCiAgICAgICAgLS0tLS0tLS0tLQogICAgICAgIHJlcG9zaXRvcnlfdXJsIDogc3RyCiAgICAgICAgICAgIFByZS1ub3JtYWxpemVkIGNhbm9uaWNhbCBHaXQgVVJMCiAgICAgICAgICAgIChlLmcuIGBgaHR0cHM6Ly9ob3N0L293bmVyL3JlcG8uZ2l0YGApLgogICAgICAgIGhlYWQgOiBzdHIsIG9wdGlvbmFsCiAgICAgICAgICAgIEJyYW5jaCBuYW1lLCBjb21taXQgU0hBLCBvciBQUiBpZGVudGlmaWVyLgogICAgICAgIGhlYWRfdHlwZSA6IHsnYnJhbmNoJywgJ2NvbW1pdCcsICdwcid9LCBvcHRpb25hbAogICAgICAgICAgICBUeXBlIG9mIHRoZSBgYGhlYWRgYCBhcmd1bWVudC4KICAgICAgICAgICAgSWYgb25seSBgYGhlYWRgYCBpcyBwcm92aWRlZCwgaXQgd2lsbCBtYXRjaCBhY3Jvc3MgYWxsIGhlYWQgdHlwZXMuCiAgICAgICAgICAgIElmIG9ubHkgYGBoZWFkX3R5cGVgYCBpcyBwcm92aWRlZCwgaXQgd2lsbCBmaWx0ZXIgYnkgdHlwZSByZWdhcmRsZXNzIG9mIGhlYWQKCiAgICAgICAgUmV0dXJucwogICAgICAgIC0tLS0tLS0KICAgICAgICByZWNvcmRzZXQgb2YgY3gudG93ZXIuc2VydmVyCiAgICAgICAgICAgIE1hdGNoaW5nIHNlcnZlcnMuIEVtcHR5IHJlY29yZHNldCBpZiBubyBtYXRjaGVzLgogICAgICAgICIiIgoKICAgICAgICBzZXJ2ZXJfb2JqID0gc2VsZi5lbnZbImN4LnRvd2VyLnNlcnZlciJdCiAgICAgICAgIyBVUkwgTVVTVCBiZSBhbHJlYWR5IGNhbm9uaWNhbC4KICAgICAgICBpZiBub3QgcmVwb3NpdG9yeV91cmw6CiAgICAgICAgICAgIHJldHVybiBzZXJ2ZXJfb2JqCgogICAgICAgICMgR2V0IHJlcG9zaXRvcnkgaWQgYnkgVVJMCiAgICAgICAgcmVwb19pZCA9IHNlbGYuZW52WyJjeC50b3dlci5naXQucmVwbyJdLl9nZXRfcmVwb19pZF9ieV91cmwoCiAgICAgICAgICAgIHJlcG9zaXRvcnlfdXJsLCByYWlzZV9pZl9pbnZhbGlkPUZhbHNlCiAgICAgICAgKQogICAgICAgIGlmIG5vdCByZXBvX2lkOgogICAgICAgICAgICByZXR1cm4gc2VydmVyX29iagogICAgICAgIHJlcG8gPSBzZWxmLmVudlsiY3gudG93ZXIuZ2l0LnJlcG8iXS5icm93c2UocmVwb19pZCkKCiAgICAgICAgIyBDb21wb3NlIGRvbWFpbiBmb3IgcmVtb3RlcwogICAgICAgIHJlbW90ZV9kb21haW4gPSBbCiAgICAgICAgICAgICgic291cmNlX2lkLmVuYWJsZWQiLCAiPSIsIFRydWUpLAogICAgICAgICAgICAoImVuYWJsZWQiLCAiPSIsIFRydWUpLAogICAgICAgIF0KICAgICAgICBpZiBoZWFkOgogICAgICAgICAgICBoZWFkID0gc2VsZi5lbnZbImN4LnRvd2VyLmdpdC5yZW1vdGUiXS5fc2FuaXRpemVfaGVhZChoZWFkKQogICAgICAgICAgICByZW1vdGVfZG9tYWluLmFwcGVuZCgoImhlYWQiLCAiPSIsIGhlYWQpKQogICAgICAgIGlmIGhlYWRfdHlwZToKICAgICAgICAgICAgcmVtb3RlX2RvbWFpbi5hcHBlbmQoKCJoZWFkX3R5cGUiLCAiPSIsIGhlYWRfdHlwZSkpCgogICAgICAgICMgR2V0IHJlbW90ZXMKICAgICAgICByZW1vdGVzID0gcmVwby5yZW1vdGVfaWRzLmZpbHRlcmVkX2RvbWFpbihyZW1vdGVfZG9tYWluKQogICAgICAgIGlmIG5vdCByZW1vdGVzOgogICAgICAgICAgICByZXR1cm4gc2VydmVyX29iagoKICAgICAgICAjIEdldCBzZXJ2ZXJzIGZyb20gcmVtb3RlcwogICAgICAgIHNlcnZlcnMgPSByZW1vdGVzLm1hcHBlZCgiZ2l0X3Byb2plY3RfaWQuZ2l0X3Byb2plY3RfcmVsX2lkcy5zZXJ2ZXJfaWQiKQogICAgICAgIHJldHVybiBzZXJ2ZXJzCgogICAgZGVmIF9jb21tYW5kX3J1bm5lcl9maWxlX3VzaW5nX3RlbXBsYXRlX2NyZWF0ZV9maWxlKAogICAgICAgIHNlbGYsCiAgICAgICAgbG9nX3JlY29yZCwKICAgICAgICBzZXJ2ZXJfZGlyLAogICAgICAgICoqa3dhcmdzLAogICAgKToKICAgICAgICAiIiJPdmVycmlkZSB0byBjcmVhdGUgZ2l0IHByb2plY3QgcmVsYXRpb24KICAgICAgICB3aGVuIGNyZWF0aW5nIGEgZmlsZSB1c2luZyBhIHRlbXBsYXRlLgogICAgICAgICIiIgogICAgICAgIGZpbGUgPSBzdXBlcigpLl9jb21tYW5kX3J1bm5lcl9maWxlX3VzaW5nX3RlbXBsYXRlX2NyZWF0ZV9maWxlKAogICAgICAgICAgICBsb2dfcmVjb3JkLCBzZXJ2ZXJfZGlyLCAqKmt3YXJncwogICAgICAgICkKICAgICAgICBpZiBmaWxlOgogICAgICAgICAgICAjIEdldCB0aGUgZmxpZ2h0IHBsYW4gbGluZSBmcm9tIGxvZyByZWNvcmQKICAgICAgICAgICAgcGxhbl9saW5lID0gbG9nX3JlY29yZC5wbGFuX2xvZ19pZC5wbGFuX2xpbmVfZXhlY3V0ZWRfaWQKICAgICAgICAgICAgIyBUcnkgdG8gZ2V0IGdpdCBwcm9qZWN0IGZyb20gY3VzdG9tIHZhbHVlcwogICAgICAgICAgICBjdXN0b21fdmFsdWVzID0gbG9nX3JlY29yZC52YXJpYWJsZV92YWx1ZXMKICAgICAgICAgICAgZ2l0X3Byb2plY3RfcmVmZXJlbmNlID0gY3VzdG9tX3ZhbHVlcyBhbmQgY3VzdG9tX3ZhbHVlcy5nZXQoCiAgICAgICAgICAgICAgICAiX19naXRfcHJvamVjdF9fIgogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIGdpdF9wcm9qZWN0X3JlZmVyZW5jZToKICAgICAgICAgICAgICAgIGdpdF9wcm9qZWN0ID0gc2VsZi5lbnZbImN4LnRvd2VyLmdpdC5wcm9qZWN0Il0uZ2V0X2J5X3JlZmVyZW5jZSgKICAgICAgICAgICAgICAgICAgICBnaXRfcHJvamVjdF9yZWZlcmVuY2UKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIGlmIG5vdCBnaXRfcHJvamVjdDoKICAgICAgICAgICAgICAgICAgICBfbG9nZ2VyLndhcm5pbmcoCiAgICAgICAgICAgICAgICAgICAgICAgICJHaXQgcHJvamVjdCAnJXMnIHByb3ZpZGVkIHdpdGggdGhlIGBfX2dpdF9wcm9qZWN0X19gICIKICAgICAgICAgICAgICAgICAgICAgICAgImN1c3RvbSB2YWx1ZSBub3QgZm91bmQgZm9yIHNlcnZlciAnJXMnICIKICAgICAgICAgICAgICAgICAgICAgICAgImluIGZsaWdodCBwbGFuIGxpbmUgJyVzJyAiCiAgICAgICAgICAgICAgICAgICAgICAgICJvZiB0aGUgZmxpZ2h0IHBsYW4gJyVzJy4gIgogICAgICAgICAgICAgICAgICAgICAgICAiTm8gcHJvamVjdCB3YXMgbGlua2VkIHRvIHRoZSBmaWxlICclcycuIiwKICAgICAgICAgICAgICAgICAgICAgICAgZ2l0X3Byb2plY3RfcmVmZXJlbmNlLAogICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIHBsYW5fbGluZS5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBsb2dfcmVjb3JkLnBsYW5fbG9nX2lkLnBsYW5faWQubmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5uYW1lLAogICAgICAgICAgICAgICAgICAgICkKCiAgICAgICAgICAgICMgVHJ5IHRvIGdldCBnaXQgcHJvamVjdCBzZXQgZXhwbGljaXRseSBpbiB0aGUgZmxpZ2h0IHBsYW4gbGluZQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgZ2l0X3Byb2plY3QgPSBwbGFuX2xpbmUuZ2l0X3Byb2plY3RfaWQKICAgICAgICAgICAgaWYgbm90IGdpdF9wcm9qZWN0OgogICAgICAgICAgICAgICAgcmV0dXJuIGZpbGUKCiAgICAgICAgICAgIGlmIHBsYW5fbGluZS5pc19tYWtlX2NvcHk6CiAgICAgICAgICAgICAgICAjIFJlbW92ZSBkZWZhdWx0X3NlcnZlcl9pZHMgZnJvbSBjb250ZXh0LCBiZWNhdXNlIHRoaXMgcmVsYXRpb24KICAgICAgICAgICAgICAgICMgd2lsbCBiZSBjcmVhdGVkIHRocm91Z2ggZ2l0X3Byb2plY3RfcmVsX2lkcy4KICAgICAgICAgICAgICAgICMgZGVmYXVsdF9zZXJ2ZXJfaWRzIHdpbGwgaW50ZXJmZXJlIGF0IHRoZSBtb21lbnQgd2hlbgogICAgICAgICAgICAgICAgIyBwYWlycyBvZiB2YWx1ZXMgYXJlIGNyZWF0ZWQgdGhyb3VnaCBTUUwgcXVlcnkKICAgICAgICAgICAgICAgICMgaW4gdGhlIG1ldGhvZCB3cml0ZV9yZWFsIGFuZCBpdCBkb2VzIG5vdCB0YWtlIGludG8gYWNjb3VudAogICAgICAgICAgICAgICAgIyB0aGF0IGluIHRoaXMgY2FzZSB3ZSBhcmUgY3JlYXRpbmcgYSBjb3B5IG9mIHRoZSBnaXQgcHJvamVjdAogICAgICAgICAgICAgICAgZ2l0X3Byb2plY3QgPSBnaXRfcHJvamVjdC53aXRoX2NvbnRleHQoZGVmYXVsdF9zZXJ2ZXJfaWRzPUZhbHNlKS5jb3B5KAogICAgICAgICAgICAgICAgICAgIHsibmFtZSI6IGdpdF9wcm9qZWN0Ll9jb21wb3NlX2NvcHlfbmFtZShzZXJ2ZXI9c2VsZil9CiAgICAgICAgICAgICAgICApCgogICAgICAgICAgICBzZWxmLmVudlsiY3gudG93ZXIuZ2l0LnByb2plY3QucmVsIl0uY3JlYXRlKAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJnaXRfcHJvamVjdF9pZCI6IGdpdF9wcm9qZWN0LmlkLAogICAgICAgICAgICAgICAgICAgICJzZXJ2ZXJfaWQiOiBzZWxmLmlkLAogICAgICAgICAgICAgICAgICAgICJmaWxlX2lkIjogZmlsZS5pZCwKICAgICAgICAgICAgICAgICAgICAicHJvamVjdF9mb3JtYXQiOiBnaXRfcHJvamVjdC5fZGVmYXVsdF9wcm9qZWN0X2Zvcm1hdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApCiAgICAgICAgcmV0dXJuIGZpbGUK