def register_switch(self, switch_name, state, override=False):
     """
       Registers a switch if it doesn't exist already or override is `True`
     """
     if override or not switch_name in self.switches:
         switch = Switch(switch_name, state=state)
         gutter.register(switch)
         return switch
    def import_switches(self, request):
        encoded_switches = request.POST.get('switch_block', '')
        switch_block = encoded_switches.split('\r\n')

        if switch_block[0] != '-----BEGIN SWITCHES-----' or switch_block[-1] != '-----END SWITCHES-----':
            raise ValueError('bad input')

        switch_block = ''.join(switch_block[1:-1])

        pickled_switches = base64.b64decode(switch_block)
        switches = pickle.loads(pickled_switches)

        for switch in switches:
            try:
                manager.register(switch)
            except Exception as e:
                print e

        return redirect('/gutter')
    def import_switches(self, request):
        encoded_switches = request.POST.get('switch_block', '')
        switch_block = encoded_switches.split('\r\n')

        if switch_block[0] != '-----BEGIN SWITCHES-----' or switch_block[
                -1] != '-----END SWITCHES-----':
            raise ValueError('bad input')

        switch_block = ''.join(switch_block[1:-1])

        pickled_switches = base64.b64decode(switch_block)
        switches = pickle.loads(pickled_switches)

        for switch in switches:
            try:
                manager.register(switch)
            except Exception as e:
                import logging
                logging.exception(e)

        return redirect('gutter:index')
    def test_existing_switches_are_not_overriden_when_reading_config_by_default(self):
        switch_name = 'existent-feature'

        # Fill gutter with a previous switch
        switch = Switch(switch_name, state=Switch.states.GLOBAL)
        gutter.register(switch)

        self.app.config[flask_featureflags.FEATURE_FLAGS_CONFIG] = {
          switch_name: False
        }
        gutter_handler = GutterFeaturesHandler(self.app, autocreate=False)
        feature_setup.clear_handlers()
        feature_setup.add_handler(gutter_handler)

        # Check Gutter
        self.assertTrue(gutter.active(switch_name))

        # Check GutterHandler
        self.assertTrue(gutter_handler.check(switch_name))

        # Check Feature-Flag
        self.assertTrue(feature_setup.check(switch_name))
from gutter.client.default import gutter as manager

switch = Switch(
    'cool_feature',
    label='A cool feature',
    description=
    'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.'
)

condition = Condition(User, 'name', Equals(value='Jeff'))
switch.conditions.append(condition)

condition = Condition(User, 'age', MoreThan(lower_limit=21))
switch.conditions.append(condition)

manager.register(switch)

switch = Switch(
    'other_neat_feature',
    label='A neat additional feature',
    description=
    'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.'
)

condition = Condition(Request, 'ip', Percent(percentage=10))
switch.conditions.append(condition)

manager.register(switch)

for switch in manager.switches:
    print '+', switch
Exemple #6
0

# Configure Gutter
gutter.client.settings.manager.storage_engine = RedisDict('gutter', Redis())

# Import the manager
from gutter.client.default import gutter as manager


switch = Switch('cool_feature', label='A cool feature', description='Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.')

condition = Condition(User, 'name', Equals(value='Jeff'))
switch.conditions.append(condition)

condition = Condition(User, 'age', MoreThan(lower_limit=21))
switch.conditions.append(condition)

manager.register(switch)

switch = Switch('other_neat_feature', label='A neat additional feature', description='Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.')

condition = Condition(Request, 'ip', Percent(percentage=10))
switch.conditions.append(condition)

manager.register(switch)

for switch in manager.switches:
    print '+', switch

print type(manager.storage)