コード例 #1
0
ファイル: receiver.py プロジェクト: Afridocs/GLBackend
    def put(self, receiver_token_auth, plugin_gus, *uriargs):
        """
        Request: receiverProfileDesc
        Response: receiverProfileDesc
        Errors: InvalidInputFormat, ProfileGusNotFound
        """

        # we have to make various check in this handler:
        # tip validation (thru ReceiverTip)
        # profile validation (thru , fields validation

        request = json.loads(self.request.body)
        receivertip_iface = externaltip.ReceiverTip()
        plugin_manager = GLPluginManager()
        profile_iface = options.PluginProfiles()

        profile_d = plugin_code = receiver_d = None
        try:
            receiver_d = yield receivertip_iface.get_receiver_by_tip(tip_gus)

            plugin_code = plugin_manager.get_plugins(request['plugin_type']).get(['plugin_name'])

            profile_d = profile_iface.admin_get_single(profile_gus)

        except externaltip.TipGusNotFound, e:

            self.set_status(e.http_status)
            self.write({'error_message': e.error_message, 'error_code' : e.error_code})
コード例 #2
0
ファイル: admin.py プロジェクト: Afridocs/GLBackend
    def put(self, plugin_name, profile_gus, *uriargs):
        """
        Request: adminProfileDesc
        Response: adminProfileDesc
        Errors: ProfileGusNotFound, InvalidInputFormat, ProfileNameConflict
        """

        request = json.loads(self.request.body)

        if not request:
            self.write({'error_message': 'Missing request', 'error_code' : 123})
            self.set_status(400)

        else:

            plugin_manager = GLPluginManager()

            if not plugin_manager.plugin_exists(request['plugin_type'], request['plugin_name']):

                self.set_status(406)
                self.write({'error_message': 'Invalid plugin (type/name) requested', 'error_code' : 123 })

            else:

                # reach the GLPlugin class implementation
                plugin_code = plugin_manager.get_plugin(request['plugin_type'], request['plugin_name'])

                new_settings = request['admin_fields'] if request['admin_fields'] else None
                new_name = request['profile_name'] if request['profile_name']  else None
                new_desc = request['description'] if request['description'] else None

                if not plugin_code.validate_admin_opt(new_settings):
                    self.set_status(406)
                    self.write({'error_message':
                                    'Invalid request format in Profile creation (fields content)',
                                'error_code' : 123 })
                else:

                    plugin_iface = options.PluginProfiles()

                    try:
                        yield plugin_iface.update_profile(profile_gus, settings=new_settings, desc=new_desc, profname=new_name)

                        self.set_status(200)

                    except ProfileNameConflict, e:

                        self.set_status(e.http_status)
                        self.write({'error_message': e.error_message, 'error_code' : e.error_code})

                    except ProfileGusNotFound, e:

                        self.set_status(e.http_status)
                        self.write({'error_message': e.error_message, 'error_code' : e.error_code})
コード例 #3
0
ファイル: admin.py プロジェクト: Afridocs/GLBackend
    def post(self, plugin_name, *uriargs):
        """
        Request: adminProfileDesc
        Response: adminProfileDesc
        Errors: ProfileGusNotFound, InvalidInputFormat, ProfileNameConflict, PluginNameNotFound
        """

        request = json.loads(self.request.body)

        # this is not the right approach, the validation would be implemented
        # correctly in short time, when can be reviewed the generation of doc and
        # validation of input/output
        if not request:
            self.write({'error_message': 'Missing request!', 'error_code' : 123})
            self.set_status(400)
            self.finish()
            # this behaviour cause an error from Cyclone

        plugin_manager = GLPluginManager()

        if not plugin_manager.plugin_exists(request['plugin_type'], request['plugin_name']):

            self.set_status(406)
            self.write({'error_message': 'Invalid plugin (type/name) requested', 'error_code' : 123 })

        else:
            # reach the GLPlugin class implementation
            plugin_code = plugin_manager.get_plugin(request['plugin_type'], request['plugin_name'])

            if plugin_code.validate_admin_opt(request['admin_fields']) and request['profile_name']:

                plugin_iface = options.PluginProfiles()

                try:
                    new_profile = yield plugin_iface.newprofile(request['plugin_type'], request['plugin_name'],
                        request['profile_name'],
                        { 'admin' : plugin_code.admin_fields, 'receiver' : plugin_code.admin_fields},
                        request['description'],  request['profile_settings'] )

                    self.set_status(200)
                    self.write({'profile_gus': new_profile})

                except ProfileNameConflict, e:

                    self.set_status(e.http_status)
                    self.write({'error_message': e.error_message, 'error_code' : e.error_code})

            else: