def POST(self, *args, **kwargs): cherrypy.response.status = 201 if len(args) != 1: return rest_error(400, 'Invalid arguments. Found %d' ' there should be one.') self.debug('REST POST %s' % kwargs) name = args[0] metadata = kwargs.get('metadata') description = kwargs.get('description', '') visible = kwargs.get('visible', True) imagefile = kwargs.get('image', None) splink = kwargs.get('splink', '') obj = self._site[FACILITY].available[self.parent.plugin_name] try: spc = ServiceProviderCreator(obj) sp = spc.create_from_buffer(name, metadata, description, visible, imagefile, splink) except (InvalidProviderId, ServerAddProviderFailedError) as e: self.debug(repr(e)) return rest_error(400, str(e)) except Exception, e: # pylint: disable=broad-except self.debug(repr(e)) return rest_error(500, "Failed to create Service Provider")
def POST(self, *args, **kwargs): cherrypy.response.status = 201 if len(args) != 1: return rest_error( 400, 'Invalid arguments. Found %d' ' there should be one.') self.debug('REST POST %s' % kwargs) name = args[0] metadata = kwargs.get('metadata') description = kwargs.get('description', '') visible = kwargs.get('visible', True) imagefile = kwargs.get('image', None) splink = kwargs.get('splink', '') obj = self._site[FACILITY].available[self.parent.plugin_name] try: spc = ServiceProviderCreator(obj) sp = spc.create_from_buffer(name, metadata, description, visible, imagefile, splink) except (InvalidProviderId, ServerAddProviderFailedError) as e: self.debug(repr(e)) return rest_error(400, str(e)) except Exception as e: # pylint: disable=broad-except self.debug(repr(e)) return rest_error(500, "Failed to create Service Provider") obj.admin.add_sp(name, sp) # Added. Now fetch and return the SP data return self._get_sp(name)
def _get_sp(self, *args, **kwargs): """ If PATH_INFO contains a value then get that value as the name of the SP, otherwise return a list of all available SPs. """ if len(args) > 0: instance = args[0] else: instance = None idp = self.__get_idp() results = list() if instance is not None: data = idp.get_data(name='name', value=instance) if len(data) == 0: return rest_error(404, 'Provider %s not found' % instance) idval = data.keys()[0] data = idp.get_data(idval=idval) else: data = idp.get_data() for idval in data: result = dict(provider=data[idval].get('name'), metadata=data[idval].get('metadata'),) results.append(result) return dict(result=results)
def _get_sp(self, *args, **kwargs): """ If PATH_INFO contains a value then get that value as the name of the SP, otherwise return a list of all available SPs. """ if len(args) > 0: instance = args[0] else: instance = None idp = self.__get_idp() results = list() if instance is not None: data = idp.get_data(name='name', value=instance) if len(data) == 0: return rest_error(404, 'Provider %s not found' % instance) idval = data.keys()[0] data = idp.get_data(idval=idval) else: data = idp.get_data() for idval in data: result = dict( provider=data[idval].get('name'), metadata=data[idval].get('metadata'), ) results.append(result) return dict(result=results)