@@ -273,9 +273,13 @@ def __getattr__(self, name):
273
273
except :
274
274
return self .__func_wrapper (obj )
275
275
276
- """ There is not function with the name 'name' let return the OSCAP_Object
277
- This should return None, why is this here ?
278
- """
276
+ """ Looking if it's can be a constructor """
277
+ obj = OSCAP .__dict__ .get (self .object + "_" + name + "_new" )
278
+ if obj is not None :
279
+ # this will call the __call__ definition of OSCAP_Object
280
+ return OSCAP_Object (self .object + "_" + name )
281
+
282
+ """ There is not function with the name 'name' let return the OSCAP_Object """
279
283
raise AttributeError ("Attribute {0} not found for object {1}"
280
284
.format (name , self .object ))
281
285
@@ -316,6 +320,7 @@ def __call__(self, *args, **kwargs):
316
320
# It's maybe looking for "new" ?
317
321
obj = OSCAP .__dict__ .get (self .object + "_new" )
318
322
if obj is not None :
323
+ print ("obj not none !" )
319
324
return OSCAP_Object .new (obj (* newargs ))
320
325
else :
321
326
raise NameError ("name '" + self .object + "' is not defined" )
@@ -480,21 +485,19 @@ def get_values_by_rule_id(self, id, check=None):
480
485
481
486
return items
482
487
483
-
484
488
def __parse_value (self , value ):
485
489
''' Used by get_tailoring_items() '''
486
-
490
+
487
491
# update the local lang lists
488
492
def __update_lang (item , lang ):
489
493
if lang not in item ["langs" ]:
490
494
item ["langs" ].add (lang )
491
-
492
-
495
+
493
496
# get value properties
494
497
item = {}
495
498
item ["id" ] = value .id
496
- item ["langs" ] = {self .model .benchmark .lang } # set of available langs
497
- item ["lang" ] = self .model .benchmark .lang # legacy support of item["lang"]
499
+ item ["langs" ] = {self .model .benchmark .lang } # set of available langs
500
+ item ["lang" ] = self .model .benchmark .lang # legacy support of item["lang"]
498
501
item ["titles" ] = {}
499
502
item ["descs" ] = {}
500
503
# Titles / Questions
@@ -505,7 +508,7 @@ def __update_lang(item, lang):
505
508
for title in value .title :
506
509
__update_lang (item , title .lang )
507
510
item ["titles" ][title .lang ] = title .text
508
-
511
+
509
512
if item ["lang" ] not in item ["titles" ]:
510
513
item ["titles" ][item ["lang" ]] = ""
511
514
# Descriptions
@@ -617,12 +620,13 @@ def set_tailor_items(self, items):
617
620
selector = None
618
621
value = self .model .benchmark .item (item ["id" ]).to_value ()
619
622
for instance in value .instances :
623
+ print ("item = {0}" .format (instance .value ))
620
624
if item ["value" ] == instance .value :
621
625
selector = instance .selector
622
626
623
627
oper = remarks = setvalue = None
624
628
for r_value in self .profile .refine_values [:]:
625
- if r_value .item == item ["id" ]:
629
+ if r_value .item == item ["id" ] and r_value in self . profile . refine_values :
626
630
oper = r_value .oper
627
631
remarks = r_value .remarks
628
632
self .profile .refine_values .remove (r_value )
0 commit comments