Skip to content

Commit 5d13a49

Browse files
committed
Add --force option to bypass fingerprint check during import
1 parent cd45cec commit 5d13a49

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ APP_NAME = "sesame-taiga_crawler"
77
PLATFORM = "linux/amd64"
88
STC_RUN = "all"
99
STC_IMPORTS = "all"
10+
STC_FORCE = "0"
1011
include .env
1112

1213
.DEFAULT_GOAL := help
@@ -30,7 +31,7 @@ run-crawler-docker: ## Lance le crawler Sesame - Taiga avec python !
3031
--platform $(PLATFORM) \
3132
--name $(APP_NAME) \
3233
-v $(CURDIR):/data \
33-
$(IMG_NAME) python main.py --run=$(STC_RUN) --imports=$(STC_IMPORTS)
34+
$(IMG_NAME) python main.py --run=$(STC_RUN) --imports=$(STC_IMPORTS) --force $(STC_FORCE)
3435

3536
run-crawler: ## Lance le crawler Sesame - Taiga avec python !
3637
@python3 main.py

main.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,8 @@ async def main():
118118
parser = argparse.ArgumentParser()
119119
parser.add_argument('--run', help='all | taiga | sesame',default='all')
120120
parser.add_argument('--imports', help='all | ind | pictures',default='all')
121-
parser.add_argument('--an', help='Année universitaire à importer ',default="0")
121+
parser.add_argument('--an', help='Année universitaire à importer',default="0")
122+
parser.add_argument('--force', help="Force l'import et bypass le check du fingerprint",default="0")
122123
args = parser.parse_args()
123124
if args.an != 0:
124125
print(f"Import pour l'annee {args.an}")
@@ -148,7 +149,7 @@ async def main():
148149
print(f"Imports: {args.imports}")
149150
start_time = datetime.now()
150151
if (args.imports == 'ind' or args.imports == 'all'):
151-
await import_ind()
152+
await import_ind(args.force)
152153
if (args.imports == 'pictures' or args.imports == 'all'):
153154
await import_pictures()
154155
end_time = datetime.now()

src/import_ind.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ async def read_response(response):
2828
jsonMessage = json.loads(message)
2929
print(jsonMessage)
3030

31-
async def send_request(session, url,exclusions, json):
31+
async def send_request(session, url,exclusions, json, force):
3232
if (json.get('inetOrgPerson', {}).get('employeeNumber') == None and json.get('$setOnInsert', {}).get('inetOrgPerson', {}).get('employeeNumber') == None):
3333
print(f"MISSING employeeNumber -> $set: {json.get('inetOrgPerson', {})}, $setOnInsert: {json.get('$setOnInsert', {}).get('inetOrgPerson', {})}")
3434
return
@@ -40,6 +40,7 @@ async def send_request(session, url,exclusions, json):
4040
params = {
4141
# "filters[inetOrgPerson.employeeNumber]": f"{json.get('inetOrgPerson', {}).get('employeeNumber')}",
4242
"filters[inetOrgPerson.employeeType]": "TAIGA",
43+
"force": force,
4344
}
4445

4546
employeeNumber = json.get('inetOrgPerson', {}).get('employeeNumber') or json.get('$setOnInsert', {}).get('inetOrgPerson', {}).get('employeeNumber')
@@ -91,21 +92,21 @@ async def get_data(data, config):
9192

9293

9394

94-
async def process_data(data, config, file, session):
95+
async def process_data(data, config, file, session, force):
9596
print(f"Processing {file}")
9697
result = await get_data(data, config)
9798
with open(f'./data/{file}', 'w', encoding='utf-8') as fichier:
9899
json.dump(result, fichier, ensure_ascii=False, indent=4)
99100
exclude=config.get('exclude',[])
100-
tasks = [send_request(session, f'{sesame_api_baseurl}/management/identities/upsert',config.get('exclude',[]),entry) for entry in result]
101+
tasks = [send_request(session, f'{sesame_api_baseurl}/management/identities/upsert',config.get('exclude',[]),entry, force) for entry in result]
101102
await gather_with_concurrency(sesame_import_parallels_files, tasks)
102103
print(f"Processed {file}")
103104

104105
async def load_config():
105106
with open('./config.yml', 'r', encoding='utf-8') as fichier:
106107
return yaml.load(fichier, Loader=yaml.FullLoader)
107108

108-
async def import_ind():
109+
async def import_ind(force: bool):
109110
configs = await load_config()
110111
cache_files = os.listdir('./cache')
111112
datas = {}
@@ -116,5 +117,5 @@ async def import_ind():
116117
datas[file] = json.load(fichier).get('data')
117118

118119
async with aiohttp.ClientSession() as session:
119-
tasks = [process_data(datas[file], configs[file], file, session) for file in cache_files if file in configs.keys()]
120+
tasks = [process_data(datas[file], configs[file], file, session, force) for file in cache_files if file in configs.keys()]
120121
await gather_with_concurrency(sesame_import_parallels_files, tasks)

0 commit comments

Comments
 (0)