def on_get(self, project_id, **kw): LOG.debug('Start containers on_get for project-ID %s:', project_id) result = self.container_repo.get_by_create_date( project_id, offset_arg=kw.get('offset', 0), limit_arg=kw.get('limit', None), suppress_exception=True ) containers, offset, limit, total = result if not containers: resp_ctrs_overall = {'containers': [], 'total': total} else: resp_ctrs = [ hrefs.convert_to_hrefs(c.to_dict_fields()) for c in containers ] for ctr in resp_ctrs: for secret_ref in ctr.get('secret_refs', []): hrefs.convert_to_hrefs(secret_ref) resp_ctrs_overall = hrefs.add_nav_hrefs( 'containers', offset, limit, total, {'containers': resp_ctrs} ) resp_ctrs_overall.update({'total': total}) return resp_ctrs_overall
def on_get(self, external_project_id): dict_fields = self.container.to_dict_fields() for secret_ref in dict_fields['secret_refs']: hrefs.convert_to_hrefs(secret_ref) return hrefs.convert_to_hrefs( hrefs.convert_to_hrefs(dict_fields) )
def on_get(self, external_project_id): dict_fields = self.container.to_dict_fields() for secret_ref in dict_fields['secret_refs']: hrefs.convert_to_hrefs(secret_ref) LOG.info(u._LI('Retrieved container for project: %s'), external_project_id) return hrefs.convert_to_hrefs( hrefs.convert_to_hrefs(dict_fields) )
def index(self, keystone_id): consumer = self.consumer_repo.get(entity_id=self.consumer_id, keystone_id=keystone_id, suppress_exception=True) if not consumer: _consumer_not_found() dict_fields = consumer.to_dict_fields() return hrefs.convert_to_hrefs( hrefs.convert_to_hrefs(dict_fields) )
def _return_container_data(self, container_id): container = self._get_container(container_id) dict_fields = container.to_dict_fields() for secret_ref in dict_fields['secret_refs']: hrefs.convert_to_hrefs(secret_ref) # TODO(john-wood-w) Why two calls to convert_to_hrefs()? return hrefs.convert_to_hrefs( hrefs.convert_to_hrefs(dict_fields) )
def on_get(self, external_project_id): consumer = self.consumer_repo.get( entity_id=self.consumer_id, external_project_id=external_project_id, suppress_exception=True) if not consumer: _consumer_not_found() dict_fields = consumer.to_dict_fields() return hrefs.convert_to_hrefs( hrefs.convert_to_hrefs(dict_fields) )
def _return_container_data(self, container_id, keystone_id): try: container = self.container_repo.get(container_id, keystone_id) dict_fields = container.to_dict_fields() except Exception: controllers.containers.container_not_found() for secret_ref in dict_fields['secret_refs']: hrefs.convert_to_hrefs(secret_ref) # TODO(john-wood-w) Why two calls to convert_to_hrefs()? return hrefs.convert_to_hrefs( hrefs.convert_to_hrefs(dict_fields) )
def index(self, keystone_id): container = self.container_repo.get(entity_id=self.container_id, keystone_id=keystone_id, suppress_exception=True) if not container: container_not_found() dict_fields = container.to_dict_fields() for secret_ref in dict_fields['secret_refs']: hrefs.convert_to_hrefs(secret_ref) return hrefs.convert_to_hrefs( hrefs.convert_to_hrefs(dict_fields) )
def on_get(self, external_project_id): consumer = self.consumer_repo.get( entity_id=self.consumer_id, external_project_id=external_project_id, suppress_exception=True) if not consumer: _consumer_not_found() dict_fields = consumer.to_dict_fields() LOG.info(u._LI('Retrieved a consumer for project: %s'), external_project_id) return hrefs.convert_to_hrefs( hrefs.convert_to_hrefs(dict_fields) )
def on_get(self, external_project_id, **kw): LOG.debug('Start consumers on_get ' 'for container-ID %s:', self.container_id) try: self.container_repo.get(self.container_id, external_project_id) except exception.NotFound: controllers.containers.container_not_found() result = self.consumer_repo.get_by_container_id( self.container_id, offset_arg=kw.get('offset', 0), limit_arg=kw.get('limit', None), suppress_exception=True ) consumers, offset, limit, total = result if not consumers: resp_ctrs_overall = {'consumers': [], 'total': total} else: resp_ctrs = [ hrefs.convert_to_hrefs(c.to_dict_fields()) for c in consumers ] resp_ctrs_overall = hrefs.add_nav_hrefs( 'consumers', offset, limit, total, {'consumers': resp_ctrs} ) resp_ctrs_overall.update({'total': total}) return resp_ctrs_overall
def on_get(self, external_project_id, **kw): LOG.debug('Start consumers on_get ' 'for container-ID %s:', self.container_id) result = self.consumer_repo.get_by_container_id( self.container_id, offset_arg=kw.get('offset', 0), limit_arg=kw.get('limit'), suppress_exception=True ) consumers, offset, limit, total = result if not consumers: resp_ctrs_overall = {'consumers': [], 'total': total} else: resp_ctrs = [ hrefs.convert_to_hrefs(c.to_dict_fields()) for c in consumers ] consumer_path = "containers/{container_id}/consumers".format( container_id=self.container_id) resp_ctrs_overall = hrefs.add_nav_hrefs( consumer_path, offset, limit, total, {'consumers': resp_ctrs} ) resp_ctrs_overall.update({'total': total}) LOG.info('Retrieved a consumer list for project: %s', external_project_id) return resp_ctrs_overall
def index(self, keystone_id): order = self.order_repo.get(entity_id=self.order_id, keystone_id=keystone_id, suppress_exception=True) if not order: _order_not_found() return hrefs.convert_to_hrefs(order.to_dict_fields())
def on_get(self, external_project_id, **kw): def secret_fields(field): return putil.mime_types.augment_fields_with_content_types(field) LOG.debug('Start secrets on_get ' 'for project-ID %s:', external_project_id) name = kw.get('name', '') if name: name = parse.unquote_plus(name) bits = kw.get('bits', 0) try: bits = int(bits) except ValueError: # as per Github issue 171, if bits is invalid then # the default should be used. bits = 0 ctxt = controllers._get_barbican_context(pecan.request) user_id = None if ctxt: user_id = ctxt.user result = self.secret_repo.get_by_create_date( external_project_id, offset_arg=kw.get('offset', 0), limit_arg=kw.get('limit', None), name=name, alg=kw.get('alg'), mode=kw.get('mode'), bits=bits, suppress_exception=True, acl_only=kw.get('acl_only', None), user_id=user_id ) secrets, offset, limit, total = result if not secrets: secrets_resp_overall = {'secrets': [], 'total': total} else: secrets_resp = [ hrefs.convert_to_hrefs(secret_fields(s)) for s in secrets ] secrets_resp_overall = hrefs.add_nav_hrefs( 'secrets', offset, limit, total, {'secrets': secrets_resp} ) secrets_resp_overall.update({'total': total}) LOG.info(u._LI('Retrieved secret list for project: %s'), external_project_id) return secrets_resp_overall
def _on_get_secret_metadata(self, secret, **kwargs): """GET Metadata-only for a secret.""" pecan.override_template('json', 'application/json') secret_fields = putil.mime_types.augment_fields_with_content_types( secret) transport_key_id = self._get_transport_key_id_if_needed( kwargs.get('transport_key_needed'), secret) if transport_key_id: secret_fields['transport_key_id'] = transport_key_id return hrefs.convert_to_hrefs(secret_fields)
def index(self, keystone_id, **kw): def secret_fields(field): return putil.mime_types.augment_fields_with_content_types(field) LOG.debug('Start secrets on_get ' 'for project-ID %s:', keystone_id) name = kw.get('name', '') if name: name = urllib.unquote_plus(name) bits = kw.get('bits', 0) try: bits = int(bits) except ValueError: # as per Github issue 171, if bits is invalid then # the default should be used. bits = 0 result = self.repos.secret_repo.get_by_create_date( keystone_id, offset_arg=kw.get('offset', 0), limit_arg=kw.get('limit', None), name=name, alg=kw.get('alg'), mode=kw.get('mode'), bits=bits, suppress_exception=True ) secrets, offset, limit, total = result if not secrets: secrets_resp_overall = {'secrets': [], 'total': total} else: secrets_resp = [ hrefs.convert_to_hrefs(secret_fields(s)) for s in secrets ] secrets_resp_overall = hrefs.add_nav_hrefs( 'secrets', offset, limit, total, {'secrets': secrets_resp} ) secrets_resp_overall.update({'total': total}) return secrets_resp_overall
def index(self, keystone_id, **kwargs): secret = self.repos.secret_repo.get(entity_id=self.secret_id, keystone_id=keystone_id, suppress_exception=True) if not secret: _secret_not_found() if controllers.is_json_request_accept(pecan.request): # Metadata-only response, no secret retrieval is necessary. pecan.override_template('json', 'application/json') secret_fields = putil.mime_types.augment_fields_with_content_types( secret) transport_key_needed = kwargs.get('transport_key_needed', 'false').lower() == 'true' if transport_key_needed: transport_key_id = plugin.get_transport_key_id_for_retrieval( secret) if transport_key_id is not None: secret_fields['transport_key_id'] = transport_key_id return hrefs.convert_to_hrefs(secret_fields) else: project = res.get_or_create_project(keystone_id, self.repos.project_repo) pecan.override_template('', pecan.request.accept.header_value) transport_key = None twsk = kwargs.get('trans_wrapped_session_key', None) if twsk is not None: transport_key_id = kwargs.get('transport_key_id', None) if transport_key_id is None: _request_has_twsk_but_no_transport_key_id() transport_key_model = self.repos.transport_key_repo.get( entity_id=transport_key_id, suppress_exception=True) transport_key = transport_key_model.transport_key return plugin.get_secret(pecan.request.accept.header_value, secret, project, self.repos, twsk, transport_key)
def index(self, keystone_id, **kw): LOG.debug('Start orders on_get ' 'for project-ID %s:', keystone_id) result = self.order_repo.get_by_create_date( keystone_id, offset_arg=kw.get('offset', 0), limit_arg=kw.get('limit', None), suppress_exception=True) orders, offset, limit, total = result if not orders: orders_resp_overall = {'orders': [], 'total': total} else: orders_resp = [ hrefs.convert_to_hrefs(o.to_dict_fields()) for o in orders ] orders_resp_overall = hrefs.add_nav_hrefs('orders', offset, limit, total, {'orders': orders_resp}) orders_resp_overall.update({'total': total}) return orders_resp_overall
def on_get(self, external_project_id, **kw): LOG.debug('Start orders on_get ' 'for project-ID %s:', external_project_id) result = self.order_repo.get_by_create_date( external_project_id, offset_arg=kw.get('offset', 0), limit_arg=kw.get('limit', None), meta_arg=kw.get('meta', None), suppress_exception=True) orders, offset, limit, total = result if not orders: orders_resp_overall = {'orders': [], 'total': total} else: orders_resp = [ hrefs.convert_to_hrefs(o.to_dict_fields()) for o in orders ] orders_resp_overall = hrefs.add_nav_hrefs('orders', offset, limit, total, {'orders': orders_resp}) orders_resp_overall.update({'total': total}) return orders_resp_overall
def on_get(self, external_project_id): return hrefs.convert_to_hrefs(self.order.to_dict_fields())
def _return_secret_data(self, secret_id): secret = self._get_secret(secret_id) dict_fields = secret.to_dict_fields() return hrefs.convert_to_hrefs(hrefs.convert_to_hrefs(dict_fields))
def on_get(self, external_project_id, **kw): def secret_fields(field): return putil.mime_types.augment_fields_with_content_types(field) LOG.debug('Start secrets on_get ' 'for project-ID %s:', external_project_id) name = kw.get('name', '') if name: name = parse.unquote_plus(name) bits = kw.get('bits', 0) try: bits = int(bits) except ValueError: # as per Github issue 171, if bits is invalid then # the default should be used. bits = 0 for date_filter in 'created', 'updated', 'expiration': if kw.get(date_filter) and not self._is_valid_date_filter( kw.get(date_filter)): _bad_query_string_parameters() if kw.get('sort') and not self._is_valid_sorting(kw.get('sort')): _bad_query_string_parameters() ctxt = controllers._get_barbican_context(pecan.request) user_id = None if ctxt: user_id = ctxt.user result = self.secret_repo.get_secret_list( external_project_id, offset_arg=kw.get('offset', 0), limit_arg=kw.get('limit'), name=name, alg=kw.get('alg'), mode=kw.get('mode'), bits=bits, secret_type=kw.get('secret_type'), suppress_exception=True, acl_only=kw.get('acl_only'), user_id=user_id, created=kw.get('created'), updated=kw.get('updated'), expiration=kw.get('expiration'), sort=kw.get('sort')) secrets, offset, limit, total = result if not secrets: secrets_resp_overall = {'secrets': [], 'total': total} else: secrets_resp = [ hrefs.convert_to_hrefs(secret_fields(s)) for s in secrets ] secrets_resp_overall = hrefs.add_nav_hrefs( 'secrets', offset, limit, total, {'secrets': secrets_resp}) secrets_resp_overall.update({'total': total}) LOG.info('Retrieved secret list for project: %s', external_project_id) return secrets_resp_overall