def test_get_requirement_string(self): for k in ({'k': 0}, lambda x: x, 1, object()): self.assertRaises(TypeError, condor.get_requirement_string, k, []) for k in ('', {'k': 0}, lambda x: x, 1, object()): self.assertRaises(TypeError, condor.get_requirement_string, '', k) self.assertRaises(ValueError, condor.get_requirement_string, 'MEM,G,1;G', []) # Wrong ';' self.assertRaises(ValueError, condor.get_requirement_string, 'BADKEY,G,1,G', []) # Wrong 'BADKEY' self.assertRaises(KeyError, condor.get_requirement_string, 'MEM,g,1,G', []) # Wrong 'g' self.assertRaises(ValueError, condor.get_requirement_string, 'MEM,G,1,t', []) # Wrong 't' # vms must be a list of lists self.assertRaises(TypeError, condor.get_requirement_string, 'MEM,G,1,T', ['node1', 'Idle']) self.assertRaises(TypeError, condor.get_requirement_string, 'MEM,G,1,T', [[1, 'Idle']]) condor.get_requirement_string('SLT,B,12@mix18', []) # Output req = condor.get_requirement_string('MEM,G,1,G', []) self.assertTrue(type(req) == types.StringType) self.assertTrue(req.startswith('Requirements = (')) self.assertTrue(req.endswith(')'))
@login_required @profile def get_condor_requirement_string(request): """ Get requirement string from saved policy """ try: name = request.POST["Name"] except KeyError, e: raise HttpResponseServerError("Bad parameters") error = req = "" try: policy = CondorNodeSel.objects.filter(label=name, is_policy=True)[0] vms = manager.cluster.getStatus() req = get_requirement_string(policy.nodeselection, vms) except Exception, e: error = e return HttpResponse(str({"ReqStr": str(req), "Error": str(error)}), mimetype="text/plain") @login_required @profile def compute_requirement_string(request): """ Compute Condor's requirement string """ try: params = request.POST["Params"] except KeyError, e: