Loading run_tests_locally.sh +15 −11 Original line number Diff line number Diff line Loading @@ -11,26 +11,30 @@ cat $PROJECTDIR/coverage/.coveragerc.template | sed s+~/teraflow/controller+$PRO # Run unitary tests and analyze coverage of code at same time # Populate environment variables for context to use Redis export REDIS_SERVICE_HOST=$(kubectl get node kubernetes-master -o 'jsonpath={.status.addresses[?(@.type=="InternalIP")].address}') export REDIS_SERVICE_PORT=$(kubectl get service contextservice-public --namespace cttc-dev -o 'jsonpath={.spec.ports[?(@.port==6379)].nodePort}') # First destroy old coverage file rm -f $COVERAGEFILE #coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ # common/orm/tests/test_unitary.py \ # common/message_broker/tests/test_unitary.py \ # common/rpc_method_wrapper/tests/test_unitary.py coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ common/orm/tests/test_unitary.py \ common/message_broker/tests/test_unitary.py \ common/rpc_method_wrapper/tests/test_unitary.py #coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ # centralizedattackdetector/tests/test_unitary.py coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ centralizedattackdetector/tests/test_unitary.py #coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ # context/tests/test_unitary.py coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ context/tests/test_unitary.py coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ device/tests/test_unitary_driverapi.py \ device/tests/test_unitary.py #device/tests/test_unitary_driverapi.py \ #coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ # service/tests/test_unitary.py #coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ # compute/tests/test_unitary.py coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ compute/tests/test_unitary.py src/context/service/database/ConfigModel.py +23 −5 Original line number Diff line number Diff line import functools, logging, operator from enum import Enum from typing import Dict, List, Tuple, Union from typing import Dict, List, Optional, Tuple, Union from common.orm.Database import Database from common.orm.HighLevel import get_or_create_object, update_or_create_object from common.orm.HighLevel import get_object, get_or_create_object, update_or_create_object from common.orm.backend.Tools import key_to_str from common.orm.fields.EnumeratedField import EnumeratedField from common.orm.fields.ForeignKeyField import ForeignKeyField Loading Loading @@ -66,6 +66,17 @@ def set_config_rule( db_config_rule, updated = result return db_config_rule, updated def delete_config_rule( database : Database, db_config : ConfigModel, grpc_config_rule ) -> Tuple[ConfigRuleModel, bool]: str_rule_key_hash = fast_hasher(grpc_config_rule.resource_key) str_config_rule_key = key_to_str([db_config.pk, str_rule_key_hash], separator=':') db_config_rule : Optional[ConfigRuleModel] = get_object( database, ConfigRuleModel, str_config_rule_key, raise_if_not_found=False) db_config_rule.delete() def set_config( database : Database, db_parent_pk : str, config_name : str, grpc_config_rules ) -> List[Tuple[Union[ConfigModel, ConfigRuleModel], bool]]: Loading @@ -77,8 +88,15 @@ def set_config( db_objects = [(db_config, created)] for position,grpc_config_rule in enumerate(grpc_config_rules): action = grpc_to_enum__config_action(grpc_config_rule.action) if action == ORM_ConfigActionEnum.SET: result : Tuple[ConfigRuleModel, bool] = set_config_rule(database, db_config, grpc_config_rule, position) db_config_rule, updated = result db_objects.append((db_config_rule, updated)) elif action == ORM_ConfigActionEnum.DELETE: delete_config_rule(database, db_config, grpc_config_rule) else: msg = 'Unsupported action({:s})' raise AttributeError(msg.format(str(ConfigActionEnum.Name(grpc_config_rule.action)))) return db_objects src/device/service/data_cache/database/ConfigModel.py +24 −5 Original line number Diff line number Diff line import functools, logging, operator from enum import Enum from typing import Dict, List, Tuple, Union from typing import Dict, List, Optional, Tuple, Union from common.orm.Database import Database from common.orm.HighLevel import get_or_create_object, update_or_create_object from common.orm.HighLevel import get_object, get_or_create_object, update_or_create_object from common.orm.backend.Tools import key_to_str from common.orm.fields.EnumeratedField import EnumeratedField from common.orm.fields.ForeignKeyField import ForeignKeyField Loading Loading @@ -66,6 +66,18 @@ def set_config_rule( db_config_rule, updated = result return db_config_rule, updated def delete_config_rule( database : Database, db_config : ConfigModel, grpc_config_rule ) -> Tuple[ConfigRuleModel, bool]: str_rule_key_hash = fast_hasher(grpc_config_rule.resource_key) str_config_rule_key = key_to_str([db_config.pk, str_rule_key_hash], separator=':') db_config_rule : Optional[ConfigRuleModel] = get_object( database, ConfigRuleModel, str_config_rule_key, raise_if_not_found=False) if db_config_rule is None: return db_config_rule.delete() def set_config( database : Database, db_parent_pk : str, config_name : str, grpc_config_rules ) -> List[Tuple[Union[ConfigModel, ConfigRuleModel], bool]]: Loading @@ -77,8 +89,15 @@ def set_config( db_objects = [(db_config, created)] for position,grpc_config_rule in enumerate(grpc_config_rules): action = grpc_to_enum__config_action(grpc_config_rule.action) if action == ORM_ConfigActionEnum.SET: result : Tuple[ConfigRuleModel, bool] = set_config_rule(database, db_config, grpc_config_rule, position) db_config_rule, updated = result db_objects.append((db_config_rule, updated)) elif action == ORM_ConfigActionEnum.DELETE: delete_config_rule(database, db_config, grpc_config_rule) else: msg = 'Unsupported action({:s})' raise AttributeError(msg.format(str(ConfigActionEnum.Name(grpc_config_rule.action)))) return db_objects Loading
run_tests_locally.sh +15 −11 Original line number Diff line number Diff line Loading @@ -11,26 +11,30 @@ cat $PROJECTDIR/coverage/.coveragerc.template | sed s+~/teraflow/controller+$PRO # Run unitary tests and analyze coverage of code at same time # Populate environment variables for context to use Redis export REDIS_SERVICE_HOST=$(kubectl get node kubernetes-master -o 'jsonpath={.status.addresses[?(@.type=="InternalIP")].address}') export REDIS_SERVICE_PORT=$(kubectl get service contextservice-public --namespace cttc-dev -o 'jsonpath={.spec.ports[?(@.port==6379)].nodePort}') # First destroy old coverage file rm -f $COVERAGEFILE #coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ # common/orm/tests/test_unitary.py \ # common/message_broker/tests/test_unitary.py \ # common/rpc_method_wrapper/tests/test_unitary.py coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ common/orm/tests/test_unitary.py \ common/message_broker/tests/test_unitary.py \ common/rpc_method_wrapper/tests/test_unitary.py #coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ # centralizedattackdetector/tests/test_unitary.py coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ centralizedattackdetector/tests/test_unitary.py #coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ # context/tests/test_unitary.py coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ context/tests/test_unitary.py coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ device/tests/test_unitary_driverapi.py \ device/tests/test_unitary.py #device/tests/test_unitary_driverapi.py \ #coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ # service/tests/test_unitary.py #coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ # compute/tests/test_unitary.py coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ compute/tests/test_unitary.py
src/context/service/database/ConfigModel.py +23 −5 Original line number Diff line number Diff line import functools, logging, operator from enum import Enum from typing import Dict, List, Tuple, Union from typing import Dict, List, Optional, Tuple, Union from common.orm.Database import Database from common.orm.HighLevel import get_or_create_object, update_or_create_object from common.orm.HighLevel import get_object, get_or_create_object, update_or_create_object from common.orm.backend.Tools import key_to_str from common.orm.fields.EnumeratedField import EnumeratedField from common.orm.fields.ForeignKeyField import ForeignKeyField Loading Loading @@ -66,6 +66,17 @@ def set_config_rule( db_config_rule, updated = result return db_config_rule, updated def delete_config_rule( database : Database, db_config : ConfigModel, grpc_config_rule ) -> Tuple[ConfigRuleModel, bool]: str_rule_key_hash = fast_hasher(grpc_config_rule.resource_key) str_config_rule_key = key_to_str([db_config.pk, str_rule_key_hash], separator=':') db_config_rule : Optional[ConfigRuleModel] = get_object( database, ConfigRuleModel, str_config_rule_key, raise_if_not_found=False) db_config_rule.delete() def set_config( database : Database, db_parent_pk : str, config_name : str, grpc_config_rules ) -> List[Tuple[Union[ConfigModel, ConfigRuleModel], bool]]: Loading @@ -77,8 +88,15 @@ def set_config( db_objects = [(db_config, created)] for position,grpc_config_rule in enumerate(grpc_config_rules): action = grpc_to_enum__config_action(grpc_config_rule.action) if action == ORM_ConfigActionEnum.SET: result : Tuple[ConfigRuleModel, bool] = set_config_rule(database, db_config, grpc_config_rule, position) db_config_rule, updated = result db_objects.append((db_config_rule, updated)) elif action == ORM_ConfigActionEnum.DELETE: delete_config_rule(database, db_config, grpc_config_rule) else: msg = 'Unsupported action({:s})' raise AttributeError(msg.format(str(ConfigActionEnum.Name(grpc_config_rule.action)))) return db_objects
src/device/service/data_cache/database/ConfigModel.py +24 −5 Original line number Diff line number Diff line import functools, logging, operator from enum import Enum from typing import Dict, List, Tuple, Union from typing import Dict, List, Optional, Tuple, Union from common.orm.Database import Database from common.orm.HighLevel import get_or_create_object, update_or_create_object from common.orm.HighLevel import get_object, get_or_create_object, update_or_create_object from common.orm.backend.Tools import key_to_str from common.orm.fields.EnumeratedField import EnumeratedField from common.orm.fields.ForeignKeyField import ForeignKeyField Loading Loading @@ -66,6 +66,18 @@ def set_config_rule( db_config_rule, updated = result return db_config_rule, updated def delete_config_rule( database : Database, db_config : ConfigModel, grpc_config_rule ) -> Tuple[ConfigRuleModel, bool]: str_rule_key_hash = fast_hasher(grpc_config_rule.resource_key) str_config_rule_key = key_to_str([db_config.pk, str_rule_key_hash], separator=':') db_config_rule : Optional[ConfigRuleModel] = get_object( database, ConfigRuleModel, str_config_rule_key, raise_if_not_found=False) if db_config_rule is None: return db_config_rule.delete() def set_config( database : Database, db_parent_pk : str, config_name : str, grpc_config_rules ) -> List[Tuple[Union[ConfigModel, ConfigRuleModel], bool]]: Loading @@ -77,8 +89,15 @@ def set_config( db_objects = [(db_config, created)] for position,grpc_config_rule in enumerate(grpc_config_rules): action = grpc_to_enum__config_action(grpc_config_rule.action) if action == ORM_ConfigActionEnum.SET: result : Tuple[ConfigRuleModel, bool] = set_config_rule(database, db_config, grpc_config_rule, position) db_config_rule, updated = result db_objects.append((db_config_rule, updated)) elif action == ORM_ConfigActionEnum.DELETE: delete_config_rule(database, db_config, grpc_config_rule) else: msg = 'Unsupported action({:s})' raise AttributeError(msg.format(str(ConfigActionEnum.Name(grpc_config_rule.action)))) return db_objects