Add image sign
Add an ability to add signature for images.
Related reclass-system change I7d22c5c4570ec6b3cfb5a2346f5efb83d5804222
Related-PROD: PROD-24494
Co-Authored-By: Mykyta Karpin <mkarpin@mirantis.com>
Change-Id: I93905c3dd6f0ed62023fab1d154c47c3716f628c
diff --git a/_states/barbicanv1.py b/_states/barbicanv1.py
index 8c70bea..af202d5 100644
--- a/_states/barbicanv1.py
+++ b/_states/barbicanv1.py
@@ -213,6 +213,39 @@
return _created(image_name, 'sign_image', resp)
+def secret_acl_present(name, cloud_name, **kwargs):
+ try:
+ secret = _barbicanv1_call(
+ 'secret_get_details', name=name, cloud_name=cloud_name
+ )
+ except Exception as e:
+ if 'ResourceNotFound' in repr(e):
+ return _absent(name, 'secret')
+ if 'MultipleResourcesFound' in repr(e):
+ return _find_failed(name, 'secret')
+ try:
+ resp = _barbicanv1_call('secret_acl_get', name=name,
+ cloud_name=cloud_name)
+ except Exception as e:
+ if 'ResourceNotFound' in repr(e):
+ resp = _barbicanv1_call('secret_acl_put', name=name,
+ cloud_name=cloud_name, **kwargs)
+ return _created(name, 'acl', resp)
+ else:
+ log.error('Add acl for user faild with {}'.format(e))
+ return _create_failed(name, 'acl')
+
+ missing_users = [user_id
+ for user_id in kwargs.get('users', [])
+ if user_id not in resp['read']['users']]
+ if missing_users:
+ kwargs['users'] = missing_users
+ resp = _barbicanv1_call('secret_acl_put', name=name,
+ cloud_name=cloud_name, **kwargs)
+ return _created(name, 'acl', resp)
+ return _no_changes(name, 'acl')
+
+
def _created(name, resource, resource_definition):
changes_dict = {
'name': name,