microsoftgraph / microsoftgraph/msgraph-sdk-python

schema.patch SynchronizationSchema : 404 No HTTP resource was found that matches the request URI

Open
#820 6 comments 0 reactions 1 assignee View on GitHub

Nobody has claimed this yet.

dependency:metadata type:bug
Dominant language
Python
Stars
630
Forks
96
Avg merge
15h 20m
Merged PRs (30d)
3

Description

Describe the bug

I'm trying to update one Attribut Mapping from a Synchronisation Job. For information, the provisioning job is created on template_id “gsuite”.
When I launch the schema.patch() method I have the API Error.

APIError
Code: 404
message: None
error: MainError(additional_data={}, code='UnknownError', details=None, inner_error=InnerError(additional_data={}, client_request_id='0bbde296-b67b-4dcd-a4fb-35fcd5fa98f5', date=DateTime(2024, 7, 18, 7, 14, 15, tzinfo=Timezone('UTC')), odata_type=None, request_id='c86232e3-3a57-458c-8c44-3f2874146620'), message='{"Message":"No HTTP resource was found that matches the request URI 'https://syncfabric.windowsazure.com/api/servicePrincipals(\'acc560a1-67df-4d8d-abd0-7cf74a1d7211\')/synchronization/jobs(\'gsuite.b126ececd749434c915e443764450031.8f782d8a-7b79-4417-aab7-f96538801e92\')/schema?api-version=2.0\'."}', target=None)

Expected behavior

All I do now is read the shema and then patch the shema as is without modifying it.
I expect the schema to be patched without modification.
I'll then have to update the Objects Mapping.

How to reproduce
async def patch_synchronizationSchema_case(service_principal_id: str):
    # Read Service Principal
    servicePrincipal = await client.service_principals.by_service_principal_id(service_principal_id).get()
    print(f'=================')
    print(f'app_display_name : {servicePrincipal.app_display_name}')

    # Read Job
    jobs = await client.service_principals.by_service_principal_id(service_principal_id).synchronization.jobs.get()

    if len(jobs.value) == 0:
        print(f'There is no synchronisation job')
        return
    
    job=jobs.value[0]
    synchronizationJob_id=jobs.value[0].id
    print(f'job template id : {job.template_id}')
    print(f'job id : {synchronizationJob_id}')
 
    # Read schema
    schema = await client.service_principals.by_service_principal_id(service_principal_id).synchronization.jobs.by_synchronization_job_id(synchronizationJob_id).schema.get()

    # Modifie Object Mapping
    # TODO

    # Patch schema
    await client.service_principals.by_service_principal_id(service_principal_id).synchronization.jobs.by_synchronization_job_id(synchronizationJob_id).schema.patch(schema)

asyncio.run(patch_synchronizationSchema_case(GCP_DEV2_servicePrincipal_id))
SDK Version

1.5.3

Latest version known to work for scenario above?

No response

Known Workarounds

No response

Debug output
Click to expand log ```
    APIError
    Code: 404
    message: None
    error: MainError(additional_data={}, code='UnknownError', details=None, inner_error=InnerError(additional_data={}, client_request_id='3006e706-78d4-4a17-bf17-0a02ff65b55c', date=DateTime(2024, 7, 18, 7, 26, 24, tzinfo=Timezone('UTC')), odata_type=None, request_id='fb6b307f-6a84-41f0-aeae-52d8b9d4cd00'), message='{"Message":"No HTTP resource was found that matches the request URI \'https://syncfabric.windowsazure.com/api/servicePrincipals(\'acc560a1-67df-4d8d-abd0-7cf74a1d7211\')/synchronization/jobs(\'gsuite.b126ececd749434c915e443764450031.8f782d8a-7b79-4417-aab7-f96538801e92\')/schema?api-version=2.0\'."}', target=None)
</details>


### Configuration

_No response_

### Other information

_No response_

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.