[ create a new paste ] login | about

Link: http://codepad.org/M2RjsvTr    [ raw code | fork ]

Plain Text, pasted on Mar 26:
@ns.route('/config/osd_recovery_qos')
@api.header('Accept', 'application/bigtera.vs.v1+json')
class OSDRecoveryQOS(Resource):
    @accept('application/json', 'application/bigtera.vs.v1+json')
    @login_required()
    def get(self):
        try:
            config = OsdRecoveryQosConfig()
            res = {
                'enabled': False,
                'recovery_maxbw': 0
            }
            if config.value():
                res.update(config)
            return res
        except:
            return "get osd recovery qos failed", 500

    
    @accept('application/json', 'application/bigtera.vs.v1+json')
    @login_required()
    def post(self):
        qconfig = OsdRecoveryQosConfig()
        config = {
            'enabled': api.payload['enabled'] == 'true',
            'recovery_maxbx': int(api.payload['recovery_maxbx']),
            'mode': api.payload['recovery_mode']
        }
        if not config['enabled']:
            qconfig.save()
        else:
            if mode not in RECOVERY_MODE.modes():
                return "invalid recovery mode", 500
            qconfig.update(config)
            #notify_sync_recovery_qos()
        return "set osd recovery qos success", 204



Create a new paste based on this one


Comments: