def itemToDict(item: UserService) -> typing.Dict[str, typing.Any]: """ Converts an assigned/cached service db item to a dictionary for REST response :param item: item to convert :param is_cache: If item is from cache or not """ props = item.getProperties() if item.user is None: owner = '' owner_info = {'auth_id': '', 'user_id': ''} else: owner = item.user.pretty_name owner_info = { 'auth_id': item.user.manager.uuid, 'user_id': item.user.uuid } return { 'id': item.uuid, 'state_date': item.state_date, 'creation_date': item.creation_date, 'unique_id': item.unique_id, 'friendly_name': item.friendly_name, 'owner': owner, 'owner_info': owner_info, 'service': item.deployed_service.service.name, 'service_id': item.deployed_service.service.uuid, 'pool': item.deployed_service.name, 'pool_id': item.deployed_service.uuid, 'ip': props.get('ip', _('unknown')), 'source_host': item.src_hostname, 'source_ip': item.src_ip, 'in_use': item.in_use }
def itemToDict(item: models.UserService, is_cache: bool = False) -> typing.Dict[str, typing.Any]: """ Converts an assigned/cached service db item to a dictionary for REST response :param item: item to convert :param is_cache: If item is from cache or not """ props = item.getProperties() val = { 'id': item.uuid, 'id_deployed_service': item.deployed_service.uuid, 'unique_id': item.unique_id, 'friendly_name': item.friendly_name, 'state': item.state if not (props.get('destroy_after') and item.state == State.PREPARING) else State.CANCELING, 'os_state': item.os_state, 'state_date': item.state_date, 'creation_date': item.creation_date, 'revision': item.publication and item.publication.revision or '', 'ip': props.get('ip', _('unknown')), 'actor_version': props.get('actor_version', _('unknown')), } if is_cache: val['cache_level'] = item.cache_level else: if item.user is None: owner = '' owner_info = {'auth_id': '', 'user_id': ''} else: owner = item.user.pretty_name owner_info = { 'auth_id': item.user.manager.uuid, 'user_id': item.user.uuid } val.update({ 'owner': owner, 'owner_info': owner_info, 'in_use': item.in_use, 'in_use_date': item.in_use_date, 'source_host': item.src_hostname, 'source_ip': item.src_ip }) return val