Hello everyone!
For the needs of our production, i'm developping a tool that will have to create ReviewSessions filleds with ReviewSessionsObject on AssetsVersion that are not linked to a task. Basically, i need to use the api to do what this button in the review session would do:
To achieve this i have written the following code:
assetParent = session.query('Project where name is "MyProject"').first()
assetType = session.query('AssetType where name is "Upload"').one()
asset = session.create('Asset',{
'name': 'MyAsset',
'type': assetType,
'parent': assetParent
})
assetVersion = session.create('AssetVersion',{
'Asset' : asset,
})
review_session_objects = session.create('ReviewSessionObject', {
'name': 'Test',
'description': 'This is a test',
'review_session': session.query('ReviewSession where name is "MyReviewSession"').first(),
'asset_version' : assetVersion
})
assetVersion.create_component(
'image.png',
data={'name': 'FileName'},
location=session.query('Location where name is "ftrack.server"').one()
)
session.commit()
which outputs me the following error message:
Server reported error: PermissionError(Permission denied: not allowed to 'create' 'FileComponent'. Missing the required 'READ_PROJECT' permission.)
Traceback (most recent call last):
File "C:\Python39\lib\site-packages\ftrack_api\session.py", line 1912, in create_component
collection = clique.parse(path)
File "C:\Python39\lib\site-packages\clique\__init__.py", line 248, in parse
raise ValueError('Value did not match pattern.')
ValueError: Value did not match pattern.
Traceback (most recent call last):
File "C:\Python39\lib\site-packages\ftrack_api\session.py", line 1912, in create_component
collection = clique.parse(path)
File "C:\Python39\lib\site-packages\clique\__init__.py", line 248, in parse
raise ValueError('Value did not match pattern.')
ValueError: Value did not match pattern.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Python39\lib\site-packages\ftrack_api\entity\location.py", line 249, in add_components
self._register_components_in_location(
File "C:\Python39\lib\site-packages\ftrack_api\entity\location.py", line 409, in _register_components_in_location
self.session.commit()
File "C:\Python39\lib\site-packages\ftrack_api\session.py", line 1265, in commit
result = self.call(batch)
File "C:\Python39\lib\site-packages\ftrack_api\session.py", line 1643, in call
raise ftrack_api.exception.ServerError(error_message)
ftrack_api.exception.ServerError: Server reported error: PermissionError(Permission denied: not allowed to 'create' 'FileComponent'. Missing the required 'READ_PROJECT' permission.)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:\Users\florent.dupont\Documents\ReviewVR_test\FtrackTest.py", line 33, in <module>
assetVersion.create_component(
File "C:\Python39\lib\site-packages\ftrack_api\entity\asset_version.py", line 47, in create_component
return self.session.create_component(path, data=data, location=location)
File "C:\Python39\lib\site-packages\ftrack_api\session.py", line 1921, in create_component
return self._create_component(
File "C:\Python39\lib\site-packages\ftrack_api\session.py", line 1994, in _create_component
location.add_component(component, origin_location, recursive=False)
File "C:\Python39\lib\site-packages\ftrack_api\entity\location.py", line 89, in add_component
return self.add_components(
File "C:\Python39\lib\site-packages\ftrack_api\entity\location.py", line 254, in add_components
raise ftrack_api.exception.LocationError(
ftrack_api.exception.LocationError: Failed to register components with location <ServerLocation("ftrack.server", 3a372bde-05bc-11e4-8908-20c9d081909b)> due to error:
b' 'Server reported error: PermissionError(Permission denied: not allowed to 'create' 'FileComponent'. Missing the required 'READ_PROJECT' permission.)
b' 'Transferred component data that may require cleanup: [(<dynamic ftrack FileComponent object 2661302031888>, 'f6212010-f527-44d2-ac3e-5f1034c8c69b')]
Now my API key has the same right as my user and the user can definitly create it from the ftrack UI.
I have tried adding the component on an AssetVersion that was created via the UI and it works, so i believe there's something wrong with the way i create my Asset, AssetVersion or my ReviewSessionObject, but i cannot figure out what, and i've found no useful information on this matter in the documentation.
Thanks in advance for any help on this