brynq-sdk-task-scheduler 1.1.2__tar.gz → 1.1.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: brynq_sdk_task_scheduler
3
- Version: 1.1.2
3
+ Version: 1.1.4
4
4
  Summary: Code to execute tasks in BrynQ.com with the task scheduler
5
5
  Home-page: UNKNOWN
6
6
  Author: BrynQ
@@ -50,7 +50,6 @@ class TaskScheduler(BrynQ):
50
50
  # Check if the log tables exists in the customer database. If not, create them
51
51
  # Mysql throws a warning when a table already exists. We don't care so we ignore warnings. (not exceptions!)
52
52
  warnings.filterwarnings('ignore')
53
- # self.check_if_logging_tables_exists()
54
53
 
55
54
  # Check if the task is started on schedule or manual. store in a variable to use later in the script
56
55
  self.task_manual_started = self.check_if_task_manual_started()
@@ -72,100 +71,6 @@ class TaskScheduler(BrynQ):
72
71
  key_count += self.__count_keys(value) # Recursively count keys in nested dictionaries
73
72
  return key_count
74
73
 
75
- def check_if_logging_tables_exists(self):
76
- """
77
- This function checks if all the needed tables for the task_scheduler exists. If they don't, this function
78
- creates the needed tables
79
- :return: nothing
80
- """
81
- # Check if the table task_scheduler exists. If not, create it
82
- new_table_query = 'CREATE TABLE IF NOT EXISTS `task_scheduler` (' \
83
- '`id` int(11) NOT NULL AUTO_INCREMENT,' \
84
- '`dashboard_reload` bool NOT NULL DEFAULT \'0\',' \
85
- '`title` varchar(50) NOT NULL,' \
86
- '`description` varchar(255) NOT NULL,' \
87
- '`dashboard_guid` varchar(255) NULL DEFAULT NULL,' \
88
- '`docker_image` varchar(255) DEFAULT NULL,' \
89
- '`runfile_path` varchar(255) DEFAULT NULL,' \
90
- '`trigger_type` enum("MANUAL", "TIME", "OTHER_TASK") NOT NULL DEFAULT \'MANUAL\',' \
91
- '`next_reload` timestamp NULL DEFAULT NULL,' \
92
- '`timezone` enum("Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Fort_Nelson", "America/Fortaleza", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Chita", "Asia/Choibalsan", "Asia/Colombo", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kathmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Riyadh", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faroe", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/Perth", "Australia/Sydney", "Canada/Atlantic", "Canada/Central", "Canada/Eastern", "Canada/Mountain", "Canada/Newfoundland", "Canada/Pacific", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "GMT", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Wake", "Pacific/Wallis", "US/Alaska", "US/Arizona", "US/Central", "US/Eastern", "US/Hawaii", "US/Mountain", "US/Pacific", "UTC") CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT \"Europe/Amsterdam\",' \
93
- '`frequency` varchar(255) DEFAULT \'{"month":0,"day":0,"hour":0,"minute":0}\',' \
94
- '`start_after_task_id` int DEFAULT NULL,' \
95
- '`start_after_preceding_task` enum("FAILED", "SUCCESS") DEFAULT NULL,' \
96
- '`last_reload` timestamp NULL DEFAULT NULL,' \
97
- '`last_error_message` varchar(255) DEFAULT NULL,' \
98
- '`status` varchar(255) DEFAULT \'IDLE\',' \
99
- '`disabled` tinyint(4) DEFAULT \'1\',' \
100
- '`run_instant` tinyint(1) DEFAULT \'0\',' \
101
- '`sftp_mapping` varchar(255) NOT NULL DEFAULT \'[]\',' \
102
- '`step_nr` int NOT NULL DEFAULT \'0\',' \
103
- '`stopped_by_user` tinyint(1) DEFAULT \'0\',' \
104
- '`stop_is_allowed` bool NOT NULL DEFAULT \'0\',' \
105
- 'PRIMARY KEY (`id`),' \
106
- 'UNIQUE KEY `task_scheduler_id_uindex` (`id`),' \
107
- 'constraint task_scheduler_task_scheduler_id_fk foreign key (start_after_task_id) references task_scheduler (id)' \
108
- ') ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci'
109
- self.mysql.raw_query(new_table_query)
110
-
111
- # Check if the table task_scheduler_log exists. If not, create it
112
- new_table_query = 'CREATE TABLE IF NOT EXISTS `task_scheduler_log` (' \
113
- '`reload_id` bigint NOT NULL,' \
114
- '`task_id` int NULL,' \
115
- '`reload_status` varchar(255) NULL,' \
116
- '`started_at` datetime NULL,' \
117
- '`finished_at` datetime NULL' \
118
- ') ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci'
119
- self.mysql.raw_query(new_table_query)
120
-
121
- # Check if the table check_task_execution_log exists. If not, create it
122
- new_table_query = 'CREATE TABLE IF NOT EXISTS `task_execution_log`(' \
123
- '`reload_id` bigint NOT NULL,' \
124
- '`task_id` int NULL,' \
125
- '`log_level` varchar(255) NULL,' \
126
- '`created_at` datetime NULL,' \
127
- '`line_number` int NULL,' \
128
- '`message` longtext NULL)' \
129
- 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci'
130
- self.mysql.raw_query(new_table_query)
131
-
132
- # Check if the table check_task_execution_steps exists. If not, create it
133
- new_table_query = 'CREATE TABLE IF NOT EXISTS `task_execution_steps`(' \
134
- '`id` bigint NOT NULL AUTO_INCREMENT,' \
135
- '`task_id` int NULL,' \
136
- '`nr` int DEFAULT 0 NOT NULL,' \
137
- '`description` varchar(255) DEFAULT \'ZzZzZz...\' NOT NULL,' \
138
- 'PRIMARY KEY (`id`),' \
139
- 'UNIQUE KEY `task_execution_steps_id_uindex` (`id`),' \
140
- 'UNIQUE INDEX `task_execution_steps_task_id_nr_uindex` (`task_id`, `nr`))' \
141
- 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci'
142
- self.mysql.raw_query(new_table_query)
143
-
144
- new_table_query = 'CREATE TABLE IF NOT EXISTS `task_variables`(' \
145
- 'id INT NOT NULL AUTO_INCREMENT,' \
146
- 'task_id INT NOT NULL,' \
147
- 'name VARCHAR(150) NOT NULL,' \
148
- 'description VARCHAR(255) NULL,' \
149
- 'type ENUM(\'INT\', \'TINYINT\', \'BIGINT\', \'FLOAT\', \'DOUBLE\', \'DATETIME\', \'TIMESTAMP\', \'TIME\', \'VARCHAR\', \'BLOB\', \'TEXT\', \'LONGBLOB\') NOT NULL,' \
150
- 'value VARCHAR(600) NULL,' \
151
- 'temp_value VARCHAR(600) NULL,' \
152
- 'PRIMARY KEY (`id`),' \
153
- 'UNIQUE KEY `task_variables_id_uindex` (`id`),' \
154
- 'UNIQUE INDEX `task_variables_name_value_uindex` (`task_id`, `name`, `value`), ' \
155
- 'INDEX `task_variables_name_index` (`name`),' \
156
- 'CONSTRAINT task_variables_task_scheduler_id_fk ' \
157
- 'FOREIGN KEY (`task_id`) REFERENCES task_scheduler (`id`) ON DELETE CASCADE)' \
158
- 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci'
159
- self.mysql.raw_query(new_table_query)
160
-
161
- # Add the variable 'email_errors_to' as default to the new added table if it doesn't exist for the current task
162
- response = self.mysql.select('task_variables', 'temp_value',
163
- f'WHERE name = \'email_errors_to\' AND task_id = {self.task_id}')
164
- if len(response) == 0:
165
- new_variables = f"-- INSERT INTO `task_variables` (`task_id`, `name`, `type`, `value`, `temp_value`) " \
166
- f"VALUES ({self.task_id}, 'email_errors_to', 'TEXT', 'example@brynq.com, example2@brynq.com', 'example@brynq.com, example2@brynq.com')"
167
- self.mysql.raw_query(new_variables, insert=True)
168
-
169
74
  def create_task_execution_steps(self, step_details: list):
170
75
  """
171
76
  Check if the given steps already exists in the task_execution_steps table. If not, update or insert the values in the table
@@ -316,7 +221,7 @@ class TaskScheduler(BrynQ):
316
221
  payload = {
317
222
  'reload_id': self.run_id,
318
223
  'task_id': self.task_id,
319
- 'customer_id': os.getenv('BRYNQ_CUSTOMER_NAME').lower().replace(' ', '_'),
224
+ 'customer_id': os.getenv('BRYNQ_SUBDOMAIN').lower().replace(' ', '_'),
320
225
  'started_at': datetime.datetime.now().isoformat(),
321
226
  'loglevel': loglevel,
322
227
  'message': message
@@ -390,7 +295,7 @@ class TaskScheduler(BrynQ):
390
295
  payload = {
391
296
  'reload_id': self.run_id,
392
297
  'task_id': self.task_id,
393
- 'customer_id': os.getenv('BRYNQ_CUSTOMER_NAME').lower().replace(' ', '_'),
298
+ 'customer_id': os.getenv('BRYNQ_SUBDOMAIN').lower().replace(' ', '_'),
394
299
  'started_at': datetime.datetime.now().isoformat(),
395
300
  'loglevel': 'CRITICAL',
396
301
  'message': str(e),
@@ -405,7 +310,7 @@ class TaskScheduler(BrynQ):
405
310
  error = str(e)[:400].replace('\'', '').replace('\"', '') + ' | Line: {}'.format(exc_tb.tb_lineno)
406
311
  # Get scheduler task details for logging
407
312
  task_details = \
408
- self.mysql.select('task_scheduler', 'docker_image, runfile_path', 'WHERE id = {}'.format(self.task_id))[0]
313
+ self.mysql.select('task_scheduler, data_interfaces', 'data_interfaces.docker_image, data_interfaces.runfile_path', 'WHERE task_scheduler.data_interface_id = data_interfaces.id AND task_scheduler.id = {}'.format(self.task_id))[0]
409
314
  taskname = task_details[0]
410
315
  customer = task_details[1].split('/')[-1].split('.')[0]
411
316
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: brynq-sdk-task-scheduler
3
- Version: 1.1.2
3
+ Version: 1.1.4
4
4
  Summary: Code to execute tasks in BrynQ.com with the task scheduler
5
5
  Home-page: UNKNOWN
6
6
  Author: BrynQ
@@ -2,4 +2,4 @@ brynq-sdk-brynq>=1
2
2
  brynq-sdk-functions>=1
3
3
  brynq-sdk-mysql>=1
4
4
  brynq-sdk-mandrill>=1
5
- brynq-sdk-elastic>=1
5
+ brynq-sdk-elastic>=2
@@ -3,7 +3,7 @@ from setuptools import setup
3
3
 
4
4
  setup(
5
5
  name='brynq_sdk_task_scheduler',
6
- version='1.1.2',
6
+ version='1.1.4',
7
7
  description='Code to execute tasks in BrynQ.com with the task scheduler',
8
8
  long_description='Code to execute tasks in the BrynQ.com platform with the task scheduler',
9
9
  author='BrynQ',
@@ -15,7 +15,7 @@ setup(
15
15
  'brynq-sdk-functions>=1',
16
16
  'brynq-sdk-mysql>=1',
17
17
  'brynq-sdk-mandrill>=1',
18
- 'brynq-sdk-elastic>=1'
18
+ 'brynq-sdk-elastic>=2'
19
19
  ],
20
20
  zip_safe=False,
21
21
  )