Esempio n. 1
0
 def testiSniffer(self):
     # unicode
     val = "u'test'"
     self.assertEqual(type_sniffer(val), unicode('test'))
     # strings
     val = "'test'"
     self.assertEqual(type_sniffer(val), 'test')
     val = '"test"'
     self.assertEqual(type_sniffer(val), 'test')
     # dict
     val = "{'test':'test'}"
     self.assertEqual(type_sniffer(val), {'test':'test'})
     # lists
     val = 'test1,test2,test3'
     self.assertEqual(type_sniffer(val), ['test1', 'test2' ,'test3'])
     val = "['test1', 'test2' ,'test3']"
     self.assertEqual(type_sniffer(val), ['test1', 'test2' ,'test3'])
     # int
     val = '121345'
     self.assertEqual(type_sniffer(val), 121345)
     # bool
     val = 'true'
     self.assertTrue(type_sniffer(val))
     val = 'false'
     self.assertFalse(type_sniffer(val))
     # None
     val = 'none'
     self.assertEqual(type_sniffer(val), None)
Esempio n. 2
0
def config_step_save(request, bot_id):
    result = ""
    if request.method == "POST":
        builder = Builder.objects.get(id=bot_id)
        data = request.POST.copy()
        # get a step or create a newone
        if "stepid" in data and data["stepid"]:
            step = Step.objects.get(id=data["stepid"])
            step.num = data["step_num"]
            del data["stepid"]
            del data["step_num"]
        else:
            config = Config.objects.get(id=data["config_type_id"])
            step = Step(builder=builder, type=config, num=data["config_num"])
            step.save()
            del data["config_type_id"]
            del data["config_num"]

        params_2_add = []
        # add and upate params
        step_params = step.params.all()
        for p, v in data.items():
            v = type_sniffer(v)
            param_type = ConfigParam.objects.get(id=p)
            s = step.params.filter(type=param_type)
            if s:
                s = s[0]
                s.val = pickle.dumps(v)
                s.default = v == param_type.loads_default()
                s.save()
            else:
                param = StepParam(
                    step=step, type=param_type, val=pickle.dumps(v), default=(v == param_type.loads_default())
                )
                params_2_add.append(param)
        if params_2_add:
            step.params = params_2_add
        step.save()
        result = step.id
    return HttpResponse(result)
Esempio n. 3
0
def config_scheduler_save(request, bot_id):
    result = ""
    if request.method == "POST":
        master = Master.objects.get(id=bot_id)
        data = request.POST.copy()
        # get a scheduler or create a newone
        if "configid" in data and data["configid"]:
            scheduler = Scheduler.objects.get(id=data["configid"])
            del data["configid"]
        else:
            config = Config.objects.get(id=data["config_type_id"])
            scheduler = Scheduler(master=master, type=config)
            scheduler.save()
            del data["config_type_id"]

        params_2_add = []
        # update existing params
        for p in scheduler.params.all():
            # TODO: update existing params
            #      only to creating a new one
            #      so just passing for now
            # how: check if default, if changed, save it
            #      then delete the key from the dict
            #      so it's not reprocessed
            #      and add the param to the params 2 add
            pass
        # add new params
        for p, v in data.items():
            v = type_sniffer(v)
            param_type = ConfigParam.objects.get(id=p)
            if v != param_type.default:
                param = SchedulerParam(scheduler=scheduler, type=param_type, val=pickle.dumps(v))
                params_2_add.append(param)
        scheduler.params = params_2_add
        scheduler.save()
        result = scheduler.id

    return HttpResponse(result)