def build_entity(self): if 'login' not in self.param('permits'): self.param('permits').append('login') all_permits = self.get_all_permits() return otypes.Role( id=self.param('id'), name=self.param('name'), administrative=self.param('administrative') if self.param( 'administrative') else None, permits=[ otypes.Permit(id=all_permits.get(new_permit)) for new_permit in self.param('permits') ] if self.param('permits') else None, description=self.param('description') if self.param('administrative') else None, )
def check_permits(): if self.param('permits'): if 'login' not in self.param('permits'): self.param('permits').append('login') permits_service = self._service.service(entity.id).permits_service() current = [er.name for er in permits_service.list()] passed = [pr for pr in self.param('permits')] if not sorted(current) == sorted(passed): if self._module.check_mode: return False # remove all for permit in permits_service.list(): permits_service.permit_service(permit.id).remove() # add passed permits all_permits = self.get_all_permits() for new_permit in passed: permits_service.add(otypes.Permit(id=all_permits.get(new_permit))) return False return True
# Create the connection to the server: connection = sdk.Connection( url='https://engine40.example.com/ovirt-engine/api', username='******', password='******', ca_file='ca.pem', debug=True, log=logging.getLogger(), ) # Get the reference to the roles service: roles_service = connection.system_service().roles_service() # Use the "add" method to create new role (note that you need to pass # permit id not the name, when creating new role): role = roles_service.add( types.Role( name='myrole', administrative=False, description='My custom role to create virtual machines', permits=[ # create_vm permit types.Permit(id='1'), # login permit types.Permit(id='1300'), ], ), ) # Close the connection to the server: connection.close()