Coverage report: 88%

Files Functions Classes

coverage.py v7.8.2, created at 2025-06-17 12:22 +0000

File function statements missing excluded branches partial coverage
watcher/__init__.py (no function) 2 0 0 0 0 100%
watcher/_i18n.py lazy_translation_enabled 1 0 0 0 0 100%
watcher/_i18n.py get_available_languages 1 1 0 0 0 0%
watcher/_i18n.py (no function) 9 0 0 0 0 100%
watcher/api/__init__.py (no function) 0 0 0 0 0 100%
watcher/api/acl.py install 3 0 0 2 0 100%
watcher/api/acl.py (no function) 4 0 0 0 0 100%
watcher/api/app.py get_pecan_config 1 0 0 0 0 100%
watcher/api/app.py setup_app 5 1 0 2 1 71%
watcher/api/app.py VersionSelectorApplication.__init__ 2 0 0 0 0 100%
watcher/api/app.py VersionSelectorApplication.__call__ 1 1 0 0 0 0%
watcher/api/app.py (no function) 11 0 0 0 0 100%
watcher/api/config.py (no function) 9 0 0 2 0 100%
watcher/api/controllers/__init__.py (no function) 0 0 0 0 0 100%
watcher/api/controllers/base.py APIBase.as_dict 1 0 0 0 0 100%
watcher/api/controllers/base.py APIBase.unset_fields_except 5 1 0 6 1 82%
watcher/api/controllers/base.py Version.__init__ 1 0 0 0 0 100%
watcher/api/controllers/base.py Version.__repr__ 1 0 0 0 0 100%
watcher/api/controllers/base.py Version.parse_headers 16 2 0 8 0 92%
watcher/api/controllers/base.py Version.__gt__ 1 0 0 0 0 100%
watcher/api/controllers/base.py Version.__eq__ 1 0 0 0 0 100%
watcher/api/controllers/base.py Version.__ne__ 1 0 0 0 0 100%
watcher/api/controllers/base.py (no function) 30 0 0 0 0 100%
watcher/api/controllers/link.py build_url 5 0 0 2 0 100%
watcher/api/controllers/link.py Link.make_link 2 0 0 0 0 100%
watcher/api/controllers/link.py Link.sample 2 2 0 0 0 0%
watcher/api/controllers/link.py (no function) 15 0 0 0 0 100%
watcher/api/controllers/root.py Version.convert 8 0 0 0 0 100%
watcher/api/controllers/root.py Root.convert 6 0 0 0 0 100%
watcher/api/controllers/root.py RootController.get 1 0 0 0 0 100%
watcher/api/controllers/root.py RootController._route 3 0 0 2 0 100%
watcher/api/controllers/root.py (no function) 47 0 0 0 0 100%
watcher/api/controllers/v1/__init__.py min_version 1 0 0 0 0 100%
watcher/api/controllers/v1/__init__.py max_version 1 0 0 0 0 100%
watcher/api/controllers/v1/__init__.py APIBase.as_dict 1 1 0 0 0 0%
watcher/api/controllers/v1/__init__.py APIBase.unset_fields_except 5 5 0 6 0 0%
watcher/api/controllers/v1/__init__.py MediaType.__init__ 2 0 0 0 0 100%
watcher/api/controllers/v1/__init__.py V1.convert 16 0 0 4 0 100%
watcher/api/controllers/v1/__init__.py Controller.get 1 0 0 0 0 100%
watcher/api/controllers/v1/__init__.py Controller._check_version 6 2 0 6 2 67%
watcher/api/controllers/v1/__init__.py Controller._route 8 0 0 0 0 100%
watcher/api/controllers/v1/__init__.py (no function) 78 0 0 0 0 100%
watcher/api/controllers/v1/action.py hide_fields_in_newer_versions 1 0 0 0 0 100%
watcher/api/controllers/v1/action.py ActionPatchType.mandatory_attrs 1 0 0 0 0 100%
watcher/api/controllers/v1/action.py Action._get_action_plan_uuid 1 0 0 0 0 100%
watcher/api/controllers/v1/action.py Action._set_action_plan_uuid 9 2 0 4 0 85%
watcher/api/controllers/v1/action.py Action.__init__ 12 0 0 4 0 100%
watcher/api/controllers/v1/action.py Action._convert_with_links 4 0 0 2 0 100%
watcher/api/controllers/v1/action.py Action.convert_with_links 9 1 0 0 0 89%
watcher/api/controllers/v1/action.py Action.sample 3 3 0 0 0 0%
watcher/api/controllers/v1/action.py ActionCollection.__init__ 1 0 0 0 0 100%
watcher/api/controllers/v1/action.py ActionCollection.convert_with_links 4 0 0 0 0 100%
watcher/api/controllers/v1/action.py ActionCollection.sample 3 3 0 0 0 0%
watcher/api/controllers/v1/action.py ActionsController.__init__ 1 0 0 0 0 100%
watcher/api/controllers/v1/action.py ActionsController._get_actions_collection 19 1 0 8 1 93%
watcher/api/controllers/v1/action.py ActionsController.get_all 5 0 0 2 0 100%
watcher/api/controllers/v1/action.py ActionsController.detail 10 1 0 4 1 86%
watcher/api/controllers/v1/action.py ActionsController.get_one 6 1 0 2 1 75%
watcher/api/controllers/v1/action.py ActionsController.post 1 1 0 0 0 0%
watcher/api/controllers/v1/action.py ActionsController.patch 1 0 0 0 0 100%
watcher/api/controllers/v1/action.py ActionsController.delete 1 0 0 0 0 100%
watcher/api/controllers/v1/action.py (no function) 74 0 0 0 0 100%
watcher/api/controllers/v1/action_plan.py hide_fields_in_newer_versions 1 0 0 0 0 100%
watcher/api/controllers/v1/action_plan.py ActionPlanPatchType._validate_state 7 2 0 4 1 73%
watcher/api/controllers/v1/action_plan.py ActionPlanPatchType.validate 3 0 0 2 0 100%
watcher/api/controllers/v1/action_plan.py ActionPlanPatchType.internal_attrs 1 0 0 0 0 100%
watcher/api/controllers/v1/action_plan.py ActionPlanPatchType.mandatory_attrs 1 0 0 0 0 100%
watcher/api/controllers/v1/action_plan.py ActionPlan._get_audit_uuid 1 0 0 0 0 100%
watcher/api/controllers/v1/action_plan.py ActionPlan._set_audit_uuid 9 1 0 4 2 77%
watcher/api/controllers/v1/action_plan.py ActionPlan._get_efficacy_indicators 3 0 0 2 0 100%
watcher/api/controllers/v1/action_plan.py ActionPlan._set_efficacy_indicators 12 4 0 6 1 61%
watcher/api/controllers/v1/action_plan.py ActionPlan._get_strategy 12 4 0 6 3 61%
watcher/api/controllers/v1/action_plan.py ActionPlan._get_strategy_uuid 1 0 0 0 0 100%
watcher/api/controllers/v1/action_plan.py ActionPlan._set_strategy_uuid 5 0 0 4 2 78%
watcher/api/controllers/v1/action_plan.py ActionPlan._get_strategy_name 1 0 0 0 0 100%
watcher/api/controllers/v1/action_plan.py ActionPlan._set_strategy_name 5 0 0 4 2 78%
watcher/api/controllers/v1/action_plan.py ActionPlan.__init__ 15 0 0 4 0 100%
watcher/api/controllers/v1/action_plan.py ActionPlan._convert_with_links 4 0 0 2 0 100%
watcher/api/controllers/v1/action_plan.py ActionPlan.convert_with_links 3 0 0 0 0 100%
watcher/api/controllers/v1/action_plan.py ActionPlan.sample 5 5 0 0 0 0%
watcher/api/controllers/v1/action_plan.py ActionPlanCollection.__init__ 1 0 0 0 0 100%
watcher/api/controllers/v1/action_plan.py ActionPlanCollection.convert_with_links 4 0 0 0 0 100%
watcher/api/controllers/v1/action_plan.py ActionPlanCollection.sample 3 3 0 0 0 0%
watcher/api/controllers/v1/action_plan.py ActionPlansController.__init__ 2 0 0 0 0 100%
watcher/api/controllers/v1/action_plan.py ActionPlansController._get_action_plans_collection 21 4 0 10 2 74%
watcher/api/controllers/v1/action_plan.py ActionPlansController.get_all 3 0 0 0 0 100%
watcher/api/controllers/v1/action_plan.py ActionPlansController.detail 8 1 0 2 1 80%
watcher/api/controllers/v1/action_plan.py ActionPlansController.get_one 6 1 0 2 1 75%
watcher/api/controllers/v1/action_plan.py ActionPlansController.delete 7 0 0 2 0 100%
watcher/api/controllers/v1/action_plan.py ActionPlansController.patch 44 4 0 24 4 88%
watcher/api/controllers/v1/action_plan.py ActionPlansController.start 10 1 0 2 1 83%
watcher/api/controllers/v1/action_plan.py (no function) 98 0 0 0 0 100%
watcher/api/controllers/v1/audit.py _get_object_by_value 3 3 0 2 0 0%
watcher/api/controllers/v1/audit.py hide_fields_in_newer_versions 5 0 0 4 0 100%
watcher/api/controllers/v1/audit.py AuditPostType.as_audit 47 12 0 34 4 75%
watcher/api/controllers/v1/audit.py AuditPatchType.mandatory_attrs 1 0 0 0 0 100%
watcher/api/controllers/v1/audit.py AuditPatchType.validate 6 2 0 2 1 62%
watcher/api/controllers/v1/audit.py AuditPatchType.validate.is_new_state_none 1 0 0 0 0 100%
watcher/api/controllers/v1/audit.py Audit._get_goal 12 3 0 6 2 72%
watcher/api/controllers/v1/audit.py Audit._get_goal_uuid 1 0 0 0 0 100%
watcher/api/controllers/v1/audit.py Audit._set_goal_uuid 5 0 0 4 1 89%
watcher/api/controllers/v1/audit.py Audit._get_goal_name 1 0 0 0 0 100%
watcher/api/controllers/v1/audit.py Audit._set_goal_name 5 0 0 4 1 89%
watcher/api/controllers/v1/audit.py Audit._get_strategy 12 4 0 6 3 61%
watcher/api/controllers/v1/audit.py Audit._get_strategy_uuid 1 0 0 0 0 100%
watcher/api/controllers/v1/audit.py Audit._set_strategy_uuid 5 0 0 4 1 89%
watcher/api/controllers/v1/audit.py Audit._get_strategy_name 1 0 0 0 0 100%
watcher/api/controllers/v1/audit.py Audit._set_strategy_name 5 0 0 4 1 89%
watcher/api/controllers/v1/audit.py Audit.__init__ 17 0 0 4 0 100%
watcher/api/controllers/v1/audit.py Audit._convert_with_links 4 0 0 2 0 100%
watcher/api/controllers/v1/audit.py Audit.convert_with_links 3 0 0 0 0 100%
watcher/api/controllers/v1/audit.py Audit.sample 4 4 0 0 0 0%
watcher/api/controllers/v1/audit.py AuditCollection.__init__ 2 0 0 0 0 100%
watcher/api/controllers/v1/audit.py AuditCollection.convert_with_links 4 0 0 0 0 100%
watcher/api/controllers/v1/audit.py AuditCollection.sample 3 3 0 0 0 0%
watcher/api/controllers/v1/audit.py AuditsController.__init__ 2 0 0 0 0 100%
watcher/api/controllers/v1/audit.py AuditsController._get_audits_collection 23 7 0 12 3 60%
watcher/api/controllers/v1/audit.py AuditsController.get_all 3 0 0 0 0 100%
watcher/api/controllers/v1/audit.py AuditsController.detail 8 0 0 2 0 100%
watcher/api/controllers/v1/audit.py AuditsController.get_one 6 1 0 2 1 75%
watcher/api/controllers/v1/audit.py AuditsController.post 31 1 0 14 2 93%
watcher/api/controllers/v1/audit.py AuditsController.patch 31 4 0 12 2 86%
watcher/api/controllers/v1/audit.py AuditsController.delete 8 0 0 2 0 100%
watcher/api/controllers/v1/audit.py (no function) 132 0 0 0 0 100%
watcher/api/controllers/v1/audit_template.py hide_fields_in_newer_versions 1 0 0 0 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplatePostType.as_audit_template 1 0 0 0 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplatePostType._build_schema 2 0 0 0 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplatePostType._get_schemas 3 0 0 0 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplatePostType.validate 38 6 0 26 2 88%
watcher/api/controllers/v1/audit_template.py AuditTemplatePatchType.mandatory_attrs 1 0 0 0 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplatePatchType.validate 7 0 0 6 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplatePatchType._validate_goal 11 1 0 6 2 82%
watcher/api/controllers/v1/audit_template.py AuditTemplatePatchType._validate_strategy 11 1 0 6 1 88%
watcher/api/controllers/v1/audit_template.py AuditTemplate._get_goal 12 4 0 6 3 61%
watcher/api/controllers/v1/audit_template.py AuditTemplate._get_strategy 12 4 0 6 3 61%
watcher/api/controllers/v1/audit_template.py AuditTemplate._get_goal_uuid 1 0 0 0 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplate._set_goal_uuid 5 0 0 4 1 89%
watcher/api/controllers/v1/audit_template.py AuditTemplate._get_strategy_uuid 1 0 0 0 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplate._set_strategy_uuid 5 0 0 4 1 89%
watcher/api/controllers/v1/audit_template.py AuditTemplate._get_goal_name 1 0 0 0 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplate._set_goal_name 5 0 0 4 1 89%
watcher/api/controllers/v1/audit_template.py AuditTemplate._get_strategy_name 1 0 0 0 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplate._set_strategy_name 5 0 0 4 1 89%
watcher/api/controllers/v1/audit_template.py AuditTemplate.__init__ 19 0 0 4 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplate._convert_with_links 6 0 0 2 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplate.convert_with_links 3 0 0 0 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplate.sample 2 2 0 0 0 0%
watcher/api/controllers/v1/audit_template.py AuditTemplateCollection.__init__ 2 0 0 0 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplateCollection.convert_with_links 4 0 0 0 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplateCollection.sample 3 3 0 0 0 0%
watcher/api/controllers/v1/audit_template.py AuditTemplatesController.__init__ 1 0 0 0 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplatesController._get_audit_templates_collection 15 1 0 4 1 89%
watcher/api/controllers/v1/audit_template.py AuditTemplatesController.get_all 12 0 0 8 0 100%
watcher/api/controllers/v1/audit_template.py AuditTemplatesController.detail 17 6 0 10 2 56%
watcher/api/controllers/v1/audit_template.py AuditTemplatesController.get_one 6 1 0 2 1 75%
watcher/api/controllers/v1/audit_template.py AuditTemplatesController.post 11 1 0 2 1 85%
watcher/api/controllers/v1/audit_template.py AuditTemplatesController.patch 24 1 0 10 1 94%
watcher/api/controllers/v1/audit_template.py AuditTemplatesController.delete 4 0 0 0 0 100%
watcher/api/controllers/v1/audit_template.py (no function) 119 0 0 0 0 100%
watcher/api/controllers/v1/collection.py Collection.collection 1 0 0 0 0 100%
watcher/api/controllers/v1/collection.py Collection.has_next 1 0 0 0 0 100%
watcher/api/controllers/v1/collection.py Collection.get_next 6 0 0 2 0 100%
watcher/api/controllers/v1/collection.py (no function) 11 0 0 0 0 100%
watcher/api/controllers/v1/data_model.py DataModelController.__init__ 1 0 0 0 0 100%
watcher/api/controllers/v1/data_model.py DataModelController.get_all 12 2 0 6 2 78%
watcher/api/controllers/v1/data_model.py (no function) 15 0 0 0 0 100%
watcher/api/controllers/v1/efficacy_indicator.py EfficacyIndicator.__init__ 8 0 0 4 0 100%
watcher/api/controllers/v1/efficacy_indicator.py (no function) 14 0 0 0 0 100%
watcher/api/controllers/v1/goal.py hide_fields_in_newer_versions 1 0 0 0 0 100%
watcher/api/controllers/v1/goal.py Goal.__init__ 7 0 0 4 0 100%
watcher/api/controllers/v1/goal.py Goal._convert_with_links 4 0 0 2 0 100%
watcher/api/controllers/v1/goal.py Goal.convert_with_links 3 0 0 0 0 100%
watcher/api/controllers/v1/goal.py Goal.sample 2 2 0 0 0 0%
watcher/api/controllers/v1/goal.py GoalCollection.__init__ 2 0 0 0 0 100%
watcher/api/controllers/v1/goal.py GoalCollection.convert_with_links 4 0 0 0 0 100%
watcher/api/controllers/v1/goal.py GoalCollection.sample 3 3 0 0 0 0%
watcher/api/controllers/v1/goal.py GoalsController.__init__ 1 0 0 0 0 100%
watcher/api/controllers/v1/goal.py GoalsController._get_goals_collection 9 1 0 2 1 82%
watcher/api/controllers/v1/goal.py GoalsController.get_all 3 0 0 0 0 100%
watcher/api/controllers/v1/goal.py GoalsController.detail 8 0 0 2 0 100%
watcher/api/controllers/v1/goal.py GoalsController.get_one 6 1 0 2 1 75%
watcher/api/controllers/v1/goal.py (no function) 51 0 0 0 0 100%
watcher/api/controllers/v1/scoring_engine.py hide_fields_in_newer_versions 1 0 0 0 0 100%
watcher/api/controllers/v1/scoring_engine.py ScoringEngine.__init__ 10 0 0 0 0 100%
watcher/api/controllers/v1/scoring_engine.py ScoringEngine._convert_with_links 4 0 0 2 0 100%
watcher/api/controllers/v1/scoring_engine.py ScoringEngine.convert_with_links 3 0 0 0 0 100%
watcher/api/controllers/v1/scoring_engine.py ScoringEngine.sample 2 2 0 0 0 0%
watcher/api/controllers/v1/scoring_engine.py ScoringEngineCollection.__init__ 2 0 0 0 0 100%
watcher/api/controllers/v1/scoring_engine.py ScoringEngineCollection.convert_with_links 4 0 0 0 0 100%
watcher/api/controllers/v1/scoring_engine.py ScoringEngineCollection.sample 3 3 0 0 0 0%
watcher/api/controllers/v1/scoring_engine.py ScoringEngineController.__init__ 1 0 0 0 0 100%
watcher/api/controllers/v1/scoring_engine.py ScoringEngineController._get_scoring_engines_collection 10 1 0 2 1 83%
watcher/api/controllers/v1/scoring_engine.py ScoringEngineController.get_all 3 0 0 0 0 100%
watcher/api/controllers/v1/scoring_engine.py ScoringEngineController.detail 8 0 0 2 0 100%
watcher/api/controllers/v1/scoring_engine.py ScoringEngineController.get_one 6 1 0 2 1 75%
watcher/api/controllers/v1/scoring_engine.py (no function) 51 0 0 0 0 100%
watcher/api/controllers/v1/service.py hide_fields_in_newer_versions 1 0 0 0 0 100%
watcher/api/controllers/v1/service.py Service._get_status 1 0 0 0 0 100%
watcher/api/controllers/v1/service.py Service._set_status 11 2 0 4 2 73%
watcher/api/controllers/v1/service.py Service.__init__ 6 0 0 2 0 100%
watcher/api/controllers/v1/service.py Service._convert_with_links 4 0 0 2 0 100%
watcher/api/controllers/v1/service.py Service.convert_with_links 3 0 0 0 0 100%
watcher/api/controllers/v1/service.py Service.sample 2 2 0 0 0 0%
watcher/api/controllers/v1/service.py ServiceCollection.__init__ 2 0 0 0 0 100%
watcher/api/controllers/v1/service.py ServiceCollection.convert_with_links 4 0 0 0 0 100%
watcher/api/controllers/v1/service.py ServiceCollection.sample 3 3 0 0 0 0%
watcher/api/controllers/v1/service.py ServicesController.__init__ 1 0 0 0 0 100%
watcher/api/controllers/v1/service.py ServicesController._get_services_collection 9 1 0 2 1 82%
watcher/api/controllers/v1/service.py ServicesController.get_all 3 0 0 0 0 100%
watcher/api/controllers/v1/service.py ServicesController.detail 8 0 0 2 0 100%
watcher/api/controllers/v1/service.py ServicesController.get_one 6 1 0 2 1 75%
watcher/api/controllers/v1/service.py (no function) 62 0 0 0 0 100%
watcher/api/controllers/v1/strategy.py hide_fields_in_newer_versions 1 0 0 0 0 100%
watcher/api/controllers/v1/strategy.py Strategy._get_goal 12 4 0 6 3 61%
watcher/api/controllers/v1/strategy.py Strategy._get_goal_uuid 1 0 0 0 0 100%
watcher/api/controllers/v1/strategy.py Strategy._set_goal_uuid 5 0 0 4 2 78%
watcher/api/controllers/v1/strategy.py Strategy._get_goal_name 1 0 0 0 0 100%
watcher/api/controllers/v1/strategy.py Strategy._set_goal_name 5 0 0 4 2 78%
watcher/api/controllers/v1/strategy.py Strategy.__init__ 14 0 0 0 0 100%
watcher/api/controllers/v1/strategy.py Strategy._convert_with_links 4 0 0 2 0 100%
watcher/api/controllers/v1/strategy.py Strategy.convert_with_links 3 0 0 0 0 100%
watcher/api/controllers/v1/strategy.py Strategy.sample 2 2 0 0 0 0%
watcher/api/controllers/v1/strategy.py StrategyCollection.__init__ 2 0 0 0 0 100%
watcher/api/controllers/v1/strategy.py StrategyCollection.convert_with_links 4 0 0 0 0 100%
watcher/api/controllers/v1/strategy.py StrategyCollection.sample 3 3 0 0 0 0%
watcher/api/controllers/v1/strategy.py StrategiesController.__init__ 1 0 0 0 0 100%
watcher/api/controllers/v1/strategy.py StrategiesController._get_strategies_collection 15 1 0 4 1 89%
watcher/api/controllers/v1/strategy.py StrategiesController.get_all 8 0 0 4 0 100%
watcher/api/controllers/v1/strategy.py StrategiesController.detail 13 3 0 6 1 68%
watcher/api/controllers/v1/strategy.py StrategiesController.state 10 1 0 2 1 83%
watcher/api/controllers/v1/strategy.py StrategiesController.get_one 6 1 0 2 1 75%
watcher/api/controllers/v1/strategy.py (no function) 66 0 0 0 0 100%
watcher/api/controllers/v1/types.py UuidOrNameType.validate 3 0 0 2 0 100%
watcher/api/controllers/v1/types.py UuidOrNameType.frombasetype 3 3 0 2 0 0%
watcher/api/controllers/v1/types.py IntervalOrCron.validate 3 1 0 2 1 60%
watcher/api/controllers/v1/types.py IntervalOrCron.frombasetype 3 1 0 2 1 60%
watcher/api/controllers/v1/types.py NameType.validate 3 0 0 2 0 100%
watcher/api/controllers/v1/types.py NameType.frombasetype 3 3 0 2 0 0%
watcher/api/controllers/v1/types.py UuidType.validate 3 0 0 2 0 100%
watcher/api/controllers/v1/types.py UuidType.frombasetype 3 0 0 2 0 100%
watcher/api/controllers/v1/types.py BooleanType.validate 4 0 0 0 0 100%
watcher/api/controllers/v1/types.py BooleanType.frombasetype 3 3 0 2 0 0%
watcher/api/controllers/v1/types.py JsonType.__str__ 1 0 0 0 0 100%
watcher/api/controllers/v1/types.py JsonType.validate 5 0 0 0 0 100%
watcher/api/controllers/v1/types.py JsonType.frombasetype 1 0 0 0 0 100%
watcher/api/controllers/v1/types.py MultiType.__init__ 1 1 0 0 0 0%
watcher/api/controllers/v1/types.py MultiType.__str__ 1 1 0 0 0 0%
watcher/api/controllers/v1/types.py MultiType.validate 6 6 0 6 0 0%
watcher/api/controllers/v1/types.py JsonPatchType.internal_attrs 1 0 0 0 0 100%
watcher/api/controllers/v1/types.py JsonPatchType.mandatory_attrs 1 1 0 0 0 0%
watcher/api/controllers/v1/types.py JsonPatchType.validate 15 0 0 10 0 100%
watcher/api/controllers/v1/types.py (no function) 68 0 0 0 0 100%
watcher/api/controllers/v1/utils.py validate_limit 7 0 0 6 0 100%
watcher/api/controllers/v1/utils.py validate_sort_dir 2 0 0 2 0 100%
watcher/api/controllers/v1/utils.py validate_sort_key 2 0 0 2 0 100%
watcher/api/controllers/v1/utils.py validate_search_filters 3 0 0 4 0 100%
watcher/api/controllers/v1/utils.py check_need_api_sort 1 0 0 0 0 100%
watcher/api/controllers/v1/utils.py make_api_sort 3 0 0 0 0 100%
watcher/api/controllers/v1/utils.py apply_jsonpatch 6 0 0 6 0 100%
watcher/api/controllers/v1/utils.py get_patch_value 3 0 0 4 0 100%
watcher/api/controllers/v1/utils.py set_patch_value 3 3 0 4 0 0%
watcher/api/controllers/v1/utils.py get_patch_key 3 0 0 4 0 100%
watcher/api/controllers/v1/utils.py check_audit_state_transition 5 0 0 2 0 100%
watcher/api/controllers/v1/utils.py as_filters_dict 5 5 0 4 0 0%
watcher/api/controllers/v1/utils.py get_resource 12 0 0 6 0 100%
watcher/api/controllers/v1/utils.py allow_start_end_audit_time 1 0 0 0 0 100%
watcher/api/controllers/v1/utils.py allow_force 1 0 0 0 0 100%
watcher/api/controllers/v1/utils.py allow_list_datamodel 1 0 0 0 0 100%
watcher/api/controllers/v1/utils.py allow_webhook_api 1 0 0 0 0 100%
watcher/api/controllers/v1/utils.py (no function) 30 0 0 0 0 100%
watcher/api/controllers/v1/versions.py service_type_string 1 0 0 0 0 100%
watcher/api/controllers/v1/versions.py min_version_string 1 0 0 0 0 100%
watcher/api/controllers/v1/versions.py max_version_string 1 0 0 0 0 100%
watcher/api/controllers/v1/versions.py (no function) 14 0 0 0 0 100%
watcher/api/controllers/v1/webhooks.py WebhookController.__init__ 2 0 0 0 0 100%
watcher/api/controllers/v1/webhooks.py WebhookController.post 11 1 0 6 1 88%
watcher/api/controllers/v1/webhooks.py (no function) 16 0 0 0 0 100%
watcher/api/hooks.py ContextHook.before 13 0 0 0 0 100%
watcher/api/hooks.py NoExceptionTracebackHook.after 13 0 0 8 0 100%
watcher/api/hooks.py (no function) 8 0 0 0 0 100%
watcher/api/middleware/__init__.py (no function) 0 0 0 0 0 100%
watcher/api/middleware/auth_token.py AuthTokenMiddleware.__init__ 7 3 0 0 0 57%
watcher/api/middleware/auth_token.py AuthTokenMiddleware.__call__ 5 5 0 2 0 0%
watcher/api/middleware/auth_token.py (no function) 10 0 0 0 0 100%
watcher/api/middleware/parsable_error.py ParsableErrorMiddleware.__init__ 1 0 0 0 0 100%
watcher/api/middleware/parsable_error.py ParsableErrorMiddleware.__call__ 19 6 0 4 1 70%
watcher/api/middleware/parsable_error.py ParsableErrorMiddleware.__call__.replacement_start_response 9 2 0 2 0 82%
watcher/api/middleware/parsable_error.py (no function) 9 0 0 0 0 100%
watcher/api/scheduling.py APISchedulingService.__init__ 2 0 0 0 0 100%
watcher/api/scheduling.py APISchedulingService.get_services_status 20 8 0 10 1 63%
watcher/api/scheduling.py APISchedulingService.get_service_status 11 1 0 4 1 87%
watcher/api/scheduling.py APISchedulingService.start 3 0 0 0 0 100%
watcher/api/scheduling.py APISchedulingService.stop 1 1 0 0 0 0%
watcher/api/scheduling.py APISchedulingService.wait 0 0 0 0 0 100%
watcher/api/scheduling.py APISchedulingService.reset 0 0 0 0 0 100%
watcher/api/scheduling.py (no function) 19 0 0 0 0 100%
watcher/api/wsgi.py initialize_wsgi_app 7 7 0 2 0 0%
watcher/api/wsgi.py (no function) 9 9 0 0 0 0%
watcher/applier/__init__.py (no function) 0 0 0 0 0 100%
watcher/applier/action_plan/__init__.py (no function) 0 0 0 0 0 100%
watcher/applier/action_plan/base.py BaseActionPlanHandler.execute 0 0 1 0 0 100%
watcher/applier/action_plan/base.py (no function) 2 0 2 0 0 100%
watcher/applier/action_plan/default.py DefaultActionPlanHandler.__init__ 4 0 0 0 0 100%
watcher/applier/action_plan/default.py DefaultActionPlanHandler.execute 37 9 0 6 2 74%
watcher/applier/action_plan/default.py DefaultActionPlanHandler._update_action_from_pending_to_cancelled 6 0 0 4 1 90%
watcher/applier/action_plan/default.py (no function) 14 0 0 0 0 100%
watcher/applier/actions/__init__.py (no function) 0 0 0 0 0 100%
watcher/applier/actions/base.py BaseAction.__init__ 3 0 0 0 0 100%
watcher/applier/actions/base.py BaseAction.osc 3 0 0 2 0 100%
watcher/applier/actions/base.py BaseAction.input_parameters 1 0 0 0 0 100%
watcher/applier/actions/base.py BaseAction.input_parameters 1 0 0 0 0 100%
watcher/applier/actions/base.py BaseAction.resource_id 1 0 0 0 0 100%
watcher/applier/actions/base.py BaseAction.get_config_opts 1 0 0 0 0 100%
watcher/applier/actions/base.py BaseAction.execute 0 0 12 0 0 100%
watcher/applier/actions/base.py BaseAction.revert 0 0 7 0 0 100%
watcher/applier/actions/base.py BaseAction.pre_condition 0 0 8 0 0 100%
watcher/applier/actions/base.py BaseAction.post_condition 0 0 6 0 0 100%
watcher/applier/actions/base.py BaseAction.schema 0 0 7 0 0 100%
watcher/applier/actions/base.py BaseAction.validate_parameters 2 0 0 0 0 100%
watcher/applier/actions/base.py BaseAction.get_description 0 0 2 0 0 100%
watcher/applier/actions/base.py BaseAction.check_abort 5 1 0 4 1 78%
watcher/applier/actions/base.py (no function) 20 0 13 0 0 100%
watcher/applier/actions/change_node_power_state.py ChangeNodePowerState.schema 1 0 0 0 0 100%
watcher/applier/actions/change_node_power_state.py ChangeNodePowerState.node_uuid 1 0 0 0 0 100%
watcher/applier/actions/change_node_power_state.py ChangeNodePowerState.state 1 0 0 0 0 100%
watcher/applier/actions/change_node_power_state.py ChangeNodePowerState.execute 2 0 0 0 0 100%
watcher/applier/actions/change_node_power_state.py ChangeNodePowerState.revert 5 0 0 4 1 89%
watcher/applier/actions/change_node_power_state.py ChangeNodePowerState._node_manage_power 22 5 0 12 4 74%
watcher/applier/actions/change_node_power_state.py ChangeNodePowerState.pre_condition 1 0 0 0 0 100%
watcher/applier/actions/change_node_power_state.py ChangeNodePowerState.post_condition 1 0 0 0 0 100%
watcher/applier/actions/change_node_power_state.py ChangeNodePowerState.get_description 1 1 0 0 0 0%
watcher/applier/actions/change_node_power_state.py (no function) 22 0 0 0 0 100%
watcher/applier/actions/change_nova_service_state.py ChangeNovaServiceState.schema 1 0 0 0 0 100%
watcher/applier/actions/change_nova_service_state.py ChangeNovaServiceState.host 1 0 0 0 0 100%
watcher/applier/actions/change_nova_service_state.py ChangeNovaServiceState.state 1 0 0 0 0 100%
watcher/applier/actions/change_nova_service_state.py ChangeNovaServiceState.reason 1 0 0 0 0 100%
watcher/applier/actions/change_nova_service_state.py ChangeNovaServiceState.execute 6 0 0 4 1 90%
watcher/applier/actions/change_nova_service_state.py ChangeNovaServiceState.revert 6 0 0 4 1 90%
watcher/applier/actions/change_nova_service_state.py ChangeNovaServiceState._nova_manage_service 6 1 0 4 1 80%
watcher/applier/actions/change_nova_service_state.py ChangeNovaServiceState.pre_condition 1 0 0 0 0 100%
watcher/applier/actions/change_nova_service_state.py ChangeNovaServiceState.post_condition 1 0 0 0 0 100%
watcher/applier/actions/change_nova_service_state.py ChangeNovaServiceState.get_description 1 1 0 0 0 0%
watcher/applier/actions/change_nova_service_state.py (no function) 23 0 0 0 0 100%
watcher/applier/actions/factory.py ActionFactory.__init__ 1 0 0 0 0 100%
watcher/applier/actions/factory.py ActionFactory.make_action 6 0 0 0 0 100%
watcher/applier/actions/factory.py (no function) 6 0 0 0 0 100%
watcher/applier/actions/migration.py Migrate.schema 1 0 0 0 0 100%
watcher/applier/actions/migration.py Migrate.instance_uuid 1 0 0 0 0 100%
watcher/applier/actions/migration.py Migrate.migration_type 1 0 0 0 0 100%
watcher/applier/actions/migration.py Migrate.destination_node 1 0 0 0 0 100%
watcher/applier/actions/migration.py Migrate.source_node 1 0 0 0 0 100%
watcher/applier/actions/migration.py Migrate._live_migrate_instance 9 1 0 0 0 89%
watcher/applier/actions/migration.py Migrate._cold_migrate_instance 7 3 0 0 0 57%
watcher/applier/actions/migration.py Migrate._abort_cold_migrate 1 1 0 0 0 0%
watcher/applier/actions/migration.py Migrate._abort_live_migrate 1 0 0 0 0 100%
watcher/applier/actions/migration.py Migrate.migrate 12 2 0 8 2 80%
watcher/applier/actions/migration.py Migrate.execute 1 0 0 0 0 100%
watcher/applier/actions/migration.py Migrate.revert 1 0 0 0 0 100%
watcher/applier/actions/migration.py Migrate.abort 8 2 0 6 3 64%
watcher/applier/actions/migration.py Migrate.pre_condition 1 0 0 0 0 100%
watcher/applier/actions/migration.py Migrate.post_condition 1 0 0 0 0 100%
watcher/applier/actions/migration.py Migrate.get_description 1 1 0 0 0 0%
watcher/applier/actions/migration.py (no function) 33 0 0 0 0 100%
watcher/applier/actions/nop.py Nop.schema 1 0 0 0 0 100%
watcher/applier/actions/nop.py Nop.message 1 0 0 0 0 100%
watcher/applier/actions/nop.py Nop.execute 2 0 0 0 0 100%
watcher/applier/actions/nop.py Nop.revert 2 0 0 0 0 100%
watcher/applier/actions/nop.py Nop.pre_condition 1 0 0 0 0 100%
watcher/applier/actions/nop.py Nop.post_condition 1 0 0 0 0 100%
watcher/applier/actions/nop.py Nop.get_description 1 1 0 0 0 0%
watcher/applier/actions/nop.py Nop.abort 2 0 0 0 0 100%
watcher/applier/actions/nop.py (no function) 15 0 0 0 0 100%
watcher/applier/actions/resize.py Resize.schema 1 0 0 0 0 100%
watcher/applier/actions/resize.py Resize.instance_uuid 1 0 0 0 0 100%
watcher/applier/actions/resize.py Resize.flavor 1 0 0 0 0 100%
watcher/applier/actions/resize.py Resize.resize 11 3 0 2 1 69%
watcher/applier/actions/resize.py Resize.execute 1 0 0 0 0 100%
watcher/applier/actions/resize.py Resize.revert 1 1 0 0 0 0%
watcher/applier/actions/resize.py Resize.pre_condition 1 1 0 0 0 0%
watcher/applier/actions/resize.py Resize.post_condition 1 1 0 0 0 0%
watcher/applier/actions/resize.py Resize.get_description 1 1 0 0 0 0%
watcher/applier/actions/resize.py (no function) 18 0 0 0 0 100%
watcher/applier/actions/sleep.py Sleep.schema 1 0 0 0 0 100%
watcher/applier/actions/sleep.py Sleep.duration 1 0 0 0 0 100%
watcher/applier/actions/sleep.py Sleep.execute 3 1 0 0 0 67%
watcher/applier/actions/sleep.py Sleep.revert 2 2 0 0 0 0%
watcher/applier/actions/sleep.py Sleep.pre_condition 1 0 0 0 0 100%
watcher/applier/actions/sleep.py Sleep.post_condition 1 0 0 0 0 100%
watcher/applier/actions/sleep.py Sleep.get_description 1 1 0 0 0 0%
watcher/applier/actions/sleep.py Sleep.abort 2 2 0 0 0 0%
watcher/applier/actions/sleep.py (no function) 16 0 0 0 0 100%
watcher/applier/actions/volume_migration.py VolumeMigrate.__init__ 5 0 0 0 0 100%
watcher/applier/actions/volume_migration.py VolumeMigrate.schema 1 0 0 0 0 100%
watcher/applier/actions/volume_migration.py VolumeMigrate.validate_parameters 2 1 0 0 0 50%
watcher/applier/actions/volume_migration.py VolumeMigrate.volume_id 1 0 0 0 0 100%
watcher/applier/actions/volume_migration.py VolumeMigrate.migration_type 1 0 0 0 0 100%
watcher/applier/actions/volume_migration.py VolumeMigrate.destination_node 1 0 0 0 0 100%
watcher/applier/actions/volume_migration.py VolumeMigrate.destination_type 1 0 0 0 0 100%
watcher/applier/actions/volume_migration.py VolumeMigrate._can_swap 7 1 0 4 1 82%
watcher/applier/actions/volume_migration.py VolumeMigrate._create_user 6 0 0 0 0 100%
watcher/applier/actions/volume_migration.py VolumeMigrate._get_cinder_client 1 0 0 0 0 100%
watcher/applier/actions/volume_migration.py VolumeMigrate._swap_volume 15 2 0 4 2 79%
watcher/applier/actions/volume_migration.py VolumeMigrate._migrate 18 3 0 8 2 81%
watcher/applier/actions/volume_migration.py VolumeMigrate.execute 1 0 0 0 0 100%
watcher/applier/actions/volume_migration.py VolumeMigrate.revert 1 1 0 0 0 0%
watcher/applier/actions/volume_migration.py VolumeMigrate.abort 1 1 0 0 0 0%
watcher/applier/actions/volume_migration.py VolumeMigrate.pre_condition 1 1 0 0 0 0%
watcher/applier/actions/volume_migration.py VolumeMigrate.post_condition 1 1 0 0 0 0%
watcher/applier/actions/volume_migration.py VolumeMigrate.get_description 1 1 0 0 0 0%
watcher/applier/actions/volume_migration.py (no function) 43 0 0 0 0 100%
watcher/applier/base.py BaseApplier.execute 0 0 1 0 0 100%
watcher/applier/base.py (no function) 2 0 2 0 0 100%
watcher/applier/default.py DefaultApplier.__init__ 5 0 0 0 0 100%
watcher/applier/default.py DefaultApplier.context 1 0 0 0 0 100%
watcher/applier/default.py DefaultApplier.applier_manager 1 0 0 0 0 100%
watcher/applier/default.py DefaultApplier.engine 5 0 0 2 1 86%
watcher/applier/default.py DefaultApplier.execute 4 0 0 0 0 100%
watcher/applier/default.py (no function) 16 0 0 0 0 100%
watcher/applier/loading/__init__.py (no function) 0 0 0 0 0 100%
watcher/applier/loading/default.py DefaultWorkFlowEngineLoader.__init__ 1 0 0 0 0 100%
watcher/applier/loading/default.py DefaultActionLoader.__init__ 1 0 0 0 0 100%
watcher/applier/loading/default.py (no function) 5 0 0 0 0 100%
watcher/applier/manager.py ApplierManager.service_name 1 0 0 0 0 100%
watcher/applier/manager.py ApplierManager.api_version 1 0 0 0 0 100%
watcher/applier/manager.py ApplierManager.publisher_id 1 0 0 0 0 100%
watcher/applier/manager.py ApplierManager.conductor_topic 1 0 0 0 0 100%
watcher/applier/manager.py ApplierManager.notification_topics 1 0 0 0 0 100%
watcher/applier/manager.py ApplierManager.conductor_endpoints 1 0 0 0 0 100%
watcher/applier/manager.py ApplierManager.notification_endpoints 1 0 0 0 0 100%
watcher/applier/manager.py (no function) 19 0 0 0 0 100%
watcher/applier/messaging/__init__.py (no function) 0 0 0 0 0 100%
watcher/applier/messaging/trigger.py TriggerActionPlan.__init__ 3 0 0 0 0 100%
watcher/applier/messaging/trigger.py TriggerActionPlan.do_launch_action_plan 5 2 0 0 0 60%
watcher/applier/messaging/trigger.py TriggerActionPlan.launch_action_plan 3 0 0 0 0 100%
watcher/applier/messaging/trigger.py (no function) 10 0 0 0 0 100%
watcher/applier/rpcapi.py ApplierAPI.__init__ 1 0 0 0 0 100%
watcher/applier/rpcapi.py ApplierAPI.launch_action_plan 3 0 0 2 0 100%
watcher/applier/rpcapi.py ApplierAPIManager.service_name 1 0 0 0 0 100%
watcher/applier/rpcapi.py ApplierAPIManager.api_version 1 0 0 0 0 100%
watcher/applier/rpcapi.py ApplierAPIManager.publisher_id 1 0 0 0 0 100%
watcher/applier/rpcapi.py ApplierAPIManager.conductor_topic 1 0 0 0 0 100%
watcher/applier/rpcapi.py ApplierAPIManager.notification_topics 1 0 0 0 0 100%
watcher/applier/rpcapi.py ApplierAPIManager.conductor_endpoints 1 0 0 0 0 100%
watcher/applier/rpcapi.py ApplierAPIManager.notification_endpoints 1 0 0 0 0 100%
watcher/applier/rpcapi.py (no function) 24 0 0 0 0 100%
watcher/applier/sync.py Syncer.sync 17 17 0 4 0 0%
watcher/applier/sync.py Syncer._cancel_ongoing_actionplans 10 0 0 4 0 100%
watcher/applier/sync.py (no function) 11 0 0 0 0 100%
watcher/applier/workflow_engine/__init__.py (no function) 0 0 0 0 0 100%
watcher/applier/workflow_engine/base.py BaseWorkFlowEngine.__init__ 7 0 0 0 0 100%
watcher/applier/workflow_engine/base.py BaseWorkFlowEngine.get_config_opts 1 1 0 0 0 0%
watcher/applier/workflow_engine/base.py BaseWorkFlowEngine.context 1 0 0 0 0 100%
watcher/applier/workflow_engine/base.py BaseWorkFlowEngine.osc 3 0 0 2 0 100%
watcher/applier/workflow_engine/base.py BaseWorkFlowEngine.applier_manager 1 1 0 0 0 0%
watcher/applier/workflow_engine/base.py BaseWorkFlowEngine.action_factory 1 0 0 0 0 100%
watcher/applier/workflow_engine/base.py BaseWorkFlowEngine.notify 4 0 0 0 0 100%
watcher/applier/workflow_engine/base.py BaseWorkFlowEngine.notify_cancel_start 4 0 0 2 0 100%
watcher/applier/workflow_engine/base.py BaseWorkFlowEngine.execute 0 0 1 0 0 100%
watcher/applier/workflow_engine/base.py BaseTaskFlowActionContainer.__init__ 4 0 0 0 0 100%
watcher/applier/workflow_engine/base.py BaseTaskFlowActionContainer.engine 1 0 0 0 0 100%
watcher/applier/workflow_engine/base.py BaseTaskFlowActionContainer.action 4 0 0 2 0 100%
watcher/applier/workflow_engine/base.py BaseTaskFlowActionContainer.do_pre_execute 0 0 1 0 0 100%
watcher/applier/workflow_engine/base.py BaseTaskFlowActionContainer.do_execute 0 0 1 0 0 100%
watcher/applier/workflow_engine/base.py BaseTaskFlowActionContainer.do_post_execute 0 0 1 0 0 100%
watcher/applier/workflow_engine/base.py BaseTaskFlowActionContainer.do_revert 0 0 1 0 0 100%
watcher/applier/workflow_engine/base.py BaseTaskFlowActionContainer.do_abort 0 0 1 0 0 100%
watcher/applier/workflow_engine/base.py BaseTaskFlowActionContainer.pre_execute 14 4 0 2 0 75%
watcher/applier/workflow_engine/base.py BaseTaskFlowActionContainer.execute 23 2 0 6 0 93%
watcher/applier/workflow_engine/base.py BaseTaskFlowActionContainer.execute._do_execute_action 9 2 0 0 0 78%
watcher/applier/workflow_engine/base.py BaseTaskFlowActionContainer.post_execute 6 1 0 0 0 83%
watcher/applier/workflow_engine/base.py BaseTaskFlowActionContainer.revert 22 11 0 6 2 54%
watcher/applier/workflow_engine/base.py BaseTaskFlowActionContainer.abort 1 0 0 0 0 100%
watcher/applier/workflow_engine/base.py (no function) 39 0 12 0 0 100%
watcher/applier/workflow_engine/default.py DefaultWorkFlowEngine.decider 4 0 0 2 0 100%
watcher/applier/workflow_engine/default.py DefaultWorkFlowEngine.get_config_opts 1 0 0 0 0 100%
watcher/applier/workflow_engine/default.py DefaultWorkFlowEngine.get_execution_rule 4 0 0 2 0 100%
watcher/applier/workflow_engine/default.py DefaultWorkFlowEngine.execute 22 8 0 8 0 67%
watcher/applier/workflow_engine/default.py TaskFlowActionContainer.__init__ 2 0 0 0 0 100%
watcher/applier/workflow_engine/default.py TaskFlowActionContainer.do_pre_execute 4 0 0 0 0 100%
watcher/applier/workflow_engine/default.py TaskFlowActionContainer.do_execute 6 1 0 2 0 88%
watcher/applier/workflow_engine/default.py TaskFlowActionContainer.do_post_execute 2 0 0 0 0 100%
watcher/applier/workflow_engine/default.py TaskFlowActionContainer.do_revert 9 3 0 2 0 73%
watcher/applier/workflow_engine/default.py TaskFlowActionContainer.do_abort 9 4 0 2 1 55%
watcher/applier/workflow_engine/default.py TaskFlowNop.execute 1 1 0 0 0 0%
watcher/applier/workflow_engine/default.py (no function) 28 0 0 0 0 100%
watcher/cmd/__init__.py (no function) 2 0 0 0 0 100%
watcher/cmd/api.py main 11 2 0 2 0 85%
watcher/cmd/api.py (no function) 9 0 0 0 0 100%
watcher/cmd/applier.py main 7 0 0 0 0 100%
watcher/cmd/applier.py (no function) 10 0 0 0 0 100%
watcher/cmd/dbmanage.py DBCommand.upgrade 1 0 0 0 0 100%
watcher/cmd/dbmanage.py DBCommand.downgrade 1 0 0 0 0 100%
watcher/cmd/dbmanage.py DBCommand.revision 1 0 0 0 0 100%
watcher/cmd/dbmanage.py DBCommand.stamp 1 0 0 0 0 100%
watcher/cmd/dbmanage.py DBCommand.version 1 0 0 0 0 100%
watcher/cmd/dbmanage.py DBCommand.create_schema 1 1 0 0 0 0%
watcher/cmd/dbmanage.py DBCommand.purge 1 0 0 0 0 100%
watcher/cmd/dbmanage.py add_command_parsers 24 24 0 0 0 0%
watcher/cmd/dbmanage.py register_sub_command_opts 1 1 0 0 0 0%
watcher/cmd/dbmanage.py main 6 0 0 2 0 100%
watcher/cmd/dbmanage.py (no function) 26 0 0 0 0 100%
watcher/cmd/decisionengine.py main 10 0 0 0 0 100%
watcher/cmd/decisionengine.py (no function) 12 0 0 0 0 100%
watcher/cmd/status.py Checks._minimum_nova_api_version 5 0 0 0 0 100%
watcher/cmd/status.py main 1 1 0 0 0 0%
watcher/cmd/status.py (no function) 13 1 0 2 1 87%
watcher/cmd/sync.py main 5 5 0 0 0 0%
watcher/cmd/sync.py (no function) 8 8 0 0 0 0%
watcher/common/__init__.py (no function) 0 0 0 0 0 100%
watcher/common/cinder_helper.py CinderHelper.__init__ 2 0 0 0 0 100%
watcher/common/cinder_helper.py CinderHelper.get_storage_node_list 1 0 0 0 0 100%
watcher/common/cinder_helper.py CinderHelper.get_storage_node_by_name 8 0 0 2 0 100%
watcher/common/cinder_helper.py CinderHelper.get_storage_pool_list 1 0 0 0 0 100%
watcher/common/cinder_helper.py CinderHelper.get_storage_pool_by_name 8 0 0 2 0 100%
watcher/common/cinder_helper.py CinderHelper.get_volume_list 1 0 0 0 0 100%
watcher/common/cinder_helper.py CinderHelper.get_volume_type_list 1 0 0 0 0 100%
watcher/common/cinder_helper.py CinderHelper.get_volume_snapshots_list 1 1 0 0 0 0%
watcher/common/cinder_helper.py CinderHelper.get_volume_type_by_backendname 3 0 0 0 0 100%
watcher/common/cinder_helper.py CinderHelper.get_volume 7 1 0 2 1 78%
watcher/common/cinder_helper.py CinderHelper.backendname_from_poolname 7 2 0 0 0 71%
watcher/common/cinder_helper.py CinderHelper._has_snapshot 4 0 0 2 0 100%
watcher/common/cinder_helper.py CinderHelper.get_deleting_volume 6 2 0 4 1 50%
watcher/common/cinder_helper.py CinderHelper._can_get_volume 7 0 0 2 0 100%
watcher/common/cinder_helper.py CinderHelper.check_volume_deleted 12 0 0 4 0 100%
watcher/common/cinder_helper.py CinderHelper.check_migrated 24 0 0 10 2 94%
watcher/common/cinder_helper.py CinderHelper.migrate 9 0 0 2 0 100%
watcher/common/cinder_helper.py CinderHelper.retype 7 0 0 2 0 100%
watcher/common/cinder_helper.py CinderHelper.create_volume 14 0 0 4 0 100%
watcher/common/cinder_helper.py CinderHelper.delete_volume 6 0 0 2 0 100%
watcher/common/cinder_helper.py (no function) 31 0 0 0 0 100%
watcher/common/clients.py check_min_nova_api_version 3 0 0 2 0 100%
watcher/common/clients.py OpenStackClients.__init__ 1 0 0 0 0 100%
watcher/common/clients.py OpenStackClients.reset_clients 11 0 0 0 0 100%
watcher/common/clients.py OpenStackClients._get_keystone_session 3 0 0 0 0 100%
watcher/common/clients.py OpenStackClients.auth_url 1 1 0 0 0 0%
watcher/common/clients.py OpenStackClients.session 3 0 0 2 0 100%
watcher/common/clients.py OpenStackClients._get_client_option 1 0 0 0 0 100%
watcher/common/clients.py OpenStackClients.keystone 6 6 0 2 0 0%
watcher/common/clients.py OpenStackClients.nova 8 0 0 2 0 100%
watcher/common/clients.py OpenStackClients.glance 7 0 0 2 0 100%
watcher/common/clients.py OpenStackClients.gnocchi 8 0 0 2 0 100%
watcher/common/clients.py OpenStackClients.cinder 7 0 0 2 0 100%
watcher/common/clients.py OpenStackClients.monasca 12 0 0 2 0 100%
watcher/common/clients.py OpenStackClients.neutron 8 0 0 2 0 100%
watcher/common/clients.py OpenStackClients.ironic 7 0 0 2 0 100%
watcher/common/clients.py OpenStackClients.maas 9 9 0 4 0 0%
watcher/common/clients.py OpenStackClients.placement 8 1 0 2 1 80%
watcher/common/clients.py (no function) 50 2 0 0 0 96%
watcher/common/config.py parse_args 5 0 0 0 0 100%
watcher/common/config.py (no function) 4 0 0 0 0 100%
watcher/common/context.py RequestContext.__init__ 20 0 0 4 0 100%
watcher/common/context.py RequestContext.to_dict 3 0 0 0 0 100%
watcher/common/context.py RequestContext.from_dict 1 0 0 0 0 100%
watcher/common/context.py RequestContext.__str__ 1 1 0 0 0 0%
watcher/common/context.py make_context 1 0 0 0 0 100%
watcher/common/context.py (no function) 13 0 0 0 0 100%
watcher/common/exception.py wrap_keystone_exception 3 0 0 0 0 100%
watcher/common/exception.py wrap_keystone_exception.wrapped 6 2 0 0 0 67%
watcher/common/exception.py WatcherException.__init__ 17 3 0 8 2 80%
watcher/common/exception.py WatcherException.__str__ 1 0 0 0 0 100%
watcher/common/exception.py WatcherException.__unicode__ 1 1 0 0 0 0%
watcher/common/exception.py WatcherException.format_message 3 3 0 2 0 0%
watcher/common/exception.py (no function) 216 0 0 0 0 100%
watcher/common/ironic_helper.py IronicHelper.__init__ 2 0 0 0 0 100%
watcher/common/ironic_helper.py IronicHelper.get_ironic_node_list 1 0 0 0 0 100%
watcher/common/ironic_helper.py IronicHelper.get_ironic_node_by_uuid 8 0 0 2 0 100%
watcher/common/ironic_helper.py (no function) 9 0 0 0 0 100%
watcher/common/keystone_helper.py KeystoneHelper.__init__ 2 2 0 0 0 0%
watcher/common/keystone_helper.py KeystoneHelper.get_role 10 10 0 4 0 0%
watcher/common/keystone_helper.py KeystoneHelper.get_user 10 10 0 4 0 0%
watcher/common/keystone_helper.py KeystoneHelper.get_project 10 10 0 4 0 0%
watcher/common/keystone_helper.py KeystoneHelper.get_domain 10 10 0 4 0 0%
watcher/common/keystone_helper.py KeystoneHelper.create_session 4 4 0 0 0 0%
watcher/common/keystone_helper.py KeystoneHelper.create_user 7 7 0 2 0 0%
watcher/common/keystone_helper.py KeystoneHelper.delete_user 5 5 0 0 0 0%
watcher/common/keystone_helper.py (no function) 19 0 0 0 0 100%
watcher/common/loader/__init__.py (no function) 0 0 0 0 0 100%
watcher/common/loader/base.py BaseLoader.list_available 0 0 1 0 0 100%
watcher/common/loader/base.py BaseLoader.load 0 0 1 0 0 100%
watcher/common/loader/base.py (no function) 2 0 4 0 0 100%
watcher/common/loader/default.py DefaultLoader.__init__ 3 0 0 0 0 100%
watcher/common/loader/default.py DefaultLoader.load 10 0 0 0 0 100%
watcher/common/loader/default.py DefaultLoader._reload_config 1 0 0 0 0 100%
watcher/common/loader/default.py DefaultLoader.get_entry_name 1 0 0 0 0 100%
watcher/common/loader/default.py DefaultLoader._load_plugin_config 12 1 0 4 1 88%
watcher/common/loader/default.py DefaultLoader.list_available 2 0 0 0 0 100%
watcher/common/loader/default.py (no function) 15 0 0 0 0 100%
watcher/common/loader/loadable.py Loadable.__init__ 2 0 0 0 0 100%
watcher/common/loader/loadable.py Loadable.get_config_opts 0 0 6 0 0 100%
watcher/common/loader/loadable.py LoadableSingleton.__init__ 2 0 0 0 0 100%
watcher/common/loader/loadable.py LoadableSingleton.get_config_opts 0 0 6 0 0 100%
watcher/common/loader/loadable.py (no function) 7 0 6 0 0 100%
watcher/common/metal_helper/__init__.py (no function) 0 0 0 0 0 100%
watcher/common/metal_helper/base.py BaseMetalNode.__init__ 1 0 0 0 0 100%
watcher/common/metal_helper/base.py BaseMetalNode.get_hypervisor_node 3 0 0 2 0 100%
watcher/common/metal_helper/base.py BaseMetalNode.get_hypervisor_hostname 1 0 0 0 0 100%
watcher/common/metal_helper/base.py BaseMetalNode.get_power_state 0 0 1 0 0 100%
watcher/common/metal_helper/base.py BaseMetalNode.get_id 0 0 2 0 0 100%
watcher/common/metal_helper/base.py BaseMetalNode.power_on 0 0 1 0 0 100%
watcher/common/metal_helper/base.py BaseMetalNode.power_off 0 0 1 0 0 100%
watcher/common/metal_helper/base.py BaseMetalNode.set_power_state 6 0 0 4 0 100%
watcher/common/metal_helper/base.py BaseMetalHelper.__init__ 1 0 0 0 0 100%
watcher/common/metal_helper/base.py BaseMetalHelper.nova_client 3 0 0 2 0 100%
watcher/common/metal_helper/base.py BaseMetalHelper.list_compute_nodes 0 0 1 0 0 100%
watcher/common/metal_helper/base.py BaseMetalHelper.get_node 0 0 1 0 0 100%
watcher/common/metal_helper/base.py (no function) 13 0 13 0 0 100%
watcher/common/metal_helper/constants.py (no function) 6 0 0 0 0 100%
watcher/common/metal_helper/factory.py get_helper 5 0 0 4 1 89%
watcher/common/metal_helper/factory.py (no function) 6 0 0 0 0 100%
watcher/common/metal_helper/ironic.py IronicNode.__init__ 3 0 0 0 0 100%
watcher/common/metal_helper/ironic.py IronicNode.get_power_state 1 0 0 0 0 100%
watcher/common/metal_helper/ironic.py IronicNode.get_id 1 0 0 0 0 100%
watcher/common/metal_helper/ironic.py IronicNode.power_on 1 0 0 0 0 100%
watcher/common/metal_helper/ironic.py IronicNode.power_off 1 0 0 0 0 100%
watcher/common/metal_helper/ironic.py IronicHelper._client 3 0 0 2 0 100%
watcher/common/metal_helper/ironic.py IronicHelper.list_compute_nodes 15 0 0 6 0 100%
watcher/common/metal_helper/ironic.py IronicHelper.get_node 6 0 0 2 0 100%
watcher/common/metal_helper/ironic.py (no function) 17 0 0 0 0 100%
watcher/common/metal_helper/maas.py MaasNode.__init__ 3 0 0 0 0 100%
watcher/common/metal_helper/maas.py MaasNode.get_power_state 3 2 0 0 0 33%
watcher/common/metal_helper/maas.py MaasNode.get_id 1 0 0 0 0 100%
watcher/common/metal_helper/maas.py MaasNode.power_on 2 0 0 0 0 100%
watcher/common/metal_helper/maas.py MaasNode.power_off 2 0 0 0 0 100%
watcher/common/metal_helper/maas.py MaasHelper.__init__ 3 1 0 2 1 60%
watcher/common/metal_helper/maas.py MaasHelper._client 3 0 0 2 0 100%
watcher/common/metal_helper/maas.py MaasHelper.list_compute_nodes 14 12 0 6 0 10%
watcher/common/metal_helper/maas.py MaasHelper._get_compute_node_by_hostname 4 0 0 4 1 88%
watcher/common/metal_helper/maas.py MaasHelper.get_node 3 2 0 0 0 33%
watcher/common/metal_helper/maas.py (no function) 26 2 0 0 0 92%
watcher/common/nova_helper.py NovaHelper.__init__ 5 0 0 0 0 100%
watcher/common/nova_helper.py NovaHelper.get_compute_node_list 3 0 0 0 0 100%
watcher/common/nova_helper.py NovaHelper.get_compute_node_by_name 1 0 0 0 0 100%
watcher/common/nova_helper.py NovaHelper.get_compute_node_by_hostname 9 0 0 4 0 100%
watcher/common/nova_helper.py NovaHelper.get_compute_node_by_uuid 1 0 0 0 0 100%
watcher/common/nova_helper.py NovaHelper.get_instance_list 4 0 0 2 0 100%
watcher/common/nova_helper.py NovaHelper.get_instance_by_uuid 1 1 0 0 0 0%
watcher/common/nova_helper.py NovaHelper.get_instance_by_name 1 1 0 0 0 0%
watcher/common/nova_helper.py NovaHelper.get_instances_by_node 1 1 0 0 0 0%
watcher/common/nova_helper.py NovaHelper.get_flavor_list 1 1 0 0 0 0%
watcher/common/nova_helper.py NovaHelper.get_service 1 1 0 0 0 0%
watcher/common/nova_helper.py NovaHelper.get_aggregate_list 1 1 0 0 0 0%
watcher/common/nova_helper.py NovaHelper.get_aggregate_detail 1 1 0 0 0 0%
watcher/common/nova_helper.py NovaHelper.get_availability_zone_list 1 1 0 0 0 0%
watcher/common/nova_helper.py NovaHelper.get_service_list 1 1 0 0 0 0%
watcher/common/nova_helper.py NovaHelper.find_instance 1 0 0 0 0 100%
watcher/common/nova_helper.py NovaHelper.confirm_resize 10 0 0 4 0 100%
watcher/common/nova_helper.py NovaHelper.wait_for_volume_status 8 0 0 4 0 100%
watcher/common/nova_helper.py NovaHelper.watcher_non_live_migrate_instance 22 6 0 8 3 70%
watcher/common/nova_helper.py NovaHelper.resize_instance 29 8 0 8 2 73%
watcher/common/nova_helper.py NovaHelper.live_migrate_instance 33 0 0 14 0 100%
watcher/common/nova_helper.py NovaHelper.abort_live_migrate 22 3 0 10 1 88%
watcher/common/nova_helper.py NovaHelper.enable_service_nova_compute 5 1 0 2 1 71%
watcher/common/nova_helper.py NovaHelper.disable_service_nova_compute 5 1 0 2 1 71%
watcher/common/nova_helper.py NovaHelper.create_image_from_instance 27 5 0 12 4 77%
watcher/common/nova_helper.py NovaHelper.delete_instance 8 0 0 2 0 100%
watcher/common/nova_helper.py NovaHelper.stop_instance 13 0 0 6 0 100%
watcher/common/nova_helper.py NovaHelper.wait_for_instance_state 7 1 0 4 1 82%
watcher/common/nova_helper.py NovaHelper.wait_for_instance_status 9 0 0 4 0 100%
watcher/common/nova_helper.py NovaHelper.create_instance 40 0 0 14 3 94%
watcher/common/nova_helper.py NovaHelper.get_security_group_id_from_name 3 0 0 0 0 100%
watcher/common/nova_helper.py NovaHelper.get_network_id_from_name 3 0 0 0 0 100%
watcher/common/nova_helper.py NovaHelper.get_hostname 1 1 0 0 0 0%
watcher/common/nova_helper.py NovaHelper.get_running_migration 1 0 0 0 0 100%
watcher/common/nova_helper.py NovaHelper.swap_volume 15 0 0 4 0 100%
watcher/common/nova_helper.py NovaHelper._check_nova_api_version 7 0 0 0 0 100%
watcher/common/nova_helper.py (no function) 47 0 0 0 0 100%
watcher/common/paths.py basedir_rel 1 1 0 0 0 0%
watcher/common/paths.py bindir_rel 1 1 0 0 0 0%
watcher/common/paths.py state_path_rel 1 1 0 0 0 0%
watcher/common/paths.py (no function) 6 6 0 0 0 0%
watcher/common/placement_helper.py PlacementHelper.__init__ 2 0 0 0 0 100%
watcher/common/placement_helper.py PlacementHelper.get 1 0 0 0 0 100%
watcher/common/placement_helper.py PlacementHelper.get_error_msg 5 1 0 2 1 71%
watcher/common/placement_helper.py PlacementHelper.get_resource_providers 13 1 0 6 1 89%
watcher/common/placement_helper.py PlacementHelper.get_inventories 8 0 0 2 0 100%
watcher/common/placement_helper.py PlacementHelper.get_provider_traits 7 0 0 2 0 100%
watcher/common/placement_helper.py PlacementHelper.get_allocations_for_consumer 8 0 0 2 0 100%
watcher/common/placement_helper.py PlacementHelper.get_usages_for_resource_provider 8 0 0 2 0 100%
watcher/common/placement_helper.py PlacementHelper.get_candidate_providers 8 0 0 2 0 100%
watcher/common/placement_helper.py (no function) 17 0 0 0 0 100%
watcher/common/policies/__init__.py list_rules 1 0 0 0 0 100%
watcher/common/policies/__init__.py (no function) 12 0 0 0 0 100%
watcher/common/policies/action.py list_rules 1 0 0 0 0 100%
watcher/common/policies/action.py (no function) 5 0 0 0 0 100%
watcher/common/policies/action_plan.py list_rules 1 0 0 0 0 100%
watcher/common/policies/action_plan.py (no function) 5 0 0 0 0 100%
watcher/common/policies/audit.py list_rules 1 0 0 0 0 100%
watcher/common/policies/audit.py (no function) 5 0 0 0 0 100%
watcher/common/policies/audit_template.py list_rules 1 0 0 0 0 100%
watcher/common/policies/audit_template.py (no function) 5 0 0 0 0 100%
watcher/common/policies/base.py list_rules 1 0 0 0 0 100%
watcher/common/policies/base.py (no function) 6 0 0 0 0 100%
watcher/common/policies/data_model.py list_rules 1 0 0 0 0 100%
watcher/common/policies/data_model.py (no function) 5 0 0 0 0 100%
watcher/common/policies/goal.py list_rules 1 0 0 0 0 100%
watcher/common/policies/goal.py (no function) 5 0 0 0 0 100%
watcher/common/policies/scoring_engine.py list_rules 1 0 0 0 0 100%
watcher/common/policies/scoring_engine.py (no function) 5 0 0 0 0 100%
watcher/common/policies/service.py list_rules 1 0 0 0 0 100%
watcher/common/policies/service.py (no function) 5 0 0 0 0 100%
watcher/common/policies/strategy.py list_rules 1 0 0 0 0 100%
watcher/common/policies/strategy.py (no function) 5 0 0 0 0 100%
watcher/common/policy.py init 4 0 0 2 0 100%
watcher/common/policy.py enforce 7 0 0 4 1 91%
watcher/common/policy.py get_enforcer 11 11 0 4 0 0%
watcher/common/policy.py (no function) 10 0 0 0 0 100%
watcher/common/rpc.py init 7 1 0 2 1 78%
watcher/common/rpc.py initialized 1 1 0 0 0 0%
watcher/common/rpc.py cleanup 5 5 0 2 0 0%
watcher/common/rpc.py set_defaults 1 0 0 0 0 100%
watcher/common/rpc.py add_extra_exmods 1 1 0 0 0 0%
watcher/common/rpc.py clear_extra_exmods 1 1 0 0 0 0%
watcher/common/rpc.py get_allowed_exmods 1 0 0 0 0 100%
watcher/common/rpc.py RequestContextSerializer.__init__ 1 0 0 0 0 100%
watcher/common/rpc.py RequestContextSerializer.serialize_entity 3 1 0 2 1 60%
watcher/common/rpc.py RequestContextSerializer.deserialize_entity 3 1 0 2 1 60%
watcher/common/rpc.py RequestContextSerializer.serialize_context 1 0 0 0 0 100%
watcher/common/rpc.py RequestContextSerializer.deserialize_context 1 0 0 0 0 100%
watcher/common/rpc.py get_client 3 0 0 0 0 100%
watcher/common/rpc.py get_server 4 0 0 0 0 100%
watcher/common/rpc.py get_notification_listener 3 0 0 0 0 100%
watcher/common/rpc.py get_notifier 2 0 0 0 0 100%
watcher/common/rpc.py (no function) 32 0 0 0 0 100%
watcher/common/scheduling.py GreenThreadPoolExecutor.__init__ 2 0 0 0 0 100%
watcher/common/scheduling.py BackgroundSchedulerService.__init__ 6 1 0 4 2 70%
watcher/common/scheduling.py BackgroundSchedulerService._main_loop 3 0 0 2 1 80%
watcher/common/scheduling.py BackgroundSchedulerService.start 1 0 0 0 0 100%
watcher/common/scheduling.py BackgroundSchedulerService.stop 1 0 0 0 0 100%
watcher/common/scheduling.py BackgroundSchedulerService.wait 0 0 0 0 0 100%
watcher/common/scheduling.py BackgroundSchedulerService.reset 0 0 0 0 0 100%
watcher/common/scheduling.py (no function) 18 0 0 0 0 100%
watcher/common/service.py WSGIService.__init__ 4 0 0 0 0 100%
watcher/common/service.py WSGIService.start 1 1 0 0 0 0%
watcher/common/service.py WSGIService.stop 1 1 0 0 0 0%
watcher/common/service.py WSGIService.wait 1 1 0 0 0 0%
watcher/common/service.py WSGIService.reset 1 1 0 0 0 0%
watcher/common/service.py ServiceHeartbeat.__init__ 5 0 0 0 0 100%
watcher/common/service.py ServiceHeartbeat.send_beat 10 0 0 2 0 100%
watcher/common/service.py ServiceHeartbeat.add_heartbeat_job 1 0 0 0 0 100%
watcher/common/service.py ServiceHeartbeat.get_service_name 1 0 0 0 0 100%
watcher/common/service.py ServiceHeartbeat.start 2 0 0 0 0 100%
watcher/common/service.py ServiceHeartbeat.stop 1 0 0 0 0 100%
watcher/common/service.py ServiceHeartbeat.wait 0 0 0 0 0 100%
watcher/common/service.py ServiceHeartbeat.reset 0 0 0 0 0 100%
watcher/common/service.py Service.__init__ 19 0 0 6 0 100%
watcher/common/service.py Service.conductor_client 4 0 0 2 0 100%
watcher/common/service.py Service.conductor_client 1 1 0 0 0 0%
watcher/common/service.py Service.build_topic_handler 2 0 0 0 0 100%
watcher/common/service.py Service.build_notification_handler 9 0 0 4 0 100%
watcher/common/service.py Service.start 7 1 0 6 3 69%
watcher/common/service.py Service.stop 7 1 0 6 3 69%
watcher/common/service.py Service.reset 0 0 0 0 0 100%
watcher/common/service.py Service.wait 0 0 0 0 0 100%
watcher/common/service.py Service.check_api_version 2 0 0 0 0 100%
watcher/common/service.py launch 1 0 0 0 0 100%
watcher/common/service.py prepare_service 9 0 0 0 0 100%
watcher/common/service.py (no function) 62 0 0 0 0 100%
watcher/common/service_manager.py ServiceManager.service_name 0 0 1 0 0 100%
watcher/common/service_manager.py ServiceManager.api_version 0 0 1 0 0 100%
watcher/common/service_manager.py ServiceManager.publisher_id 0 0 1 0 0 100%
watcher/common/service_manager.py ServiceManager.conductor_topic 0 0 1 0 0 100%
watcher/common/service_manager.py ServiceManager.notification_topics 0 0 1 0 0 100%
watcher/common/service_manager.py ServiceManager.conductor_endpoints 0 0 1 0 0 100%
watcher/common/service_manager.py ServiceManager.notification_endpoints 0 0 1 0 0 100%
watcher/common/service_manager.py (no function) 2 0 21 0 0 100%
watcher/common/utils.py Struct.__getattr__ 4 2 0 0 0 50%
watcher/common/utils.py Struct.__setattr__ 4 2 0 0 0 50%
watcher/common/utils.py is_cron_like 5 0 0 0 0 100%
watcher/common/utils.py safe_rstrip 4 4 0 2 0 0%
watcher/common/utils.py is_hostname_safe 2 0 0 0 0 100%
watcher/common/utils.py get_cls_import_path 4 1 0 2 1 67%
watcher/common/utils.py extend_with_default 3 0 0 0 0 100%
watcher/common/utils.py extend_with_default.set_defaults 5 1 0 6 1 82%
watcher/common/utils.py extend_with_strict_schema 3 0 0 0 0 100%
watcher/common/utils.py extend_with_strict_schema.strict_schema 7 2 0 8 2 73%
watcher/common/utils.py random_string 1 0 0 0 0 100%
watcher/common/utils.py async_compat_call 5 0 0 0 0 100%
watcher/common/utils.py async_compat_call.async_wrapper 4 4 0 2 0 0%
watcher/common/utils.py async_compat_call.tpool_wrapper 5 5 0 0 0 0%
watcher/common/utils.py (no function) 33 23 0 0 0 30%
watcher/conf/__init__.py (no function) 50 0 0 0 0 100%
watcher/conf/api.py register_opts 3 0 0 0 0 100%
watcher/conf/api.py list_opts 1 0 0 0 0 100%
watcher/conf/api.py (no function) 6 0 0 0 0 100%
watcher/conf/applier.py register_opts 3 0 0 0 0 100%
watcher/conf/applier.py list_opts 1 0 0 0 0 100%
watcher/conf/applier.py (no function) 6 0 0 0 0 100%
watcher/conf/cinder_client.py register_opts 2 0 0 0 0 100%
watcher/conf/cinder_client.py list_opts 1 0 0 0 0 100%
watcher/conf/cinder_client.py (no function) 5 0 0 0 0 100%
watcher/conf/clients_auth.py register_opts 2 0 0 0 0 100%
watcher/conf/clients_auth.py list_opts 1 0 0 0 0 100%
watcher/conf/clients_auth.py (no function) 4 0 0 0 0 100%
watcher/conf/collector.py register_opts 2 0 0 0 0 100%
watcher/conf/collector.py list_opts 1 0 0 0 0 100%
watcher/conf/collector.py (no function) 5 0 0 0 0 100%
watcher/conf/datasources.py register_opts 2 0 0 0 0 100%
watcher/conf/datasources.py list_opts 1 0 0 0 0 100%
watcher/conf/datasources.py (no function) 7 0 0 0 0 100%
watcher/conf/db.py register_opts 3 0 0 0 0 100%
watcher/conf/db.py list_opts 1 0 0 0 0 100%
watcher/conf/db.py (no function) 8 0 0 0 0 100%
watcher/conf/decision_engine.py register_opts 2 0 0 0 0 100%
watcher/conf/decision_engine.py list_opts 1 0 0 0 0 100%
watcher/conf/decision_engine.py (no function) 5 0 0 0 0 100%
watcher/conf/exception.py register_opts 1 0 0 0 0 100%
watcher/conf/exception.py list_opts 1 0 0 0 0 100%
watcher/conf/exception.py (no function) 4 0 0 0 0 100%
watcher/conf/glance_client.py register_opts 2 0 0 0 0 100%
watcher/conf/glance_client.py list_opts 1 0 0 0 0 100%
watcher/conf/glance_client.py (no function) 5 0 0 0 0 100%
watcher/conf/gnocchi_client.py register_opts 2 0 0 0 0 100%
watcher/conf/gnocchi_client.py list_opts 1 0 0 0 0 100%
watcher/conf/gnocchi_client.py (no function) 5 0 0 0 0 100%
watcher/conf/grafana_client.py register_opts 2 0 0 0 0 100%
watcher/conf/grafana_client.py list_opts 1 0 0 0 0 100%
watcher/conf/grafana_client.py (no function) 5 0 0 0 0 100%
watcher/conf/grafana_translators.py register_opts 2 0 0 0 0 100%
watcher/conf/grafana_translators.py list_opts 1 0 0 0 0 100%
watcher/conf/grafana_translators.py (no function) 5 0 0 0 0 100%
watcher/conf/ironic_client.py register_opts 2 0 0 0 0 100%
watcher/conf/ironic_client.py list_opts 1 0 0 0 0 100%
watcher/conf/ironic_client.py (no function) 5 0 0 0 0 100%
watcher/conf/keystone_client.py register_opts 2 0 0 0 0 100%
watcher/conf/keystone_client.py list_opts 1 0 0 0 0 100%
watcher/conf/keystone_client.py (no function) 5 0 0 0 0 100%
watcher/conf/maas_client.py register_opts 2 0 0 0 0 100%
watcher/conf/maas_client.py list_opts 1 0 0 0 0 100%
watcher/conf/maas_client.py (no function) 5 0 0 0 0 100%
watcher/conf/monasca_client.py register_opts 2 0 0 0 0 100%
watcher/conf/monasca_client.py list_opts 1 0 0 0 0 100%
watcher/conf/monasca_client.py (no function) 5 0 0 0 0 100%
watcher/conf/neutron_client.py register_opts 2 0 0 0 0 100%
watcher/conf/neutron_client.py list_opts 1 0 0 0 0 100%
watcher/conf/neutron_client.py (no function) 5 0 0 0 0 100%
watcher/conf/nova_client.py register_opts 2 0 0 0 0 100%
watcher/conf/nova_client.py list_opts 1 0 0 0 0 100%
watcher/conf/nova_client.py (no function) 6 0 0 0 0 100%
watcher/conf/opts.py list_opts 6 0 0 2 0 100%
watcher/conf/opts.py _list_module_names 7 0 0 4 0 100%
watcher/conf/opts.py _import_modules 8 2 0 4 1 75%
watcher/conf/opts.py (no function) 7 0 0 0 0 100%
watcher/conf/paths.py basedir_def 1 1 0 0 0 0%
watcher/conf/paths.py bindir_def 1 1 0 0 0 0%
watcher/conf/paths.py state_path_def 1 0 0 0 0 100%
watcher/conf/paths.py register_opts 1 0 0 0 0 100%
watcher/conf/paths.py list_opts 1 0 0 0 0 100%
watcher/conf/paths.py (no function) 8 0 0 0 0 100%
watcher/conf/placement_client.py register_opts 2 0 0 0 0 100%
watcher/conf/placement_client.py list_opts 1 0 0 0 0 100%
watcher/conf/placement_client.py (no function) 5 0 0 0 0 100%
watcher/conf/planner.py register_opts 2 0 0 0 0 100%
watcher/conf/planner.py list_opts 1 0 0 0 0 100%
watcher/conf/planner.py (no function) 6 0 0 0 0 100%
watcher/conf/plugins.py list_opts 9 0 0 6 0 100%
watcher/conf/plugins.py _show_plugins_ascii_table 5 5 0 2 0 0%
watcher/conf/plugins.py show_plugins 6 0 0 2 0 100%
watcher/conf/plugins.py (no function) 8 0 0 0 0 100%
watcher/conf/prometheus_client.py register_opts 2 0 0 0 0 100%
watcher/conf/prometheus_client.py list_opts 1 0 0 0 0 100%
watcher/conf/prometheus_client.py (no function) 5 0 0 0 0 100%
watcher/conf/service.py register_opts 1 0 0 0 0 100%
watcher/conf/service.py list_opts 1 0 0 0 0 100%
watcher/conf/service.py (no function) 6 0 0 0 0 100%
watcher/db/__init__.py (no function) 0 0 0 0 0 100%
watcher/db/api.py get_instance 1 0 0 0 0 100%
watcher/db/api.py BaseConnection.get_goal_list 0 0 16 0 0 100%
watcher/db/api.py BaseConnection.create_goal 0 0 15 0 0 100%
watcher/db/api.py BaseConnection.get_goal_by_id 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.get_goal_by_uuid 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.get_goal_by_name 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.destroy_goal 0 0 5 0 0 100%
watcher/db/api.py BaseConnection.update_goal 0 0 17 0 0 100%
watcher/db/api.py BaseConnection.soft_delete_goal 0 0 0 0 0 100%
watcher/db/api.py BaseConnection.get_strategy_list 0 0 17 0 0 100%
watcher/db/api.py BaseConnection.create_strategy 0 0 17 0 0 100%
watcher/db/api.py BaseConnection.get_strategy_by_id 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.get_strategy_by_uuid 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.get_strategy_by_name 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.destroy_strategy 0 0 5 0 0 100%
watcher/db/api.py BaseConnection.update_strategy 0 0 7 0 0 100%
watcher/db/api.py BaseConnection.soft_delete_strategy 0 0 0 0 0 100%
watcher/db/api.py BaseConnection.get_audit_template_list 0 0 16 0 0 100%
watcher/db/api.py BaseConnection.create_audit_template 0 0 16 0 0 100%
watcher/db/api.py BaseConnection.get_audit_template_by_id 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.get_audit_template_by_uuid 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.get_audit_template_by_name 0 0 0 0 0 100%
watcher/db/api.py BaseConnection.destroy_audit_template 0 0 5 0 0 100%
watcher/db/api.py BaseConnection.update_audit_template 0 0 7 0 0 100%
watcher/db/api.py BaseConnection.soft_delete_audit_template 0 0 5 0 0 100%
watcher/db/api.py BaseConnection.get_audit_list 0 0 16 0 0 100%
watcher/db/api.py BaseConnection.create_audit 0 0 15 0 0 100%
watcher/db/api.py BaseConnection.get_audit_by_id 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.get_audit_by_uuid 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.get_audit_by_name 0 0 0 0 0 100%
watcher/db/api.py BaseConnection.destroy_audit 0 0 5 0 0 100%
watcher/db/api.py BaseConnection.update_audit 0 0 7 0 0 100%
watcher/db/api.py BaseConnection.soft_delete_audit 0 0 0 0 0 100%
watcher/db/api.py BaseConnection.get_action_list 0 0 16 0 0 100%
watcher/db/api.py BaseConnection.create_action 0 0 17 0 0 100%
watcher/db/api.py BaseConnection.get_action_by_id 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.get_action_by_uuid 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.destroy_action 0 0 6 0 0 100%
watcher/db/api.py BaseConnection.update_action 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.soft_delete_action 0 0 0 0 0 100%
watcher/db/api.py BaseConnection.get_action_plan_list 0 0 16 0 0 100%
watcher/db/api.py BaseConnection.create_action_plan 0 0 7 0 0 100%
watcher/db/api.py BaseConnection.get_action_plan_by_id 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.get_action_plan_by_uuid 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.destroy_action_plan 0 0 6 0 0 100%
watcher/db/api.py BaseConnection.update_action_plan 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.soft_delete_action_plan 0 0 0 0 0 100%
watcher/db/api.py BaseConnection.get_efficacy_indicator_list 0 0 19 0 0 100%
watcher/db/api.py BaseConnection.create_efficacy_indicator 0 0 17 0 0 100%
watcher/db/api.py BaseConnection.get_efficacy_indicator_by_id 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.get_efficacy_indicator_by_uuid 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.get_efficacy_indicator_by_name 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.destroy_efficacy_indicator 0 0 5 0 0 100%
watcher/db/api.py BaseConnection.update_efficacy_indicator 0 0 7 0 0 100%
watcher/db/api.py BaseConnection.get_scoring_engine_list 0 0 18 0 0 100%
watcher/db/api.py BaseConnection.create_scoring_engine 0 0 7 0 0 100%
watcher/db/api.py BaseConnection.get_scoring_engine_by_id 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.get_scoring_engine_by_uuid 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.get_scoring_engine_by_name 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.destroy_scoring_engine 0 0 5 0 0 100%
watcher/db/api.py BaseConnection.update_scoring_engine 0 0 7 0 0 100%
watcher/db/api.py BaseConnection.get_service_list 0 0 17 0 0 100%
watcher/db/api.py BaseConnection.create_service 0 0 16 0 0 100%
watcher/db/api.py BaseConnection.get_service_by_id 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.get_service_by_name 0 0 8 0 0 100%
watcher/db/api.py BaseConnection.destroy_service 0 0 5 0 0 100%
watcher/db/api.py BaseConnection.update_service 0 0 7 0 0 100%
watcher/db/api.py BaseConnection.soft_delete_service 0 0 6 0 0 100%
watcher/db/api.py (no function) 14 0 143 0 0 100%
watcher/db/migration.py get_backend 4 4 0 2 0 0%
watcher/db/migration.py upgrade 1 1 0 0 0 0%
watcher/db/migration.py downgrade 1 1 0 0 0 0%
watcher/db/migration.py version 1 1 0 0 0 0%
watcher/db/migration.py stamp 1 1 0 0 0 0%
watcher/db/migration.py revision 1 1 0 0 0 0%
watcher/db/migration.py create_schema 1 1 0 0 0 0%
watcher/db/migration.py (no function) 10 0 0 0 0 100%
watcher/db/purge.py WatcherObjectsMap.__init__ 2 0 0 2 0 100%
watcher/db/purge.py WatcherObjectsMap.values 1 0 0 0 0 100%
watcher/db/purge.py WatcherObjectsMap.keys 1 0 0 0 0 100%
watcher/db/purge.py WatcherObjectsMap.__iter__ 1 0 0 0 0 100%
watcher/db/purge.py WatcherObjectsMap.__add__ 8 0 0 2 0 100%
watcher/db/purge.py WatcherObjectsMap.__str__ 6 0 0 2 0 100%
watcher/db/purge.py WatcherObjectsMap.__len__ 1 0 0 0 0 100%
watcher/db/purge.py WatcherObjectsMap.get_count_table 7 0 0 0 0 100%
watcher/db/purge.py PurgeCommand.__init__ 7 0 0 0 0 100%
watcher/db/purge.py PurgeCommand.get_expiry_date 5 0 0 2 0 100%
watcher/db/purge.py PurgeCommand.get_goal_uuid 14 14 0 6 0 0%
watcher/db/purge.py PurgeCommand._find_goals 1 0 0 0 0 100%
watcher/db/purge.py PurgeCommand._find_strategies 1 0 0 0 0 100%
watcher/db/purge.py PurgeCommand._find_audit_templates 1 0 0 0 0 100%
watcher/db/purge.py PurgeCommand._find_audits 1 0 0 0 0 100%
watcher/db/purge.py PurgeCommand._find_action_plans 1 0 0 0 0 100%
watcher/db/purge.py PurgeCommand._find_actions 1 0 0 0 0 100%
watcher/db/purge.py PurgeCommand._find_orphans 20 0 0 0 0 100%
watcher/db/purge.py PurgeCommand._find_soft_deleted_objects 16 0 0 4 0 100%
watcher/db/purge.py PurgeCommand._find_related_objects 33 0 0 8 0 100%
watcher/db/purge.py PurgeCommand.confirmation_prompt 3 0 0 0 0 100%
watcher/db/purge.py PurgeCommand.delete_up_to_max_prompt 5 0 0 0 0 100%
watcher/db/purge.py PurgeCommand._aggregate_objects 15 0 0 2 0 100%
watcher/db/purge.py PurgeCommand._get_objects_up_to_limit 8 0 0 4 1 92%
watcher/db/purge.py PurgeCommand.find_objects_to_delete 5 0 0 2 0 100%
watcher/db/purge.py PurgeCommand.do_delete 3 0 0 2 0 100%
watcher/db/purge.py PurgeCommand.execute 16 3 0 6 2 77%
watcher/db/purge.py purge 15 0 0 2 0 100%
watcher/db/purge.py (no function) 48 0 0 0 0 100%
watcher/db/sqlalchemy/__init__.py (no function) 0 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/env.py run_migrations_online 5 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/env.py (no function) 7 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/001_ocata.py upgrade 9 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/001_ocata.py downgrade 9 9 0 0 0 0%
watcher/db/sqlalchemy/alembic/versions/001_ocata.py (no function) 8 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/0f6042416884_add_apscheduler_jobs.py _table_exists 4 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/0f6042416884_add_apscheduler_jobs.py upgrade 3 1 0 2 1 60%
watcher/db/sqlalchemy/alembic/versions/0f6042416884_add_apscheduler_jobs.py downgrade 1 1 0 0 0 0%
watcher/db/sqlalchemy/alembic/versions/0f6042416884_add_apscheduler_jobs.py (no function) 9 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/15f7375ca737_change_efficiacy_indicator_decimals.py upgrade 1 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/15f7375ca737_change_efficiacy_indicator_decimals.py (no function) 5 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/3cfc94cecf4e_add_name_for_audit.py upgrade 1 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/3cfc94cecf4e_add_name_for_audit.py downgrade 1 1 0 0 0 0%
watcher/db/sqlalchemy/alembic/versions/3cfc94cecf4e_add_name_for_audit.py (no function) 6 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/4b16194c56bc_add_start_end_time.py upgrade 2 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/4b16194c56bc_add_start_end_time.py downgrade 2 2 0 0 0 0%
watcher/db/sqlalchemy/alembic/versions/4b16194c56bc_add_start_end_time.py (no function) 6 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/52804f2498c4_add_hostname.py upgrade 2 0 0 2 0 100%
watcher/db/sqlalchemy/alembic/versions/52804f2498c4_add_hostname.py downgrade 2 2 0 2 0 0%
watcher/db/sqlalchemy/alembic/versions/52804f2498c4_add_hostname.py (no function) 6 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/609bec748f2a_add_force_field.py upgrade 1 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/609bec748f2a_add_force_field.py downgrade 1 1 0 0 0 0%
watcher/db/sqlalchemy/alembic/versions/609bec748f2a_add_force_field.py (no function) 6 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/a86240e89a29_.py upgrade 8 2 0 2 1 70%
watcher/db/sqlalchemy/alembic/versions/a86240e89a29_.py downgrade 7 7 0 2 0 0%
watcher/db/sqlalchemy/alembic/versions/a86240e89a29_.py (no function) 7 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/d098df6021e2_cron_support_for_audit.py upgrade 2 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/d098df6021e2_cron_support_for_audit.py downgrade 2 2 0 0 0 0%
watcher/db/sqlalchemy/alembic/versions/d098df6021e2_cron_support_for_audit.py (no function) 6 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/d09a5945e4a0_add_action_description_table.py upgrade 1 0 0 0 0 100%
watcher/db/sqlalchemy/alembic/versions/d09a5945e4a0_add_action_description_table.py downgrade 1 1 0 0 0 0%
watcher/db/sqlalchemy/alembic/versions/d09a5945e4a0_add_action_description_table.py (no function) 7 0 0 0 0 100%
watcher/db/sqlalchemy/api.py get_backend 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py _session_for_read 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py _session_for_write 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py add_identity_filter 5 1 0 4 1 78%
watcher/db/sqlalchemy/api.py _paginate_query 5 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection.__init__ 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.__add_simple_filter 5 0 0 4 0 100%
watcher/db/sqlalchemy/api.py Connection.__add_join_filter 2 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.__decompose_filter 5 1 0 2 1 71%
watcher/db/sqlalchemy/api.py Connection._add_filters 17 0 0 8 0 100%
watcher/db/sqlalchemy/api.py Connection._get_relationships 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection._set_eager_options 5 0 0 4 1 89%
watcher/db/sqlalchemy/api.py Connection._create 7 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection._get 12 0 0 4 0 100%
watcher/db/sqlalchemy/api.py Connection._update 9 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection._soft_delete 9 2 0 0 0 78%
watcher/db/sqlalchemy/api.py Connection._destroy 8 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection._get_model_list 8 0 0 4 0 100%
watcher/db/sqlalchemy/api.py Connection._add_goals_filters 4 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection._add_strategies_filters 3 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection._add_audit_templates_filters 5 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection._add_audits_filters 5 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection._add_action_plans_filters 5 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection._add_actions_filters 10 0 0 4 0 100%
watcher/db/sqlalchemy/api.py Connection._add_efficacy_indicators_filters 5 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection._add_scoring_engine_filters 4 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection._add_action_descriptions_filters 4 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection._add_services_filters 4 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection.get_goal_list 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.create_goal 7 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection._get_goal 4 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_goal_by_id 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_goal_by_uuid 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_goal_by_name 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.destroy_goal 4 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.update_goal 6 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection.soft_delete_goal 4 2 0 0 0 50%
watcher/db/sqlalchemy/api.py Connection.get_strategy_list 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.create_strategy 7 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection._get_strategy 4 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_strategy_by_id 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_strategy_by_uuid 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_strategy_by_name 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.destroy_strategy 4 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.update_strategy 6 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection.soft_delete_strategy 4 2 0 0 0 50%
watcher/db/sqlalchemy/api.py Connection.get_audit_template_list 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.create_audit_template 12 2 0 4 0 88%
watcher/db/sqlalchemy/api.py Connection._get_audit_template 4 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_audit_template_by_id 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_audit_template_by_uuid 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_audit_template_by_name 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.destroy_audit_template 4 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.update_audit_template 6 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection.soft_delete_audit_template 4 2 0 0 0 50%
watcher/db/sqlalchemy/api.py Connection.get_audit_list 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.create_audit 16 2 0 8 0 92%
watcher/db/sqlalchemy/api.py Connection._get_audit 4 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_audit_by_id 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_audit_by_uuid 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_audit_by_name 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.destroy_audit 11 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection.destroy_audit.is_audit_referenced 3 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.update_audit 6 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection.soft_delete_audit 4 2 0 0 0 50%
watcher/db/sqlalchemy/api.py Connection.get_action_list 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.create_action 9 0 0 4 0 100%
watcher/db/sqlalchemy/api.py Connection._get_action 4 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_action_by_id 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_action_by_uuid 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.destroy_action 6 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection.update_action 3 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection._do_update_action 9 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.soft_delete_action 4 2 0 0 0 50%
watcher/db/sqlalchemy/api.py Connection.get_action_plan_list 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.create_action_plan 7 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection._get_action_plan 4 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_action_plan_by_id 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_action_plan_by_uuid 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.destroy_action_plan 11 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection.destroy_action_plan.is_action_plan_referenced 3 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.update_action_plan 3 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection._do_update_action_plan 9 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.soft_delete_action_plan 4 2 0 0 0 50%
watcher/db/sqlalchemy/api.py Connection.get_efficacy_indicator_list 7 0 0 4 0 100%
watcher/db/sqlalchemy/api.py Connection.create_efficacy_indicator 8 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection._get_efficacy_indicator 9 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection.get_efficacy_indicator_by_id 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_efficacy_indicator_by_uuid 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_efficacy_indicator_by_name 1 1 0 0 0 0%
watcher/db/sqlalchemy/api.py Connection.update_efficacy_indicator 6 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection.soft_delete_efficacy_indicator 4 2 0 0 0 50%
watcher/db/sqlalchemy/api.py Connection.destroy_efficacy_indicator 4 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_scoring_engine_list 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.create_scoring_engine 7 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection._get_scoring_engine 4 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_scoring_engine_by_id 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_scoring_engine_by_uuid 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_scoring_engine_by_name 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.destroy_scoring_engine 4 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.update_scoring_engine 6 0 0 2 0 100%
watcher/db/sqlalchemy/api.py Connection.soft_delete_scoring_engine 4 2 0 0 0 50%
watcher/db/sqlalchemy/api.py Connection.get_service_list 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.create_service 5 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection._get_service 4 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_service_by_id 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_service_by_name 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.destroy_service 4 4 0 0 0 0%
watcher/db/sqlalchemy/api.py Connection.update_service 4 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.soft_delete_service 4 2 0 0 0 50%
watcher/db/sqlalchemy/api.py Connection.get_action_description_list 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.create_action_description 5 2 0 0 0 60%
watcher/db/sqlalchemy/api.py Connection._get_action_description 4 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_action_description_by_id 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.get_action_description_by_type 1 0 0 0 0 100%
watcher/db/sqlalchemy/api.py Connection.destroy_action_description 4 4 0 0 0 0%
watcher/db/sqlalchemy/api.py Connection.update_action_description 4 2 0 0 0 50%
watcher/db/sqlalchemy/api.py Connection.soft_delete_action_description 4 2 0 0 0 50%
watcher/db/sqlalchemy/api.py (no function) 152 0 0 0 0 100%
watcher/db/sqlalchemy/job_store.py WatcherJobStore.__init__ 6 0 0 0 0 100%
watcher/db/sqlalchemy/job_store.py WatcherJobStore.start 1 0 0 0 0 100%
watcher/db/sqlalchemy/job_store.py WatcherJobStore.add_job 6 6 0 0 0 0%
watcher/db/sqlalchemy/job_store.py WatcherJobStore.get_all_jobs 3 3 0 0 0 0%
watcher/db/sqlalchemy/job_store.py WatcherJobStore.get_next_run_time 4 4 0 0 0 0%
watcher/db/sqlalchemy/job_store.py WatcherJobStore._get_jobs 15 15 0 4 0 0%
watcher/db/sqlalchemy/job_store.py (no function) 19 0 0 0 0 100%
watcher/db/sqlalchemy/migration.py _alembic_config 3 0 0 0 0 100%
watcher/db/sqlalchemy/migration.py version 5 0 0 2 0 100%
watcher/db/sqlalchemy/migration.py upgrade 3 3 0 0 0 0%
watcher/db/sqlalchemy/migration.py create_schema 6 1 0 4 3 60%
watcher/db/sqlalchemy/migration.py downgrade 3 3 0 0 0 0%
watcher/db/sqlalchemy/migration.py stamp 2 0 0 0 0 100%
watcher/db/sqlalchemy/migration.py revision 2 2 0 0 0 0%
watcher/db/sqlalchemy/migration.py (no function) 15 0 0 0 0 100%
watcher/db/sqlalchemy/models.py table_args 4 1 0 2 1 67%
watcher/db/sqlalchemy/models.py JsonEncodedType.process_bind_param 6 1 0 4 1 80%
watcher/db/sqlalchemy/models.py JsonEncodedType.process_result_value 3 0 0 2 0 100%
watcher/db/sqlalchemy/models.py WatcherBase.as_dict 4 0 0 2 0 100%
watcher/db/sqlalchemy/models.py (no function) 149 0 0 0 0 100%
watcher/decision_engine/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/audit/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/audit/base.py BaseAuditHandler.execute 0 0 1 0 0 100%
watcher/decision_engine/audit/base.py BaseAuditHandler.pre_execute 0 0 1 0 0 100%
watcher/decision_engine/audit/base.py BaseAuditHandler.do_execute 0 0 1 0 0 100%
watcher/decision_engine/audit/base.py BaseAuditHandler.post_execute 0 0 1 0 0 100%
watcher/decision_engine/audit/base.py AuditHandler.__init__ 4 0 0 0 0 100%
watcher/decision_engine/audit/base.py AuditHandler.get_planner 4 0 0 0 0 100%
watcher/decision_engine/audit/base.py AuditHandler.strategy_context 1 0 0 0 0 100%
watcher/decision_engine/audit/base.py AuditHandler.do_execute 2 0 0 0 0 100%
watcher/decision_engine/audit/base.py AuditHandler.do_schedule 9 0 0 0 0 100%
watcher/decision_engine/audit/base.py AuditHandler.update_audit_state 4 0 0 2 1 83%
watcher/decision_engine/audit/base.py AuditHandler.check_ongoing_action_plans 4 0 0 2 0 100%
watcher/decision_engine/audit/base.py AuditHandler.pre_execute 5 0 0 2 0 100%
watcher/decision_engine/audit/base.py AuditHandler.post_execute 3 0 0 2 0 100%
watcher/decision_engine/audit/base.py AuditHandler.execute 11 1 0 2 1 85%
watcher/decision_engine/audit/base.py (no function) 30 0 8 0 0 100%
watcher/decision_engine/audit/continuous.py ContinuousAuditHandler.__init__ 4 0 0 0 0 100%
watcher/decision_engine/audit/continuous.py ContinuousAuditHandler.scheduler 3 0 0 2 0 100%
watcher/decision_engine/audit/continuous.py ContinuousAuditHandler.period_scheduler 3 3 0 2 0 0%
watcher/decision_engine/audit/continuous.py ContinuousAuditHandler._is_audit_inactive 7 0 0 4 0 100%
watcher/decision_engine/audit/continuous.py ContinuousAuditHandler.do_execute 8 2 0 4 2 67%
watcher/decision_engine/audit/continuous.py ContinuousAuditHandler._next_cron_time 2 0 0 2 1 75%
watcher/decision_engine/audit/continuous.py ContinuousAuditHandler.execute_audit 10 3 0 4 1 71%
watcher/decision_engine/audit/continuous.py ContinuousAuditHandler._add_job 3 0 0 0 0 100%
watcher/decision_engine/audit/continuous.py ContinuousAuditHandler.check_audit_expired 9 0 0 6 1 93%
watcher/decision_engine/audit/continuous.py ContinuousAuditHandler.launch_audits_periodically 40 7 0 24 6 80%
watcher/decision_engine/audit/continuous.py ContinuousAuditHandler.start 3 3 0 0 0 0%
watcher/decision_engine/audit/continuous.py (no function) 29 0 0 0 0 100%
watcher/decision_engine/audit/event.py EventAuditHandler.post_execute 2 2 0 0 0 0%
watcher/decision_engine/audit/event.py (no function) 4 0 0 0 0 100%
watcher/decision_engine/audit/oneshot.py OneShotAuditHandler.post_execute 2 0 0 0 0 100%
watcher/decision_engine/audit/oneshot.py (no function) 4 0 0 0 0 100%
watcher/decision_engine/datasources/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase._get_meter 4 0 0 2 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase.query_retry 14 2 0 2 0 88%
watcher/decision_engine/datasources/base.py DataSourceBase.query_retry_reset 0 0 2 0 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase.list_metrics 0 0 5 0 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase.check_availability 0 0 5 0 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase.statistic_aggregation 0 0 18 0 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase.statistic_series 0 0 19 0 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase.get_host_cpu_usage 0 0 6 0 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase.get_host_ram_usage 0 0 5 0 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase.get_host_outlet_temp 0 0 5 0 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase.get_host_inlet_temp 0 0 5 0 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase.get_host_airflow 0 0 5 0 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase.get_host_power 0 0 5 0 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase.get_instance_cpu_usage 0 0 6 0 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase.get_instance_ram_usage 0 0 5 0 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase.get_instance_ram_allocated 0 0 5 0 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase.get_instance_l3_cache_usage 0 0 5 0 0 100%
watcher/decision_engine/datasources/base.py DataSourceBase.get_instance_root_disk_size 0 0 5 0 0 100%
watcher/decision_engine/datasources/base.py (no function) 18 0 47 0 0 100%
watcher/decision_engine/datasources/gnocchi.py GnocchiHelper.__init__ 2 0 0 0 0 100%
watcher/decision_engine/datasources/gnocchi.py GnocchiHelper.check_availability 4 1 0 2 1 67%
watcher/decision_engine/datasources/gnocchi.py GnocchiHelper.list_metrics 4 0 0 2 0 100%
watcher/decision_engine/datasources/gnocchi.py GnocchiHelper.statistic_aggregation 39 15 0 20 9 56%
watcher/decision_engine/datasources/gnocchi.py GnocchiHelper.statistic_series 19 8 0 8 3 52%
watcher/decision_engine/datasources/gnocchi.py GnocchiHelper.get_host_cpu_usage 1 0 0 0 0 100%
watcher/decision_engine/datasources/gnocchi.py GnocchiHelper.get_host_ram_usage 1 0 0 0 0 100%
watcher/decision_engine/datasources/gnocchi.py GnocchiHelper.get_host_outlet_temp 1 0 0 0 0 100%
watcher/decision_engine/datasources/gnocchi.py GnocchiHelper.get_host_inlet_temp 1 0 0 0 0 100%
watcher/decision_engine/datasources/gnocchi.py GnocchiHelper.get_host_airflow 1 0 0 0 0 100%
watcher/decision_engine/datasources/gnocchi.py GnocchiHelper.get_host_power 1 0 0 0 0 100%
watcher/decision_engine/datasources/gnocchi.py GnocchiHelper.get_instance_cpu_usage 1 0 0 0 0 100%
watcher/decision_engine/datasources/gnocchi.py GnocchiHelper.get_instance_ram_usage 1 0 0 0 0 100%
watcher/decision_engine/datasources/gnocchi.py GnocchiHelper.get_instance_ram_allocated 1 0 0 0 0 100%
watcher/decision_engine/datasources/gnocchi.py GnocchiHelper.get_instance_l3_cache_usage 1 1 0 0 0 0%
watcher/decision_engine/datasources/gnocchi.py GnocchiHelper.get_instance_root_disk_size 1 0 0 0 0 100%
watcher/decision_engine/datasources/gnocchi.py (no function) 28 0 0 0 0 100%
watcher/decision_engine/datasources/grafana.py GrafanaHelper.__init__ 6 0 0 0 0 100%
watcher/decision_engine/datasources/grafana.py GrafanaHelper._setup 18 3 0 8 2 81%
watcher/decision_engine/datasources/grafana.py GrafanaHelper._build_metric_map 10 0 0 4 1 93%
watcher/decision_engine/datasources/grafana.py GrafanaHelper._build_translator_schema 1 0 0 0 0 100%
watcher/decision_engine/datasources/grafana.py GrafanaHelper._get_translator 3 1 0 2 1 60%
watcher/decision_engine/datasources/grafana.py GrafanaHelper._request 10 4 0 8 4 56%
watcher/decision_engine/datasources/grafana.py GrafanaHelper.statistic_aggregation 21 0 0 2 0 100%
watcher/decision_engine/datasources/grafana.py GrafanaHelper.statistic_series 0 0 1 0 0 100%
watcher/decision_engine/datasources/grafana.py GrafanaHelper.get_host_cpu_usage 1 0 0 0 0 100%
watcher/decision_engine/datasources/grafana.py GrafanaHelper.get_host_ram_usage 1 0 0 0 0 100%
watcher/decision_engine/datasources/grafana.py GrafanaHelper.get_host_outlet_temp 1 0 0 0 0 100%
watcher/decision_engine/datasources/grafana.py GrafanaHelper.get_host_inlet_temp 1 0 0 0 0 100%
watcher/decision_engine/datasources/grafana.py GrafanaHelper.get_host_airflow 1 0 0 0 0 100%
watcher/decision_engine/datasources/grafana.py GrafanaHelper.get_host_power 1 0 0 0 0 100%
watcher/decision_engine/datasources/grafana.py GrafanaHelper.get_instance_cpu_usage 1 0 0 0 0 100%
watcher/decision_engine/datasources/grafana.py GrafanaHelper.get_instance_ram_usage 1 0 0 0 0 100%
watcher/decision_engine/datasources/grafana.py GrafanaHelper.get_instance_ram_allocated 1 0 0 0 0 100%
watcher/decision_engine/datasources/grafana.py GrafanaHelper.get_instance_l3_cache_usage 1 0 0 0 0 100%
watcher/decision_engine/datasources/grafana.py GrafanaHelper.get_instance_root_disk_size 1 0 0 0 0 100%
watcher/decision_engine/datasources/grafana.py (no function) 37 0 0 0 0 100%
watcher/decision_engine/datasources/grafana_translator/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/datasources/grafana_translator/base.py BaseGrafanaTranslator.__init__ 2 0 0 0 0 100%
watcher/decision_engine/datasources/grafana_translator/base.py BaseGrafanaTranslator._validate_data 10 2 0 8 2 78%
watcher/decision_engine/datasources/grafana_translator/base.py BaseGrafanaTranslator._extract_attribute 4 2 0 0 0 50%
watcher/decision_engine/datasources/grafana_translator/base.py BaseGrafanaTranslator._query_format 1 0 0 0 0 100%
watcher/decision_engine/datasources/grafana_translator/base.py BaseGrafanaTranslator.build_params 0 0 2 0 0 100%
watcher/decision_engine/datasources/grafana_translator/base.py BaseGrafanaTranslator.extract_result 0 0 2 0 0 100%
watcher/decision_engine/datasources/grafana_translator/base.py (no function) 16 0 4 0 0 100%
watcher/decision_engine/datasources/grafana_translator/influxdb.py InfluxDBGrafanaTranslator.__init__ 1 0 0 0 0 100%
watcher/decision_engine/datasources/grafana_translator/influxdb.py InfluxDBGrafanaTranslator.build_params 17 3 0 6 0 87%
watcher/decision_engine/datasources/grafana_translator/influxdb.py InfluxDBGrafanaTranslator.extract_result 8 0 0 0 0 100%
watcher/decision_engine/datasources/grafana_translator/influxdb.py (no function) 12 0 0 0 0 100%
watcher/decision_engine/datasources/manager.py DataSourceManager.__init__ 18 3 0 4 0 86%
watcher/decision_engine/datasources/manager.py DataSourceManager.monasca 3 0 0 2 0 100%
watcher/decision_engine/datasources/manager.py DataSourceManager.monasca 1 1 0 0 0 0%
watcher/decision_engine/datasources/manager.py DataSourceManager.gnocchi 3 0 0 2 0 100%
watcher/decision_engine/datasources/manager.py DataSourceManager.gnocchi 1 1 0 0 0 0%
watcher/decision_engine/datasources/manager.py DataSourceManager.grafana 3 0 0 2 0 100%
watcher/decision_engine/datasources/manager.py DataSourceManager.grafana 1 1 0 0 0 0%
watcher/decision_engine/datasources/manager.py DataSourceManager.prometheus 3 3 0 2 0 0%
watcher/decision_engine/datasources/manager.py DataSourceManager.prometheus 1 1 0 0 0 0%
watcher/decision_engine/datasources/manager.py DataSourceManager.get_backend 20 0 0 12 0 100%
watcher/decision_engine/datasources/manager.py DataSourceManager.load_metric_map 9 7 0 2 1 27%
watcher/decision_engine/datasources/manager.py (no function) 33 0 0 0 0 100%
watcher/decision_engine/datasources/monasca.py MonascaHelper.__init__ 2 0 0 0 0 100%
watcher/decision_engine/datasources/monasca.py MonascaHelper._format_time_params 7 7 0 4 0 0%
watcher/decision_engine/datasources/monasca.py MonascaHelper.query_retry_reset 3 2 0 2 1 40%
watcher/decision_engine/datasources/monasca.py MonascaHelper.check_availability 4 0 0 2 0 100%
watcher/decision_engine/datasources/monasca.py MonascaHelper.list_metrics 1 1 0 0 0 0%
watcher/decision_engine/datasources/monasca.py MonascaHelper.statistic_aggregation 15 0 0 4 1 95%
watcher/decision_engine/datasources/monasca.py MonascaHelper.statistic_series 10 0 0 2 0 100%
watcher/decision_engine/datasources/monasca.py MonascaHelper.get_host_cpu_usage 1 0 0 0 0 100%
watcher/decision_engine/datasources/monasca.py MonascaHelper.get_host_ram_usage 0 0 1 0 0 100%
watcher/decision_engine/datasources/monasca.py MonascaHelper.get_host_outlet_temp 0 0 1 0 0 100%
watcher/decision_engine/datasources/monasca.py MonascaHelper.get_host_inlet_temp 0 0 1 0 0 100%
watcher/decision_engine/datasources/monasca.py MonascaHelper.get_host_airflow 0 0 1 0 0 100%
watcher/decision_engine/datasources/monasca.py MonascaHelper.get_host_power 0 0 1 0 0 100%
watcher/decision_engine/datasources/monasca.py MonascaHelper.get_instance_cpu_usage 1 0 0 0 0 100%
watcher/decision_engine/datasources/monasca.py MonascaHelper.get_instance_ram_usage 0 0 1 0 0 100%
watcher/decision_engine/datasources/monasca.py MonascaHelper.get_instance_ram_allocated 0 0 1 0 0 100%
watcher/decision_engine/datasources/monasca.py MonascaHelper.get_instance_l3_cache_usage 0 0 1 0 0 100%
watcher/decision_engine/datasources/monasca.py MonascaHelper.get_instance_root_disk_size 0 0 1 0 0 100%
watcher/decision_engine/datasources/monasca.py (no function) 26 0 0 0 0 100%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper.__init__ 4 0 0 0 0 100%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper._setup_prometheus_client 21 4 0 10 2 74%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper._setup_prometheus_client._validate_host_port 12 1 0 6 1 89%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper._build_prometheus_fqdn_labels 9 0 0 6 0 100%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper._build_prometheus_host_instance_map 8 0 0 4 0 100%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper._resolve_prometheus_instance_label 10 0 0 4 0 100%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper._resolve_prometheus_instance_label._query_maps 3 0 0 2 0 100%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper._resolve_prometheus_aggregate 6 0 0 4 0 100%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper._build_prometheus_query 18 2 0 12 1 90%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper.check_availability 6 0 0 0 0 100%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper.list_metrics 6 0 0 0 0 100%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper.statistic_aggregation 20 4 0 10 2 80%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper.statistic_series 0 0 1 0 0 100%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper._invert_max_min_aggregate 5 0 0 4 0 100%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper.get_host_cpu_usage 3 0 0 0 0 100%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper.get_host_ram_usage 3 0 0 0 0 100%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper.get_instance_ram_usage 2 0 0 0 0 100%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper.get_instance_cpu_usage 2 0 0 0 0 100%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper.get_instance_ram_allocated 2 0 0 0 0 100%
watcher/decision_engine/datasources/prometheus.py PrometheusHelper.get_instance_root_disk_size 2 0 0 0 0 100%
watcher/decision_engine/datasources/prometheus.py (no function) 31 0 0 0 0 100%
watcher/decision_engine/gmr.py register_gmr_plugins 1 0 0 0 0 100%
watcher/decision_engine/gmr.py show_models 11 0 0 2 0 100%
watcher/decision_engine/gmr.py (no function) 5 0 0 0 0 100%
watcher/decision_engine/goal/__init__.py (no function) 10 0 0 0 0 100%
watcher/decision_engine/goal/base.py Goal.__init__ 4 0 0 0 0 100%
watcher/decision_engine/goal/base.py Goal.get_name 0 0 2 0 0 100%
watcher/decision_engine/goal/base.py Goal.get_display_name 0 0 2 0 0 100%
watcher/decision_engine/goal/base.py Goal.get_translatable_display_name 0 0 4 0 0 100%
watcher/decision_engine/goal/base.py Goal.get_config_opts 1 0 0 0 0 100%
watcher/decision_engine/goal/base.py Goal.get_efficacy_specification 0 0 2 0 0 100%
watcher/decision_engine/goal/base.py (no function) 6 0 11 0 0 100%
watcher/decision_engine/goal/efficacy/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/base.py EfficacySpecification.__init__ 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/base.py EfficacySpecification.indicators_specs 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/base.py EfficacySpecification.get_indicators_specifications 0 0 6 0 0 100%
watcher/decision_engine/goal/efficacy/base.py EfficacySpecification.get_global_efficacy_indicator 0 0 10 0 0 100%
watcher/decision_engine/goal/efficacy/base.py EfficacySpecification.schema 6 0 0 4 0 100%
watcher/decision_engine/goal/efficacy/base.py EfficacySpecification.validate_efficacy_indicators 3 0 0 2 0 100%
watcher/decision_engine/goal/efficacy/base.py EfficacySpecification.get_indicators_specs_dicts 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/base.py EfficacySpecification.serialize_indicators_specs 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/base.py (no function) 12 0 4 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py IndicatorSpecification.__init__ 4 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py IndicatorSpecification.schema 0 0 5 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py IndicatorSpecification.validate 11 11 0 0 0 0%
watcher/decision_engine/goal/efficacy/indicators.py IndicatorSpecification.to_dict 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py IndicatorSpecification.__str__ 1 1 0 0 0 0%
watcher/decision_engine/goal/efficacy/indicators.py ComputeNodesCount.__init__ 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py ComputeNodesCount.schema 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py ReleasedComputeNodesCount.__init__ 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py ReleasedComputeNodesCount.schema 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py InstancesCount.__init__ 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py InstancesCount.schema 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py InstanceMigrationsCount.__init__ 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py InstanceMigrationsCount.schema 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py LiveInstanceMigrateCount.__init__ 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py LiveInstanceMigrateCount.schema 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py PlannedLiveInstanceMigrateCount.__init__ 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py PlannedLiveInstanceMigrateCount.schema 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py ColdInstanceMigrateCount.__init__ 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py ColdInstanceMigrateCount.schema 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py PlannedColdInstanceMigrateCount.__init__ 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py PlannedColdInstanceMigrateCount.schema 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py VolumeMigrateCount.__init__ 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py VolumeMigrateCount.schema 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py PlannedVolumeMigrateCount.__init__ 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py PlannedVolumeMigrateCount.schema 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py VolumeUpdateCount.__init__ 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py VolumeUpdateCount.schema 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py PlannedVolumeUpdateCount.__init__ 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py PlannedVolumeUpdateCount.schema 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py StandardDeviationValue.__init__ 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py StandardDeviationValue.schema 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py OriginalStandardDeviationValue.__init__ 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py OriginalStandardDeviationValue.schema 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/indicators.py (no function) 71 0 3 0 0 100%
watcher/decision_engine/goal/efficacy/specs.py Unclassified.get_indicators_specifications 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/specs.py Unclassified.get_global_efficacy_indicator 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/specs.py ServerConsolidation.get_indicators_specifications 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/specs.py ServerConsolidation.get_global_efficacy_indicator 6 0 0 2 1 88%
watcher/decision_engine/goal/efficacy/specs.py WorkloadBalancing.get_indicators_specifications 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/specs.py WorkloadBalancing.get_global_efficacy_indicator 6 0 0 2 0 100%
watcher/decision_engine/goal/efficacy/specs.py HardwareMaintenance.get_indicators_specifications 1 0 0 0 0 100%
watcher/decision_engine/goal/efficacy/specs.py HardwareMaintenance.get_global_efficacy_indicator 17 0 0 8 0 100%
watcher/decision_engine/goal/efficacy/specs.py (no function) 16 0 0 0 0 100%
watcher/decision_engine/goal/goals.py Dummy.get_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py Dummy.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py Dummy.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/goal/goals.py Dummy.get_efficacy_specification 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py Unclassified.get_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py Unclassified.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py Unclassified.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/goal/goals.py Unclassified.get_efficacy_specification 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py ServerConsolidation.get_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py ServerConsolidation.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py ServerConsolidation.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/goal/goals.py ServerConsolidation.get_efficacy_specification 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py ThermalOptimization.get_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py ThermalOptimization.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py ThermalOptimization.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/goal/goals.py ThermalOptimization.get_efficacy_specification 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py WorkloadBalancing.get_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py WorkloadBalancing.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py WorkloadBalancing.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/goal/goals.py WorkloadBalancing.get_efficacy_specification 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py AirflowOptimization.get_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py AirflowOptimization.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py AirflowOptimization.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/goal/goals.py AirflowOptimization.get_efficacy_specification 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py NoisyNeighborOptimization.get_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py NoisyNeighborOptimization.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py NoisyNeighborOptimization.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/goal/goals.py NoisyNeighborOptimization.get_efficacy_specification 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py SavingEnergy.get_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py SavingEnergy.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py SavingEnergy.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/goal/goals.py SavingEnergy.get_efficacy_specification 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py HardwareMaintenance.get_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py HardwareMaintenance.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py HardwareMaintenance.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/goal/goals.py HardwareMaintenance.get_efficacy_specification 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py ClusterMaintaining.get_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py ClusterMaintaining.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py ClusterMaintaining.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/goal/goals.py ClusterMaintaining.get_efficacy_specification 1 0 0 0 0 100%
watcher/decision_engine/goal/goals.py (no function) 93 0 0 0 0 100%
watcher/decision_engine/loading/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/loading/default.py DefaultStrategyLoader.__init__ 1 0 0 0 0 100%
watcher/decision_engine/loading/default.py DefaultGoalLoader.__init__ 1 0 0 0 0 100%
watcher/decision_engine/loading/default.py DefaultPlannerLoader.__init__ 1 0 0 0 0 100%
watcher/decision_engine/loading/default.py ClusterDataModelCollectorLoader.__init__ 1 0 0 0 0 100%
watcher/decision_engine/loading/default.py DefaultScoringLoader.__init__ 1 0 0 0 0 100%
watcher/decision_engine/loading/default.py DefaultScoringContainerLoader.__init__ 1 0 0 0 0 100%
watcher/decision_engine/loading/default.py (no function) 13 0 0 0 0 100%
watcher/decision_engine/manager.py DecisionEngineManager.service_name 1 0 0 0 0 100%
watcher/decision_engine/manager.py DecisionEngineManager.api_version 1 0 0 0 0 100%
watcher/decision_engine/manager.py DecisionEngineManager.publisher_id 1 0 0 0 0 100%
watcher/decision_engine/manager.py DecisionEngineManager.conductor_topic 1 0 0 0 0 100%
watcher/decision_engine/manager.py DecisionEngineManager.notification_topics 1 0 0 0 0 100%
watcher/decision_engine/manager.py DecisionEngineManager.conductor_endpoints 1 0 0 0 0 100%
watcher/decision_engine/manager.py DecisionEngineManager.notification_endpoints 1 0 0 0 0 100%
watcher/decision_engine/manager.py DecisionEngineManager.collector_manager 1 0 0 0 0 100%
watcher/decision_engine/manager.py (no function) 24 0 0 0 0 100%
watcher/decision_engine/messaging/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/messaging/audit_endpoint.py AuditEndpoint.__init__ 5 0 0 0 0 100%
watcher/decision_engine/messaging/audit_endpoint.py AuditEndpoint.executor 1 0 0 0 0 100%
watcher/decision_engine/messaging/audit_endpoint.py AuditEndpoint.do_trigger_audit 5 1 0 4 2 67%
watcher/decision_engine/messaging/audit_endpoint.py AuditEndpoint.trigger_audit 3 0 0 0 0 100%
watcher/decision_engine/messaging/audit_endpoint.py (no function) 15 0 0 0 0 100%
watcher/decision_engine/messaging/data_model_endpoint.py DataModelEndpoint.__init__ 1 0 0 0 0 100%
watcher/decision_engine/messaging/data_model_endpoint.py DataModelEndpoint.get_audit_scope 11 1 0 4 1 87%
watcher/decision_engine/messaging/data_model_endpoint.py DataModelEndpoint.get_data_model_info 10 2 0 4 2 71%
watcher/decision_engine/messaging/data_model_endpoint.py (no function) 8 0 0 0 0 100%
watcher/decision_engine/model/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/model/base.py Model.to_string 0 0 1 0 0 100%
watcher/decision_engine/model/base.py Model.to_xml 0 0 1 0 0 100%
watcher/decision_engine/model/base.py (no function) 2 0 4 0 0 100%
watcher/decision_engine/model/collector/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/model/collector/base.py BaseClusterDataModelCollector.__init__ 6 0 0 0 0 100%
watcher/decision_engine/model/collector/base.py BaseClusterDataModelCollector.cluster_data_model 5 0 0 2 0 100%
watcher/decision_engine/model/collector/base.py BaseClusterDataModelCollector.cluster_data_model 3 0 0 0 0 100%
watcher/decision_engine/model/collector/base.py BaseClusterDataModelCollector.notification_endpoints 0 0 6 0 0 100%
watcher/decision_engine/model/collector/base.py BaseClusterDataModelCollector.set_cluster_data_model_as_stale 1 0 0 0 0 100%
watcher/decision_engine/model/collector/base.py BaseClusterDataModelCollector.get_audit_scope_handler 0 0 2 0 0 100%
watcher/decision_engine/model/collector/base.py BaseClusterDataModelCollector.execute 0 0 2 0 0 100%
watcher/decision_engine/model/collector/base.py BaseClusterDataModelCollector.get_config_opts 1 0 0 0 0 100%
watcher/decision_engine/model/collector/base.py BaseClusterDataModelCollector.get_latest_cluster_data_model 3 0 0 0 0 100%
watcher/decision_engine/model/collector/base.py BaseClusterDataModelCollector.synchronize 1 0 0 0 0 100%
watcher/decision_engine/model/collector/base.py BaseModelBuilder.call_retry 11 6 0 2 1 46%
watcher/decision_engine/model/collector/base.py BaseModelBuilder.call_retry_reset 0 0 6 0 0 100%
watcher/decision_engine/model/collector/base.py BaseModelBuilder.execute 0 0 6 0 0 100%
watcher/decision_engine/model/collector/base.py (no function) 25 0 11 0 0 100%
watcher/decision_engine/model/collector/cinder.py CinderClusterDataModelCollector.__init__ 1 0 0 0 0 100%
watcher/decision_engine/model/collector/cinder.py CinderClusterDataModelCollector.notification_endpoints 1 1 0 0 0 0%
watcher/decision_engine/model/collector/cinder.py CinderClusterDataModelCollector.get_audit_scope_handler 6 0 0 2 1 88%
watcher/decision_engine/model/collector/cinder.py CinderClusterDataModelCollector.execute 9 2 0 4 1 77%
watcher/decision_engine/model/collector/cinder.py CinderModelBuilder.__init__ 4 0 0 0 0 100%
watcher/decision_engine/model/collector/cinder.py CinderModelBuilder._add_physical_layer 11 2 0 4 0 87%
watcher/decision_engine/model/collector/cinder.py CinderModelBuilder.add_storage_node 2 0 0 0 0 100%
watcher/decision_engine/model/collector/cinder.py CinderModelBuilder.add_storage_pool 2 2 0 0 0 0%
watcher/decision_engine/model/collector/cinder.py CinderModelBuilder.build_storage_node 9 2 0 0 0 78%
watcher/decision_engine/model/collector/cinder.py CinderModelBuilder._build_storage_pool 11 1 0 2 0 92%
watcher/decision_engine/model/collector/cinder.py CinderModelBuilder._add_virtual_layer 1 0 0 0 0 100%
watcher/decision_engine/model/collector/cinder.py CinderModelBuilder._add_virtual_storage 12 3 0 4 1 75%
watcher/decision_engine/model/collector/cinder.py CinderModelBuilder._build_volume_node 3 0 0 0 0 100%
watcher/decision_engine/model/collector/cinder.py CinderModelBuilder.execute 3 0 0 0 0 100%
watcher/decision_engine/model/collector/cinder.py (no function) 27 0 0 0 0 100%
watcher/decision_engine/model/collector/ironic.py BaremetalClusterDataModelCollector.__init__ 1 0 0 0 0 100%
watcher/decision_engine/model/collector/ironic.py BaremetalClusterDataModelCollector.notification_endpoints 1 1 0 0 0 0%
watcher/decision_engine/model/collector/ironic.py BaremetalClusterDataModelCollector.get_audit_scope_handler 6 6 0 2 0 0%
watcher/decision_engine/model/collector/ironic.py BaremetalClusterDataModelCollector.execute 9 4 0 4 2 54%
watcher/decision_engine/model/collector/ironic.py BareMetalModelBuilder.__init__ 3 3 0 0 0 0%
watcher/decision_engine/model/collector/ironic.py BareMetalModelBuilder.add_ironic_node 2 2 0 0 0 0%
watcher/decision_engine/model/collector/ironic.py BareMetalModelBuilder.build_ironic_node 3 3 0 0 0 0%
watcher/decision_engine/model/collector/ironic.py BareMetalModelBuilder.execute 3 3 0 2 0 0%
watcher/decision_engine/model/collector/ironic.py (no function) 18 0 0 0 0 100%
watcher/decision_engine/model/collector/manager.py CollectorManager.__init__ 3 0 0 0 0 100%
watcher/decision_engine/model/collector/manager.py CollectorManager.get_collectors 8 0 0 4 1 92%
watcher/decision_engine/model/collector/manager.py CollectorManager.get_notification_endpoints 6 0 0 4 1 90%
watcher/decision_engine/model/collector/manager.py CollectorManager.get_cluster_model_collector 1 1 0 0 0 0%
watcher/decision_engine/model/collector/manager.py (no function) 8 0 0 0 0 100%
watcher/decision_engine/model/collector/nova.py NovaClusterDataModelCollector.__init__ 1 0 0 0 0 100%
watcher/decision_engine/model/collector/nova.py NovaClusterDataModelCollector.notification_endpoints 1 0 0 0 0 100%
watcher/decision_engine/model/collector/nova.py NovaClusterDataModelCollector.get_audit_scope_handler 6 0 0 2 1 88%
watcher/decision_engine/model/collector/nova.py NovaClusterDataModelCollector.execute 9 2 0 4 1 77%
watcher/decision_engine/model/collector/nova.py NovaModelBuilder.__init__ 8 0 0 0 0 100%
watcher/decision_engine/model/collector/nova.py NovaModelBuilder._collect_aggregates 9 0 0 6 0 100%
watcher/decision_engine/model/collector/nova.py NovaModelBuilder._collect_zones 10 1 0 8 1 89%
watcher/decision_engine/model/collector/nova.py NovaModelBuilder._compute_node_future 13 4 0 4 1 71%
watcher/decision_engine/model/collector/nova.py NovaModelBuilder._add_physical_layer 16 10 0 2 0 33%
watcher/decision_engine/model/collector/nova.py NovaModelBuilder.add_compute_node 3 0 0 0 0 100%
watcher/decision_engine/model/collector/nova.py NovaModelBuilder.build_compute_node 25 0 0 6 0 100%
watcher/decision_engine/model/collector/nova.py NovaModelBuilder.add_instance_node 14 2 0 6 1 85%
watcher/decision_engine/model/collector/nova.py NovaModelBuilder._build_instance_node 3 0 0 0 0 100%
watcher/decision_engine/model/collector/nova.py NovaModelBuilder._merge_compute_scope 16 1 0 10 1 92%
watcher/decision_engine/model/collector/nova.py NovaModelBuilder._check_model_scope 12 0 0 8 2 90%
watcher/decision_engine/model/collector/nova.py NovaModelBuilder.execute 5 0 0 2 1 86%
watcher/decision_engine/model/collector/nova.py (no function) 33 0 0 0 0 100%
watcher/decision_engine/model/element/__init__.py (no function) 13 0 0 0 0 100%
watcher/decision_engine/model/element/baremetal_resource.py (no function) 6 0 0 0 0 100%
watcher/decision_engine/model/element/base.py Element.__init__ 4 0 0 4 0 100%
watcher/decision_engine/model/element/base.py Element.accept 0 0 1 0 0 100%
watcher/decision_engine/model/element/base.py Element.as_xml_element 11 0 0 2 0 100%
watcher/decision_engine/model/element/base.py (no function) 12 0 2 0 0 100%
watcher/decision_engine/model/element/compute_resource.py (no function) 6 0 0 0 0 100%
watcher/decision_engine/model/element/instance.py Instance.accept 0 0 1 0 0 100%
watcher/decision_engine/model/element/instance.py (no function) 20 0 0 0 0 100%
watcher/decision_engine/model/element/node.py ComputeNode.accept 0 0 1 0 0 100%
watcher/decision_engine/model/element/node.py ComputeNode.memory_mb_capacity 1 0 0 0 0 100%
watcher/decision_engine/model/element/node.py ComputeNode.disk_gb_capacity 1 0 0 0 0 100%
watcher/decision_engine/model/element/node.py ComputeNode.vcpu_capacity 1 0 0 0 0 100%
watcher/decision_engine/model/element/node.py StorageNode.accept 0 0 1 0 0 100%
watcher/decision_engine/model/element/node.py Pool.accept 0 0 1 0 0 100%
watcher/decision_engine/model/element/node.py IronicNode.accept 0 0 1 0 0 100%
watcher/decision_engine/model/element/node.py (no function) 33 0 0 0 0 100%
watcher/decision_engine/model/element/storage_resource.py (no function) 6 0 0 0 0 100%
watcher/decision_engine/model/element/volume.py Volume.accept 0 0 1 0 0 100%
watcher/decision_engine/model/element/volume.py (no function) 20 0 0 0 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.__init__ 2 0 0 0 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.__nonzero__ 1 0 0 0 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.assert_node 2 0 0 2 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.assert_instance 2 0 0 2 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.add_node 2 0 0 0 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.remove_node 6 0 0 0 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.add_instance 6 3 0 0 0 50%
watcher/decision_engine/model/model_root.py ModelRoot.remove_instance 2 0 0 0 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.map_instance 7 2 0 4 2 64%
watcher/decision_engine/model/model_root.py ModelRoot.unmap_instance 5 2 0 4 2 56%
watcher/decision_engine/model/model_root.py ModelRoot.delete_instance 2 0 0 0 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.migrate_instance 8 0 0 2 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.get_all_compute_nodes 1 0 0 0 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.get_node_by_uuid 4 0 0 0 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.get_node_by_name 7 0 0 2 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.get_instance_by_uuid 4 0 0 0 0 100%
watcher/decision_engine/model/model_root.py ModelRoot._get_by_uuid 5 0 0 0 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.get_node_by_instance_uuid 6 0 0 4 1 90%
watcher/decision_engine/model/model_root.py ModelRoot.get_all_instances 1 0 0 0 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.get_node_instances 7 0 0 4 1 91%
watcher/decision_engine/model/model_root.py ModelRoot.get_node_used_resources 8 0 0 2 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.get_node_free_resources 5 0 0 0 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.to_string 1 0 0 0 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.to_xml 14 0 0 6 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.to_list 19 0 0 12 1 97%
watcher/decision_engine/model/model_root.py ModelRoot.from_xml 15 0 0 6 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.is_isomorphic 2 0 0 0 0 100%
watcher/decision_engine/model/model_root.py ModelRoot.is_isomorphic.node_match 1 0 0 0 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.__init__ 2 0 0 0 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.__nonzero__ 1 0 0 0 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.assert_node 2 0 0 2 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.assert_pool 2 0 0 2 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.assert_volume 2 0 0 2 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.add_node 2 0 0 0 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.add_pool 2 0 0 0 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.remove_node 6 3 0 0 0 50%
watcher/decision_engine/model/model_root.py StorageModelRoot.remove_pool 6 3 0 0 0 50%
watcher/decision_engine/model/model_root.py StorageModelRoot.map_pool 7 2 0 4 2 64%
watcher/decision_engine/model/model_root.py StorageModelRoot.unmap_pool 5 2 0 4 2 56%
watcher/decision_engine/model/model_root.py StorageModelRoot.add_volume 2 0 0 0 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.remove_volume 6 3 0 0 0 50%
watcher/decision_engine/model/model_root.py StorageModelRoot.map_volume 7 2 0 4 2 64%
watcher/decision_engine/model/model_root.py StorageModelRoot.unmap_volume 5 2 0 4 2 56%
watcher/decision_engine/model/model_root.py StorageModelRoot.delete_volume 2 0 0 0 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.get_all_storage_nodes 1 0 0 0 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.get_node_by_name 4 0 0 0 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.get_pool_by_pool_name 4 0 0 0 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.get_volume_by_uuid 4 0 0 0 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot._get_by_uuid 5 0 0 0 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot._get_by_name 5 0 0 0 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.get_node_by_pool_name 6 1 0 4 2 70%
watcher/decision_engine/model/model_root.py StorageModelRoot.get_node_pools 7 0 0 4 1 91%
watcher/decision_engine/model/model_root.py StorageModelRoot.get_pool_by_volume 7 0 0 4 1 91%
watcher/decision_engine/model/model_root.py StorageModelRoot.get_all_volumes 1 0 0 0 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.get_pool_volumes 7 0 0 4 1 91%
watcher/decision_engine/model/model_root.py StorageModelRoot.to_string 1 0 0 0 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.to_xml 18 0 0 8 0 100%
watcher/decision_engine/model/model_root.py StorageModelRoot.from_xml 28 1 0 14 2 93%
watcher/decision_engine/model/model_root.py StorageModelRoot.is_isomorphic 1 0 0 0 0 100%
watcher/decision_engine/model/model_root.py BaremetalModelRoot.__init__ 2 0 0 0 0 100%
watcher/decision_engine/model/model_root.py BaremetalModelRoot.__nonzero__ 1 0 0 0 0 100%
watcher/decision_engine/model/model_root.py BaremetalModelRoot.assert_node 2 0 0 2 0 100%
watcher/decision_engine/model/model_root.py BaremetalModelRoot.add_node 2 0 0 0 0 100%
watcher/decision_engine/model/model_root.py BaremetalModelRoot.remove_node 6 3 0 0 0 50%
watcher/decision_engine/model/model_root.py BaremetalModelRoot.get_all_ironic_nodes 1 0 0 0 0 100%
watcher/decision_engine/model/model_root.py BaremetalModelRoot.get_node_by_uuid 4 0 0 0 0 100%
watcher/decision_engine/model/model_root.py BaremetalModelRoot._get_by_uuid 5 0 0 0 0 100%
watcher/decision_engine/model/model_root.py BaremetalModelRoot.to_string 1 0 0 0 0 100%
watcher/decision_engine/model/model_root.py BaremetalModelRoot.to_xml 5 0 0 2 0 100%
watcher/decision_engine/model/model_root.py BaremetalModelRoot.from_xml 6 0 0 2 0 100%
watcher/decision_engine/model/model_root.py BaremetalModelRoot.is_isomorphic 1 0 0 0 0 100%
watcher/decision_engine/model/model_root.py (no function) 135 0 0 0 0 100%
watcher/decision_engine/model/notification/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/model/notification/base.py NotificationEndpoint.__init__ 3 0 0 0 0 100%
watcher/decision_engine/model/notification/base.py NotificationEndpoint.filter_rule 0 0 2 0 0 100%
watcher/decision_engine/model/notification/base.py NotificationEndpoint.cluster_data_model 1 0 0 0 0 100%
watcher/decision_engine/model/notification/base.py (no function) 5 0 3 0 0 100%
watcher/decision_engine/model/notification/cinder.py CinderNotification.__init__ 2 0 0 0 0 100%
watcher/decision_engine/model/notification/cinder.py CinderNotification.cinder 3 0 0 2 0 100%
watcher/decision_engine/model/notification/cinder.py CinderNotification.update_pool 5 0 0 0 0 100%
watcher/decision_engine/model/notification/cinder.py CinderNotification.update_pool_by_api 8 0 0 2 0 100%
watcher/decision_engine/model/notification/cinder.py CinderNotification.create_storage_node 9 4 0 0 0 56%
watcher/decision_engine/model/notification/cinder.py CinderNotification.get_or_create_node 11 2 0 2 1 77%
watcher/decision_engine/model/notification/cinder.py CinderNotification.create_pool 8 4 0 0 0 50%
watcher/decision_engine/model/notification/cinder.py CinderNotification.get_or_create_pool 11 0 0 2 0 100%
watcher/decision_engine/model/notification/cinder.py CinderNotification.get_or_create_volume 11 2 0 2 0 85%
watcher/decision_engine/model/notification/cinder.py CinderNotification.update_volume 13 3 0 2 0 80%
watcher/decision_engine/model/notification/cinder.py CinderNotification.update_volume._keyReplace 4 4 0 4 0 0%
watcher/decision_engine/model/notification/cinder.py CinderNotification.update_volume_mapping 19 4 0 6 2 76%
watcher/decision_engine/model/notification/cinder.py CinderNotification.delete_volume 11 5 0 2 1 54%
watcher/decision_engine/model/notification/cinder.py CapacityNotificationEndpoint.filter_rule 1 0 0 0 0 100%
watcher/decision_engine/model/notification/cinder.py CapacityNotificationEndpoint.info 10 2 0 0 0 80%
watcher/decision_engine/model/notification/cinder.py VolumeCreateEnd.filter_rule 1 0 0 0 0 100%
watcher/decision_engine/model/notification/cinder.py VolumeCreateEnd.info 8 0 0 0 0 100%
watcher/decision_engine/model/notification/cinder.py VolumeUpdateEnd.filter_rule 1 0 0 0 0 100%
watcher/decision_engine/model/notification/cinder.py VolumeUpdateEnd.info 8 0 0 0 0 100%
watcher/decision_engine/model/notification/cinder.py VolumeAttachEnd.filter_rule 1 0 0 0 0 100%
watcher/decision_engine/model/notification/cinder.py VolumeDetachEnd.filter_rule 1 0 0 0 0 100%
watcher/decision_engine/model/notification/cinder.py VolumeResizeEnd.filter_rule 1 0 0 0 0 100%
watcher/decision_engine/model/notification/cinder.py VolumeDeleteEnd.filter_rule 1 0 0 0 0 100%
watcher/decision_engine/model/notification/cinder.py VolumeDeleteEnd.info 13 3 0 0 0 77%
watcher/decision_engine/model/notification/cinder.py (no function) 48 0 0 0 0 100%
watcher/decision_engine/model/notification/filtering.py NotificationFilter._build_regex_dict 12 2 0 10 2 82%
watcher/decision_engine/model/notification/filtering.py NotificationFilter._check_for_mismatch 12 2 0 10 2 82%
watcher/decision_engine/model/notification/filtering.py (no function) 5 0 0 0 0 100%
watcher/decision_engine/model/notification/nova.py NovaNotification.__init__ 3 0 0 0 0 100%
watcher/decision_engine/model/notification/nova.py NovaNotification.nova 3 0 0 2 0 100%
watcher/decision_engine/model/notification/nova.py NovaNotification.placement_helper 3 0 0 2 1 80%
watcher/decision_engine/model/notification/nova.py NovaNotification.get_or_create_instance 15 0 0 4 1 95%
watcher/decision_engine/model/notification/nova.py NovaNotification.update_instance 16 0 0 2 0 100%
watcher/decision_engine/model/notification/nova.py NovaNotification.update_compute_node 5 0 0 0 0 100%
watcher/decision_engine/model/notification/nova.py NovaNotification.create_compute_node 35 10 0 8 4 67%
watcher/decision_engine/model/notification/nova.py NovaNotification.get_or_create_node 11 3 0 4 2 67%
watcher/decision_engine/model/notification/nova.py NovaNotification.update_instance_mapping 19 5 0 6 1 76%
watcher/decision_engine/model/notification/nova.py NovaNotification.delete_instance 4 2 0 0 0 50%
watcher/decision_engine/model/notification/nova.py NovaNotification.delete_node 4 2 0 0 0 50%
watcher/decision_engine/model/notification/nova.py VersionedNotification.service_updated 7 2 0 0 0 71%
watcher/decision_engine/model/notification/nova.py VersionedNotification.service_deleted 7 2 0 0 0 71%
watcher/decision_engine/model/notification/nova.py VersionedNotification.instance_updated 8 0 0 2 0 100%
watcher/decision_engine/model/notification/nova.py VersionedNotification.instance_created 9 0 0 2 1 91%
watcher/decision_engine/model/notification/nova.py VersionedNotification.instance_deleted 10 0 0 0 0 100%
watcher/decision_engine/model/notification/nova.py VersionedNotification.filter_rule 1 0 0 0 0 100%
watcher/decision_engine/model/notification/nova.py VersionedNotification.info 7 0 0 4 1 91%
watcher/decision_engine/model/notification/nova.py (no function) 35 0 0 0 0 100%
watcher/decision_engine/planner/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/planner/base.py BasePlanner.get_config_opts 1 0 0 0 0 100%
watcher/decision_engine/planner/base.py BasePlanner.schedule 0 0 12 0 0 100%
watcher/decision_engine/planner/base.py (no function) 5 0 2 0 0 100%
watcher/decision_engine/planner/manager.py PlannerManager.__init__ 1 0 0 0 0 100%
watcher/decision_engine/planner/manager.py PlannerManager.loader 1 0 0 0 0 100%
watcher/decision_engine/planner/manager.py PlannerManager.load 2 0 0 0 0 100%
watcher/decision_engine/planner/manager.py (no function) 8 0 0 0 0 100%
watcher/decision_engine/planner/node_resource_consolidation.py NodeResourceConsolidationPlanner.create_action 3 0 0 0 0 100%
watcher/decision_engine/planner/node_resource_consolidation.py NodeResourceConsolidationPlanner.schedule 42 0 0 20 0 100%
watcher/decision_engine/planner/node_resource_consolidation.py NodeResourceConsolidationPlanner._create_action_plan 5 0 0 0 0 100%
watcher/decision_engine/planner/node_resource_consolidation.py NodeResourceConsolidationPlanner._create_efficacy_indicators 7 4 0 2 1 44%
watcher/decision_engine/planner/node_resource_consolidation.py NodeResourceConsolidationPlanner._create_action 8 3 0 0 0 62%
watcher/decision_engine/planner/node_resource_consolidation.py (no function) 13 0 0 0 0 100%
watcher/decision_engine/planner/weight.py WeightPlanner.__init__ 1 0 0 0 0 100%
watcher/decision_engine/planner/weight.py WeightPlanner.get_config_opts 1 0 0 0 0 100%
watcher/decision_engine/planner/weight.py WeightPlanner.chunkify 5 1 0 4 1 78%
watcher/decision_engine/planner/weight.py WeightPlanner.compute_action_graph 20 0 0 14 1 97%
watcher/decision_engine/planner/weight.py WeightPlanner.schedule 11 0 0 2 0 100%
watcher/decision_engine/planner/weight.py WeightPlanner.get_sorted_actions_by_weight 6 0 0 2 0 100%
watcher/decision_engine/planner/weight.py WeightPlanner.create_scheduled_actions 7 3 0 2 0 67%
watcher/decision_engine/planner/weight.py WeightPlanner.create_action_plan 5 0 0 0 0 100%
watcher/decision_engine/planner/weight.py WeightPlanner._create_efficacy_indicators 7 4 0 2 1 44%
watcher/decision_engine/planner/weight.py (no function) 22 0 0 0 0 100%
watcher/decision_engine/planner/workload_stabilization.py WorkloadStabilizationPlanner.__init__ 2 0 0 0 0 100%
watcher/decision_engine/planner/workload_stabilization.py WorkloadStabilizationPlanner.osc 1 1 0 0 0 0%
watcher/decision_engine/planner/workload_stabilization.py WorkloadStabilizationPlanner.get_config_opts 1 0 0 0 0 100%
watcher/decision_engine/planner/workload_stabilization.py WorkloadStabilizationPlanner.create_action 3 0 0 0 0 100%
watcher/decision_engine/planner/workload_stabilization.py WorkloadStabilizationPlanner.load_child_class 4 0 0 4 0 100%
watcher/decision_engine/planner/workload_stabilization.py WorkloadStabilizationPlanner.schedule 41 0 0 14 1 98%
watcher/decision_engine/planner/workload_stabilization.py WorkloadStabilizationPlanner._create_action_plan 5 0 0 0 0 100%
watcher/decision_engine/planner/workload_stabilization.py WorkloadStabilizationPlanner._create_efficacy_indicators 7 4 0 2 1 44%
watcher/decision_engine/planner/workload_stabilization.py WorkloadStabilizationPlanner._create_action 8 3 0 0 0 62%
watcher/decision_engine/planner/workload_stabilization.py BaseActionValidator.__init__ 2 0 0 0 0 100%
watcher/decision_engine/planner/workload_stabilization.py BaseActionValidator.osc 3 0 0 2 1 80%
watcher/decision_engine/planner/workload_stabilization.py BaseActionValidator.validate_parents 0 0 1 0 0 100%
watcher/decision_engine/planner/workload_stabilization.py BaseActionValidator._mapping 3 0 0 2 0 100%
watcher/decision_engine/planner/workload_stabilization.py MigrationActionValidator.validate_parents 4 0 0 0 0 100%
watcher/decision_engine/planner/workload_stabilization.py ResizeActionValidator.validate_parents 8 1 0 2 1 80%
watcher/decision_engine/planner/workload_stabilization.py ChangeNovaServiceStateActionValidator.validate_parents 3 3 0 0 0 0%
watcher/decision_engine/planner/workload_stabilization.py SleepActionValidator.validate_parents 1 1 0 0 0 0%
watcher/decision_engine/planner/workload_stabilization.py NOPActionValidator.validate_parents 1 0 0 0 0 100%
watcher/decision_engine/planner/workload_stabilization.py (no function) 44 0 2 0 0 100%
watcher/decision_engine/rpcapi.py DecisionEngineAPI.__init__ 1 0 0 0 0 100%
watcher/decision_engine/rpcapi.py DecisionEngineAPI.trigger_audit 3 0 0 2 0 100%
watcher/decision_engine/rpcapi.py DecisionEngineAPI.get_strategy_info 1 0 0 0 0 100%
watcher/decision_engine/rpcapi.py DecisionEngineAPI.get_data_model_info 1 0 0 0 0 100%
watcher/decision_engine/rpcapi.py DecisionEngineAPIManager.service_name 1 0 0 0 0 100%
watcher/decision_engine/rpcapi.py DecisionEngineAPIManager.api_version 1 0 0 0 0 100%
watcher/decision_engine/rpcapi.py DecisionEngineAPIManager.publisher_id 1 0 0 0 0 100%
watcher/decision_engine/rpcapi.py DecisionEngineAPIManager.conductor_topic 1 0 0 0 0 100%
watcher/decision_engine/rpcapi.py DecisionEngineAPIManager.notification_topics 1 0 0 0 0 100%
watcher/decision_engine/rpcapi.py DecisionEngineAPIManager.conductor_endpoints 1 0 0 0 0 100%
watcher/decision_engine/rpcapi.py DecisionEngineAPIManager.notification_endpoints 1 0 0 0 0 100%
watcher/decision_engine/rpcapi.py (no function) 26 0 0 0 0 100%
watcher/decision_engine/scheduling.py DecisionEngineSchedulingService.__init__ 3 0 0 0 0 100%
watcher/decision_engine/scheduling.py DecisionEngineSchedulingService.collectors 1 0 0 0 0 100%
watcher/decision_engine/scheduling.py DecisionEngineSchedulingService.add_sync_jobs 3 0 0 2 0 100%
watcher/decision_engine/scheduling.py DecisionEngineSchedulingService._as_timed_sync_func 2 0 0 0 0 100%
watcher/decision_engine/scheduling.py DecisionEngineSchedulingService._as_timed_sync_func._timed_sync 2 0 0 0 0 100%
watcher/decision_engine/scheduling.py DecisionEngineSchedulingService._wrap_collector_sync_with_timeout 3 0 0 0 0 100%
watcher/decision_engine/scheduling.py DecisionEngineSchedulingService._wrap_collector_sync_with_timeout._sync 6 0 0 0 0 100%
watcher/decision_engine/scheduling.py DecisionEngineSchedulingService.add_checkstate_job 4 0 0 2 1 83%
watcher/decision_engine/scheduling.py DecisionEngineSchedulingService.cancel_ongoing_audits 7 0 0 2 0 100%
watcher/decision_engine/scheduling.py DecisionEngineSchedulingService.start 4 0 0 0 0 100%
watcher/decision_engine/scheduling.py DecisionEngineSchedulingService.stop 1 1 0 0 0 0%
watcher/decision_engine/scheduling.py DecisionEngineSchedulingService.wait 0 0 0 0 0 100%
watcher/decision_engine/scheduling.py DecisionEngineSchedulingService.reset 0 0 0 0 0 100%
watcher/decision_engine/scheduling.py (no function) 24 0 0 0 0 100%
watcher/decision_engine/scope/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/scope/baremetal.py BaremetalScope.__init__ 2 0 0 0 0 100%
watcher/decision_engine/scope/baremetal.py BaremetalScope.exclude_resources 4 0 0 4 1 88%
watcher/decision_engine/scope/baremetal.py BaremetalScope.remove_nodes_from_model 3 0 0 2 0 100%
watcher/decision_engine/scope/baremetal.py BaremetalScope.get_scoped_model 17 3 0 14 6 71%
watcher/decision_engine/scope/baremetal.py (no function) 6 0 0 0 0 100%
watcher/decision_engine/scope/base.py BaseScope.__init__ 3 0 0 0 0 100%
watcher/decision_engine/scope/base.py BaseScope.get_scoped_model 0 0 1 0 0 100%
watcher/decision_engine/scope/base.py (no function) 4 0 2 0 0 100%
watcher/decision_engine/scope/compute.py ComputeScope.__init__ 3 0 0 0 0 100%
watcher/decision_engine/scope/compute.py ComputeScope.remove_instance 2 0 0 0 0 100%
watcher/decision_engine/scope/compute.py ComputeScope.update_exclude_instance 4 0 0 0 0 100%
watcher/decision_engine/scope/compute.py ComputeScope._check_wildcard 5 0 0 4 0 100%
watcher/decision_engine/scope/compute.py ComputeScope._collect_aggregates 7 0 0 4 0 100%
watcher/decision_engine/scope/compute.py ComputeScope._collect_zones 10 0 0 8 0 100%
watcher/decision_engine/scope/compute.py ComputeScope.exclude_resources 17 0 0 12 1 97%
watcher/decision_engine/scope/compute.py ComputeScope.remove_nodes_from_model 6 0 0 4 0 100%
watcher/decision_engine/scope/compute.py ComputeScope.update_exclude_instance_in_model 7 3 0 2 0 67%
watcher/decision_engine/scope/compute.py ComputeScope.exclude_instances_with_given_metadata 9 0 0 8 1 94%
watcher/decision_engine/scope/compute.py ComputeScope.exclude_instances_with_given_project 4 0 0 4 0 100%
watcher/decision_engine/scope/compute.py ComputeScope.get_scoped_model 43 5 0 30 10 79%
watcher/decision_engine/scope/compute.py (no function) 18 0 0 0 0 100%
watcher/decision_engine/scope/storage.py StorageScope.__init__ 3 0 0 0 0 100%
watcher/decision_engine/scope/storage.py StorageScope._collect_vtype 16 0 0 12 0 100%
watcher/decision_engine/scope/storage.py StorageScope._collect_zones 10 0 0 8 0 100%
watcher/decision_engine/scope/storage.py StorageScope.exclude_resources 10 0 0 8 1 94%
watcher/decision_engine/scope/storage.py StorageScope.exclude_pools 6 0 0 4 0 100%
watcher/decision_engine/scope/storage.py StorageScope.exclude_volumes 3 0 0 2 0 100%
watcher/decision_engine/scope/storage.py StorageScope.exclude_projects 5 1 0 4 1 78%
watcher/decision_engine/scope/storage.py StorageScope.remove_nodes_from_model 9 0 0 6 0 100%
watcher/decision_engine/scope/storage.py StorageScope.get_scoped_model 29 2 0 18 5 85%
watcher/decision_engine/scope/storage.py (no function) 13 0 0 0 0 100%
watcher/decision_engine/scoring/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/scoring/base.py ScoringEngine.get_name 0 0 7 0 0 100%
watcher/decision_engine/scoring/base.py ScoringEngine.get_description 0 0 9 0 0 100%
watcher/decision_engine/scoring/base.py ScoringEngine.get_metainfo 0 0 11 0 0 100%
watcher/decision_engine/scoring/base.py ScoringEngine.calculate_score 0 0 14 0 0 100%
watcher/decision_engine/scoring/base.py ScoringEngine.get_config_opts 1 0 0 0 0 100%
watcher/decision_engine/scoring/base.py ScoringEngineContainer.get_scoring_engine_list 0 0 5 0 0 100%
watcher/decision_engine/scoring/base.py ScoringEngineContainer.get_config_opts 1 0 0 0 0 100%
watcher/decision_engine/scoring/base.py (no function) 8 0 11 0 0 100%
watcher/decision_engine/scoring/dummy_scorer.py DummyScorer.get_name 1 0 0 0 0 100%
watcher/decision_engine/scoring/dummy_scorer.py DummyScorer.get_description 1 0 0 0 0 100%
watcher/decision_engine/scoring/dummy_scorer.py DummyScorer.get_metainfo 1 0 0 0 0 100%
watcher/decision_engine/scoring/dummy_scorer.py DummyScorer.calculate_score 29 4 0 14 2 86%
watcher/decision_engine/scoring/dummy_scorer.py (no function) 24 0 0 0 0 100%
watcher/decision_engine/scoring/dummy_scoring_container.py DummyScoringContainer.get_scoring_engine_list 1 0 0 0 0 100%
watcher/decision_engine/scoring/dummy_scoring_container.py SimpleFunctionScorer.__init__ 4 0 0 0 0 100%
watcher/decision_engine/scoring/dummy_scoring_container.py SimpleFunctionScorer.get_name 1 0 0 0 0 100%
watcher/decision_engine/scoring/dummy_scoring_container.py SimpleFunctionScorer.get_description 1 0 0 0 0 100%
watcher/decision_engine/scoring/dummy_scoring_container.py SimpleFunctionScorer.get_metainfo 1 0 0 0 0 100%
watcher/decision_engine/scoring/dummy_scoring_container.py SimpleFunctionScorer.calculate_score 11 4 0 4 2 60%
watcher/decision_engine/scoring/dummy_scoring_container.py (no function) 14 0 0 0 0 100%
watcher/decision_engine/scoring/scoring_factory.py get_scoring_engine 5 0 0 2 0 100%
watcher/decision_engine/scoring/scoring_factory.py get_scoring_engine_list 2 0 0 0 0 100%
watcher/decision_engine/scoring/scoring_factory.py _reload_scoring_engines 14 0 0 8 0 100%
watcher/decision_engine/scoring/scoring_factory.py (no function) 8 0 0 0 0 100%
watcher/decision_engine/solution/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/solution/base.py BaseSolution.__init__ 5 0 0 0 0 100%
watcher/decision_engine/solution/base.py BaseSolution.global_efficacy 1 0 0 0 0 100%
watcher/decision_engine/solution/base.py BaseSolution.efficacy_indicators 1 0 0 0 0 100%
watcher/decision_engine/solution/base.py BaseSolution.strategy 1 0 0 0 0 100%
watcher/decision_engine/solution/base.py BaseSolution.compute_global_efficacy 1 0 0 0 0 100%
watcher/decision_engine/solution/base.py BaseSolution.set_efficacy_indicators 1 0 0 0 0 100%
watcher/decision_engine/solution/base.py BaseSolution.add_action 0 0 12 0 0 100%
watcher/decision_engine/solution/base.py BaseSolution.actions 0 0 1 0 0 100%
watcher/decision_engine/solution/base.py (no function) 12 0 5 0 0 100%
watcher/decision_engine/solution/default.py DefaultSolution.__init__ 2 0 0 0 0 100%
watcher/decision_engine/solution/default.py DefaultSolution.add_action 10 1 0 8 1 89%
watcher/decision_engine/solution/default.py DefaultSolution.__str__ 1 1 0 0 0 0%
watcher/decision_engine/solution/default.py DefaultSolution.actions 1 0 0 0 0 100%
watcher/decision_engine/solution/default.py (no function) 11 0 0 0 0 100%
watcher/decision_engine/solution/efficacy.py Indicator.__init__ 7 1 0 2 1 78%
watcher/decision_engine/solution/efficacy.py Efficacy.__init__ 6 0 0 0 0 100%
watcher/decision_engine/solution/efficacy.py Efficacy.set_efficacy_indicators 1 0 0 0 0 100%
watcher/decision_engine/solution/efficacy.py Efficacy.compute_global_efficacy 12 3 0 2 0 79%
watcher/decision_engine/solution/efficacy.py (no function) 14 0 0 0 0 100%
watcher/decision_engine/solution/solution_comparator.py BaseSolutionComparator.compare 0 0 1 0 0 100%
watcher/decision_engine/solution/solution_comparator.py (no function) 2 2 2 0 0 0%
watcher/decision_engine/solution/solution_evaluator.py BaseSolutionEvaluator.evaluate 0 0 1 0 0 100%
watcher/decision_engine/solution/solution_evaluator.py (no function) 2 2 2 0 0 0%
watcher/decision_engine/strategy/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/strategy/common/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/strategy/common/level.py (no function) 6 0 0 0 0 100%
watcher/decision_engine/strategy/context/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/strategy/context/base.py StrategyContext.execute_strategy 8 0 0 0 0 100%
watcher/decision_engine/strategy/context/base.py StrategyContext.do_execute_strategy 0 0 10 0 0 100%
watcher/decision_engine/strategy/context/base.py (no function) 5 0 2 0 0 100%
watcher/decision_engine/strategy/context/default.py DefaultStrategyContext.__init__ 2 0 0 0 0 100%
watcher/decision_engine/strategy/context/default.py DefaultStrategyContext.select_strategy 8 0 0 2 0 100%
watcher/decision_engine/strategy/context/default.py DefaultStrategyContext.do_execute_strategy 7 0 0 2 1 89%
watcher/decision_engine/strategy/context/default.py (no function) 12 0 0 0 0 100%
watcher/decision_engine/strategy/selection/__init__.py (no function) 0 0 0 0 0 100%
watcher/decision_engine/strategy/selection/base.py BaseSelector.select 0 0 1 0 0 100%
watcher/decision_engine/strategy/selection/base.py (no function) 2 0 2 0 0 100%
watcher/decision_engine/strategy/selection/default.py DefaultStrategySelector.__init__ 5 0 0 0 0 100%
watcher/decision_engine/strategy/selection/default.py DefaultStrategySelector.select 15 0 0 4 0 100%
watcher/decision_engine/strategy/selection/default.py (no function) 9 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/__init__.py (no function) 33 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/actuation.py Actuator.get_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/actuation.py Actuator.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/actuation.py Actuator.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/actuation.py Actuator.get_schema 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/actuation.py Actuator.get_config_opts 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/actuation.py Actuator.actions 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/actuation.py Actuator.pre_execute 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/actuation.py Actuator.do_execute 2 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/actuation.py Actuator.post_execute 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/actuation.py (no function) 18 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py StrategyEndpoint.__init__ 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py StrategyEndpoint._collect_metrics 12 2 0 8 2 80%
watcher/decision_engine/strategy/strategies/base.py StrategyEndpoint._get_datasource_status 4 1 0 2 1 67%
watcher/decision_engine/strategy/strategies/base.py StrategyEndpoint._get_cdm 8 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/base.py StrategyEndpoint.get_strategy_info 12 12 0 2 0 0%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.__init__ 17 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.get_name 0 0 2 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.get_display_name 0 0 2 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.get_translatable_display_name 0 0 4 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.get_goal_name 0 0 2 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.get_goal 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.get_config_opts 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.pre_execute 0 0 5 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.do_execute 0 0 8 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.post_execute 0 0 5 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy._pre_execute 4 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.execute 5 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.collector_manager 3 0 0 2 1 80%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.compute_model 9 5 0 6 1 33%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.storage_model 9 9 0 6 0 0%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.baremetal_model 9 9 0 6 0 0%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.get_schema 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.datasource_backend 6 0 0 4 1 90%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.input_parameters 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.input_parameters 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.osc 3 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.solution 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.solution 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.audit_scope 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.audit_scope 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.goal 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.strategy_level 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.strategy_level 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.state_collector 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.state_collector 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.planner 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.planner 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.filter_instances_by_audit_tag 13 3 0 8 3 71%
watcher/decision_engine/strategy/strategies/base.py BaseStrategy.add_action_migrate 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py DummyBaseStrategy.get_goal_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py DummyBaseStrategy.get_config_opts 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py UnclassifiedStrategy.get_goal_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py ServerConsolidationBaseStrategy.get_goal_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py ThermalOptimizationBaseStrategy.get_goal_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py WorkloadStabilizationBaseStrategy.__init__ 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py WorkloadStabilizationBaseStrategy.get_goal_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py NoisyNeighborBaseStrategy.get_goal_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py SavingEnergyBaseStrategy.get_goal_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py SavingEnergyBaseStrategy.get_config_opts 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py ZoneMigrationBaseStrategy.get_goal_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py ZoneMigrationBaseStrategy.get_config_opts 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py HostMaintenanceBaseStrategy.get_goal_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py HostMaintenanceBaseStrategy.get_config_opts 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/base.py (no function) 117 0 18 0 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.__init__ 8 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.get_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.migration_attempts 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.period 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.granularity 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.aggregation_method 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.get_schema 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.get_config_opts 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.get_available_compute_nodes 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.check_migration 8 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.check_threshold 4 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.calculate_weight 9 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.get_compute_node_cpu_usage 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.get_instance_cpu_usage 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.calculate_score_node 7 3 0 2 1 56%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.calculate_score_instance 6 2 0 2 1 62%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.add_action_disable_node 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.compute_score_of_nodes 9 0 0 6 1 93%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.node_and_instance_score 8 0 0 4 1 92%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.create_migration_instance 5 0 0 4 1 89%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.calculate_num_migrations 14 2 0 8 1 86%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.unsuccessful_migration_actualization 4 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.pre_execute 4 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.do_execute 17 0 0 6 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py BasicConsolidation.post_execute 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/basic_consolidation.py (no function) 45 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_strategy.py DummyStrategy.pre_execute 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_strategy.py DummyStrategy.do_execute 8 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_strategy.py DummyStrategy.post_execute 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_strategy.py DummyStrategy.get_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_strategy.py DummyStrategy.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_strategy.py DummyStrategy.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/dummy_strategy.py DummyStrategy.get_schema 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_strategy.py (no function) 18 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_with_resize.py DummyWithResize.pre_execute 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/dummy_with_resize.py DummyWithResize.do_execute 11 11 0 0 0 0%
watcher/decision_engine/strategy/strategies/dummy_with_resize.py DummyWithResize.post_execute 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/dummy_with_resize.py DummyWithResize.get_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_with_resize.py DummyWithResize.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_with_resize.py DummyWithResize.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/dummy_with_resize.py DummyWithResize.get_schema 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/dummy_with_resize.py (no function) 18 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_with_scorer.py DummyWithScorer.__init__ 5 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_with_scorer.py DummyWithScorer.pre_execute 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_with_scorer.py DummyWithScorer.do_execute 20 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_with_scorer.py DummyWithScorer.post_execute 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_with_scorer.py DummyWithScorer.get_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_with_scorer.py DummyWithScorer.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_with_scorer.py DummyWithScorer.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/dummy_with_scorer.py DummyWithScorer.get_schema 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/dummy_with_scorer.py DummyWithScorer._generate_random_telemetry 10 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/dummy_with_scorer.py (no function) 26 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.__init__ 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.get_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.get_schema 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.get_instance_state_str 6 0 0 4 0 100%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.get_node_status_str 6 0 0 4 0 100%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.get_node_capacity 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.host_fits 7 1 0 4 1 82%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.add_action_enable_compute_node 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.add_action_maintain_compute_node 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.enable_compute_node_if_disabled 3 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.instance_migration 8 1 0 4 1 83%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.host_migration 3 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.safe_maintain 7 0 0 4 1 91%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.try_maintain 4 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.pre_execute 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.do_execute 13 5 0 8 3 52%
watcher/decision_engine/strategy/strategies/host_maintenance.py HostMaintenance.post_execute 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/host_maintenance.py (no function) 32 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/node_resource_consolidation.py NodeResourceConsolidation.__init__ 6 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/node_resource_consolidation.py NodeResourceConsolidation.get_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/node_resource_consolidation.py NodeResourceConsolidation.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/node_resource_consolidation.py NodeResourceConsolidation.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/node_resource_consolidation.py NodeResourceConsolidation.get_schema 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/node_resource_consolidation.py NodeResourceConsolidation.check_resources 11 0 0 6 0 100%
watcher/decision_engine/strategy/strategies/node_resource_consolidation.py NodeResourceConsolidation.select_destination 10 0 0 8 1 94%
watcher/decision_engine/strategy/strategies/node_resource_consolidation.py NodeResourceConsolidation.add_migrate_actions 17 0 0 12 0 100%
watcher/decision_engine/strategy/strategies/node_resource_consolidation.py NodeResourceConsolidation.add_change_node_state_actions 12 0 0 8 0 100%
watcher/decision_engine/strategy/strategies/node_resource_consolidation.py NodeResourceConsolidation.get_nodes_migrate_failed 12 0 0 8 2 90%
watcher/decision_engine/strategy/strategies/node_resource_consolidation.py NodeResourceConsolidation.group_nodes 33 2 0 24 7 84%
watcher/decision_engine/strategy/strategies/node_resource_consolidation.py NodeResourceConsolidation.pre_execute 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/node_resource_consolidation.py NodeResourceConsolidation.do_execute 17 2 0 6 1 87%
watcher/decision_engine/strategy/strategies/node_resource_consolidation.py NodeResourceConsolidation.post_execute 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/node_resource_consolidation.py (no function) 28 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/noisy_neighbor.py NoisyNeighbor.__init__ 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/noisy_neighbor.py NoisyNeighbor.get_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/noisy_neighbor.py NoisyNeighbor.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/noisy_neighbor.py NoisyNeighbor.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/noisy_neighbor.py NoisyNeighbor.get_schema 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/noisy_neighbor.py NoisyNeighbor.get_current_and_previous_cache 7 3 0 0 0 57%
watcher/decision_engine/strategy/strategies/noisy_neighbor.py NoisyNeighbor.find_priority_instance 7 2 0 4 1 73%
watcher/decision_engine/strategy/strategies/noisy_neighbor.py NoisyNeighbor.find_noisy_instance 7 3 0 4 2 55%
watcher/decision_engine/strategy/strategies/noisy_neighbor.py NoisyNeighbor.group_hosts 33 2 0 20 3 91%
watcher/decision_engine/strategy/strategies/noisy_neighbor.py NoisyNeighbor.filter_dest_servers 9 0 0 4 1 92%
watcher/decision_engine/strategy/strategies/noisy_neighbor.py NoisyNeighbor.pre_execute 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/noisy_neighbor.py NoisyNeighbor.do_execute 22 5 0 10 4 72%
watcher/decision_engine/strategy/strategies/noisy_neighbor.py NoisyNeighbor.post_execute 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/noisy_neighbor.py (no function) 31 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/outlet_temp_control.py OutletTempControl.__init__ 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/outlet_temp_control.py OutletTempControl.get_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/outlet_temp_control.py OutletTempControl.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/outlet_temp_control.py OutletTempControl.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/outlet_temp_control.py OutletTempControl.period 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/outlet_temp_control.py OutletTempControl.get_schema 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/outlet_temp_control.py OutletTempControl.granularity 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/outlet_temp_control.py OutletTempControl.get_available_compute_nodes 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/outlet_temp_control.py OutletTempControl.group_hosts_by_outlet_temp 16 2 0 6 1 86%
watcher/decision_engine/strategy/strategies/outlet_temp_control.py OutletTempControl.choose_instance_to_migrate 16 8 0 8 4 50%
watcher/decision_engine/strategy/strategies/outlet_temp_control.py OutletTempControl.filter_dest_servers 10 0 0 4 1 93%
watcher/decision_engine/strategy/strategies/outlet_temp_control.py OutletTempControl.pre_execute 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/outlet_temp_control.py OutletTempControl.do_execute 21 5 0 10 4 71%
watcher/decision_engine/strategy/strategies/outlet_temp_control.py OutletTempControl.post_execute 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/outlet_temp_control.py (no function) 29 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/saving_energy.py SavingEnergy.__init__ 8 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/saving_energy.py SavingEnergy.metal_helper 3 1 0 2 1 60%
watcher/decision_engine/strategy/strategies/saving_energy.py SavingEnergy.nova_client 3 3 0 2 0 0%
watcher/decision_engine/strategy/strategies/saving_energy.py SavingEnergy.get_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/saving_energy.py SavingEnergy.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/saving_energy.py SavingEnergy.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/saving_energy.py SavingEnergy.get_schema 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/saving_energy.py SavingEnergy.add_action_poweronoff_node 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/saving_energy.py SavingEnergy.get_hosts_pool 22 3 0 10 2 84%
watcher/decision_engine/strategy/strategies/saving_energy.py SavingEnergy.save_energy 13 0 0 8 1 95%
watcher/decision_engine/strategy/strategies/saving_energy.py SavingEnergy.pre_execute 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/saving_energy.py SavingEnergy.do_execute 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/saving_energy.py SavingEnergy.post_execute 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/saving_energy.py (no function) 28 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.__init__ 6 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.cinder 3 1 0 2 1 60%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.get_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.get_schema 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.get_config_opts 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.get_pools 4 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.get_volumes 12 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.group_pools 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.get_volume_type_by_name 8 0 0 4 0 100%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.migrate_fit 20 0 0 8 0 100%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.check_pool_type 19 3 0 12 5 74%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.retype_fit 24 2 0 10 2 88%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.get_actions 66 13 0 36 11 76%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.pre_execute 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.do_execute 21 4 0 10 2 81%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py StorageCapacityBalance.post_execute 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/storage_capacity_balance.py (no function) 31 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/uniform_airflow.py UniformAirflow.__init__ 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/uniform_airflow.py UniformAirflow.get_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/uniform_airflow.py UniformAirflow.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/uniform_airflow.py UniformAirflow.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/uniform_airflow.py UniformAirflow.get_goal_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/uniform_airflow.py UniformAirflow.granularity 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/uniform_airflow.py UniformAirflow.get_schema 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/uniform_airflow.py UniformAirflow.get_available_compute_nodes 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/uniform_airflow.py UniformAirflow.calculate_used_resource 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/uniform_airflow.py UniformAirflow.choose_instance_to_migrate 21 4 0 14 3 80%
watcher/decision_engine/strategy/strategies/uniform_airflow.py UniformAirflow.filter_destination_hosts 26 2 0 10 3 86%
watcher/decision_engine/strategy/strategies/uniform_airflow.py UniformAirflow.group_hosts_by_airflow 16 2 0 6 1 86%
watcher/decision_engine/strategy/strategies/uniform_airflow.py UniformAirflow.pre_execute 8 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/uniform_airflow.py UniformAirflow.do_execute 22 5 0 12 4 74%
watcher/decision_engine/strategy/strategies/uniform_airflow.py UniformAirflow.post_execute 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/uniform_airflow.py (no function) 29 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.__init__ 6 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.get_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.period 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.granularity 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.get_schema 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.get_available_compute_nodes 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.get_instance_state_str 6 4 0 4 1 30%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.get_node_status_str 6 4 0 4 1 30%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.add_action_enable_compute_node 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.add_action_disable_node 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.add_migration 18 1 0 8 2 88%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.disable_unused_nodes 3 0 0 4 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.get_instance_utilization 21 6 0 10 4 68%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation._get_node_total_utilization 6 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.get_node_utilization 21 0 0 6 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.get_node_capacity 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.get_relative_node_utilization 6 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.get_relative_cluster_utilization 17 0 0 12 1 97%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.is_overloaded 7 0 0 4 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.instance_fits 10 0 0 4 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.optimize_solution 17 1 0 8 1 92%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.offload_phase 17 2 0 14 3 84%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.consolidation_phase 18 2 0 12 2 87%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.pre_execute 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.do_execute 10 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py VMWorkloadConsolidation.post_execute 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py (no function) 48 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_balance.py WorkloadBalance.__init__ 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_balance.py WorkloadBalance.get_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_balance.py WorkloadBalance.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_balance.py WorkloadBalance.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/workload_balance.py WorkloadBalance.granularity 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/workload_balance.py WorkloadBalance.get_schema 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/workload_balance.py WorkloadBalance.get_available_compute_nodes 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_balance.py WorkloadBalance.choose_instance_to_migrate 24 6 0 14 3 76%
watcher/decision_engine/strategy/strategies/workload_balance.py WorkloadBalance.filter_destination_hosts 24 5 0 12 4 69%
watcher/decision_engine/strategy/strategies/workload_balance.py WorkloadBalance.group_hosts_by_cpu_or_ram_util 41 6 0 14 2 85%
watcher/decision_engine/strategy/strategies/workload_balance.py WorkloadBalance.pre_execute 5 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_balance.py WorkloadBalance.do_execute 21 5 0 10 4 71%
watcher/decision_engine/strategy/strategies/workload_balance.py WorkloadBalance.post_execute 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_balance.py (no function) 26 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_stabilization.py _set_memoize 4 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.__init__ 13 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.get_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.granularity 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.get_schema 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.transform_instance_cpu 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.get_instance_load 12 0 0 6 0 100%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.normalize_hosts_load 6 0 0 4 1 90%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.get_available_nodes 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.get_hosts_load 20 0 0 10 0 100%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.get_sd 13 1 0 6 1 89%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.calculate_weighted_sd 8 3 0 2 0 70%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.calculate_migration_case 18 1 0 8 1 92%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.get_current_weighted_sd 7 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.simulate_migrations 28 3 0 16 3 86%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.simulate_migrations.yield_nodes 9 4 0 8 3 47%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.check_threshold 10 0 0 4 2 86%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.create_migration_instance 3 3 0 2 0 0%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.migrate 4 4 0 0 0 0%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.fill_solution 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.pre_execute 15 0 0 4 0 100%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.do_execute 26 1 0 14 2 92%
watcher/decision_engine/strategy/strategies/workload_stabilization.py WorkloadStabilization.post_execute 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/workload_stabilization.py (no function) 47 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.__init__ 11 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.get_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.get_display_name 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.get_translatable_display_name 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.get_schema 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.migrate_compute_nodes 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.migrate_storage_pools 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.parallel_total 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.parallel_per_node 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.parallel_per_pool 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.priority 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.with_attached_volume 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.nova 3 0 0 2 1 80%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.cinder 3 0 0 2 1 80%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.get_available_compute_nodes 2 2 0 0 0 0%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.get_available_storage_nodes 2 2 0 0 0 0%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.pre_execute 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.do_execute 16 2 0 10 2 85%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.post_execute 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.set_migration_count 10 0 0 12 2 91%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.is_live 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.is_cold 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.is_available 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.is_in_use 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.instances_no_attached 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.get_host_by_pool 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.get_dst_node 3 0 0 4 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.get_dst_pool_and_type 3 0 0 4 1 86%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.volumes_migration 22 0 0 14 1 97%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.instances_migration 14 2 0 10 2 83%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration._live_migration 5 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration._cold_migration 5 0 0 2 1 86%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration._volume_update 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration._volume_migrate 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration._volume_retype 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.get_src_node_list 3 1 0 2 1 60%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.get_src_pool_list 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.get_instances 4 1 0 2 1 67%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.get_volumes 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.filtered_targets 13 1 0 8 2 86%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.get_priority_filter_list 6 0 0 4 1 90%
watcher/decision_engine/strategy/strategies/zone_migration.py ZoneMigration.get_priority_filter_map 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ActionCounter.__init__ 6 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ActionCounter.add_pool 8 2 0 4 2 67%
watcher/decision_engine/strategy/strategies/zone_migration.py ActionCounter.add_node 8 2 0 4 2 67%
watcher/decision_engine/strategy/strategies/zone_migration.py ActionCounter.is_total_max 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ActionCounter.is_pool_max 5 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ActionCounter.is_node_max 3 0 0 2 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py BaseFilter.__init__ 3 1 0 2 1 60%
watcher/decision_engine/strategy/strategies/zone_migration.py BaseFilter.apply_filter 10 1 0 8 1 89%
watcher/decision_engine/strategy/strategies/zone_migration.py BaseFilter.is_allowed 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py BaseFilter.exec_filter 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/zone_migration.py SortMovingToFrontFilter.exec_filter 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py SortMovingToFrontFilter.sort_moving_to_front 7 1 0 6 1 85%
watcher/decision_engine/strategy/strategies/zone_migration.py SortMovingToFrontFilter.compare_func 1 1 0 0 0 0%
watcher/decision_engine/strategy/strategies/zone_migration.py ProjectSortFilter.__init__ 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ProjectSortFilter.compare_func 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ProjectSortFilter.get_project_id 4 0 0 4 1 88%
watcher/decision_engine/strategy/strategies/zone_migration.py ComputeHostSortFilter.__init__ 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ComputeHostSortFilter.compare_func 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ComputeHostSortFilter.get_host 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py StorageHostSortFilter.compare_func 3 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py StorageHostSortFilter.get_host 1 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ComputeSpecSortFilter.__init__ 2 0 0 0 0 100%
watcher/decision_engine/strategy/strategies/zone_migration.py ComputeSpecSortFilter.nova 3 0 0 2 1 80%
watcher/decision_engine/strategy/strategies/zone_migration.py ComputeSpecSortFilter.exec_filter 5 1 0 2 1 71%
watcher/decision_engine/strategy/strategies/zone_migration.py ComputeSpecSortFilter.get_sorted_items 11 0 0 8 1 95%
watcher/decision_engine/strategy/strategies/zone_migration.py ComputeSpecSortFilter.get_mem_size 6 0 0 4 1 90%
watcher/decision_engine/strategy/strategies/zone_migration.py ComputeSpecSortFilter.get_vcpu_num 6 0 0 4 1 90%
watcher/decision_engine/strategy/strategies/zone_migration.py ComputeSpecSortFilter.get_disk_size 6 0 0 4 1 90%
watcher/decision_engine/strategy/strategies/zone_migration.py StorageSpecSortFilter.exec_filter 9 2 0 4 1 77%
watcher/decision_engine/strategy/strategies/zone_migration.py (no function) 122 0 0 0 0 100%
watcher/decision_engine/sync.py Syncer.__init__ 14 0 0 0 0 100%
watcher/decision_engine/sync.py Syncer.available_goals 3 0 0 2 0 100%
watcher/decision_engine/sync.py Syncer.available_strategies 9 0 0 4 0 100%
watcher/decision_engine/sync.py Syncer.available_scoringengines 3 0 0 2 0 100%
watcher/decision_engine/sync.py Syncer.available_goals_map 3 0 0 2 0 100%
watcher/decision_engine/sync.py Syncer.available_strategies_map 4 0 0 2 0 100%
watcher/decision_engine/sync.py Syncer.available_scoringengines_map 3 0 0 2 0 100%
watcher/decision_engine/sync.py Syncer.sync 21 2 0 12 1 91%
watcher/decision_engine/sync.py Syncer._sync_goal 15 0 0 4 1 95%
watcher/decision_engine/sync.py Syncer._sync_strategy 19 0 0 4 1 96%
watcher/decision_engine/sync.py Syncer._sync_scoringengine 15 1 0 4 2 84%
watcher/decision_engine/sync.py Syncer._sync_objects 17 0 0 6 0 100%
watcher/decision_engine/sync.py Syncer._find_stale_audit_templates_due_to_goal 8 1 0 6 1 86%
watcher/decision_engine/sync.py Syncer._find_stale_audit_templates_due_to_strategy 8 0 0 6 0 100%
watcher/decision_engine/sync.py Syncer._find_stale_audits_due_to_goal 8 1 0 6 1 86%
watcher/decision_engine/sync.py Syncer._find_stale_audits_due_to_strategy 10 0 0 6 0 100%
watcher/decision_engine/sync.py Syncer._find_stale_action_plans_due_to_strategy 10 2 0 6 1 81%
watcher/decision_engine/sync.py Syncer._find_stale_action_plans_due_to_audit 10 3 0 6 1 75%
watcher/decision_engine/sync.py Syncer._soft_delete_removed_goals 14 1 0 8 1 91%
watcher/decision_engine/sync.py Syncer._soft_delete_removed_strategies 25 4 0 14 3 82%
watcher/decision_engine/sync.py Syncer._soft_delete_removed_scoringengines 4 2 0 2 1 50%
watcher/decision_engine/sync.py Syncer._discover 15 0 0 6 0 100%
watcher/decision_engine/sync.py Syncer._soft_delete_stale_goals 11 1 0 4 1 87%
watcher/decision_engine/sync.py Syncer._soft_delete_stale_strategies 11 1 0 4 1 87%
watcher/decision_engine/sync.py Syncer._soft_delete_stale_scoringengines 11 5 0 4 1 47%
watcher/decision_engine/sync.py (no function) 44 0 0 0 0 100%
watcher/decision_engine/threading.py DecisionEngineThreadPool.__init__ 2 0 0 0 0 100%
watcher/decision_engine/threading.py DecisionEngineThreadPool.submit 1 0 0 0 0 100%
watcher/decision_engine/threading.py DecisionEngineThreadPool.do_while_futures 2 0 0 0 0 100%
watcher/decision_engine/threading.py DecisionEngineThreadPool.do_while_futures_modify 6 0 0 4 0 100%
watcher/decision_engine/threading.py (no function) 15 0 0 0 0 100%
watcher/eventlet.py is_patched 1 0 0 0 0 100%
watcher/eventlet.py _monkey_patch 4 0 0 2 0 100%
watcher/eventlet.py patch 3 0 0 2 1 80%
watcher/eventlet.py (no function) 5 0 0 0 0 100%
watcher/notifications/__init__.py (no function) 7 0 0 0 0 100%
watcher/notifications/action.py ActionPayload.__init__ 2 0 0 0 0 100%
watcher/notifications/action.py ActionCreatePayload.__init__ 1 0 0 0 0 100%
watcher/notifications/action.py ActionUpdatePayload.__init__ 1 0 0 0 0 100%
watcher/notifications/action.py ActionExecutionPayload.__init__ 1 0 0 0 0 100%
watcher/notifications/action.py ActionCancelPayload.__init__ 1 0 0 0 0 100%
watcher/notifications/action.py ActionDeletePayload.__init__ 1 0 0 0 0 100%
watcher/notifications/action.py _get_action_plan_payload 12 0 0 2 0 100%
watcher/notifications/action.py send_create 4 0 0 0 0 100%
watcher/notifications/action.py send_update 5 0 0 0 0 100%
watcher/notifications/action.py send_delete 4 0 0 0 0 100%
watcher/notifications/action.py send_execution_notification 7 0 0 2 0 100%
watcher/notifications/action.py send_cancel_notification 7 0 0 2 0 100%
watcher/notifications/action.py (no function) 80 0 0 0 0 100%
watcher/notifications/action_plan.py TerseActionPlanPayload.__init__ 2 0 0 0 0 100%
watcher/notifications/action_plan.py ActionPlanPayload.__init__ 5 0 0 4 2 78%
watcher/notifications/action_plan.py ActionPlanCreatePayload.__init__ 1 0 0 0 0 100%
watcher/notifications/action_plan.py ActionPlanUpdatePayload.__init__ 1 0 0 0 0 100%
watcher/notifications/action_plan.py ActionPlanActionPayload.__init__ 1 0 0 0 0 100%
watcher/notifications/action_plan.py ActionPlanDeletePayload.__init__ 1 0 0 0 0 100%
watcher/notifications/action_plan.py ActionPlanCancelPayload.__init__ 1 0 0 0 0 100%
watcher/notifications/action_plan.py _get_common_payload 11 0 0 0 0 100%
watcher/notifications/action_plan.py send_create 4 0 0 0 0 100%
watcher/notifications/action_plan.py send_update 5 0 0 0 0 100%
watcher/notifications/action_plan.py send_delete 4 0 0 0 0 100%
watcher/notifications/action_plan.py send_action_notification 7 0 0 2 0 100%
watcher/notifications/action_plan.py send_cancel_notification 7 0 0 2 0 100%
watcher/notifications/action_plan.py (no function) 87 0 0 0 0 100%
watcher/notifications/audit.py TerseAuditPayload.__init__ 2 0 0 0 0 100%
watcher/notifications/audit.py AuditPayload.__init__ 5 1 0 4 1 78%
watcher/notifications/audit.py AuditCreatePayload.__init__ 1 0 0 0 0 100%
watcher/notifications/audit.py AuditUpdatePayload.__init__ 1 0 0 0 0 100%
watcher/notifications/audit.py AuditActionPayload.__init__ 1 0 0 0 0 100%
watcher/notifications/audit.py AuditDeletePayload.__init__ 1 0 0 0 0 100%
watcher/notifications/audit.py _get_common_payload 13 0 0 4 0 100%
watcher/notifications/audit.py send_create 4 0 0 0 0 100%
watcher/notifications/audit.py send_update 5 0 0 0 0 100%
watcher/notifications/audit.py send_delete 4 0 0 0 0 100%
watcher/notifications/audit.py send_action_notification 7 0 0 2 0 100%
watcher/notifications/audit.py (no function) 72 0 0 0 0 100%
watcher/notifications/base.py NotificationObject.__init__ 2 0 0 0 0 100%
watcher/notifications/base.py NotificationObject.save 1 1 0 0 0 0%
watcher/notifications/base.py NotificationObject.obj_load_attr 1 1 0 0 0 0%
watcher/notifications/base.py EventType.to_notification_event_type_field 4 0 0 2 0 100%
watcher/notifications/base.py NotificationPayloadBase.__init__ 2 0 0 0 0 100%
watcher/notifications/base.py NotificationPayloadBase.populate_schema 6 0 0 4 1 90%
watcher/notifications/base.py NotificationBase.save 1 1 0 0 0 0%
watcher/notifications/base.py NotificationBase.obj_load_attr 1 1 0 0 0 0%
watcher/notifications/base.py NotificationBase._should_notify 3 0 0 2 0 100%
watcher/notifications/base.py NotificationBase._emit 4 0 0 0 0 100%
watcher/notifications/base.py NotificationBase.emit 6 0 0 4 0 100%
watcher/notifications/base.py notification_sample 2 0 0 0 0 100%
watcher/notifications/base.py notification_sample.wrap 4 0 0 2 0 100%
watcher/notifications/base.py (no function) 40 0 0 0 0 100%
watcher/notifications/exception.py ExceptionPayload.from_exception 3 0 0 0 0 100%
watcher/notifications/exception.py (no function) 16 0 0 0 0 100%
watcher/notifications/goal.py GoalPayload.__init__ 2 0 0 0 0 100%
watcher/notifications/goal.py (no function) 9 0 0 0 0 100%
watcher/notifications/service.py ServicePayload.__init__ 2 0 0 0 0 100%
watcher/notifications/service.py ServiceUpdatePayload.__init__ 1 0 0 0 0 100%
watcher/notifications/service.py send_service_update 8 2 0 2 1 70%
watcher/notifications/service.py (no function) 27 0 0 0 0 100%
watcher/notifications/strategy.py StrategyPayload.__init__ 2 0 0 0 0 100%
watcher/notifications/strategy.py (no function) 9 0 0 0 0 100%
watcher/objects/__init__.py register_all 10 0 0 0 0 100%
watcher/objects/__init__.py (no function) 1 0 0 0 0 100%
watcher/objects/action.py Action.get 5 0 0 4 0 100%
watcher/objects/action.py Action.get_by_id 3 0 0 0 0 100%
watcher/objects/action.py Action.get_by_uuid 3 0 0 0 0 100%
watcher/objects/action.py Action.list 2 0 0 0 0 100%
watcher/objects/action.py Action.create 4 0 0 0 0 100%
watcher/objects/action.py Action.destroy 2 0 0 0 0 100%
watcher/objects/action.py Action.save 6 0 0 0 0 100%
watcher/objects/action.py Action.refresh 2 0 0 0 0 100%
watcher/objects/action.py Action.soft_delete 6 0 0 0 0 100%
watcher/objects/action.py (no function) 38 0 0 0 0 100%
watcher/objects/action_description.py ActionDescription.get 5 1 0 2 1 71%
watcher/objects/action_description.py ActionDescription.get_by_type 3 2 0 0 0 33%
watcher/objects/action_description.py ActionDescription.list 2 0 0 0 0 100%
watcher/objects/action_description.py ActionDescription.create 3 0 0 0 0 100%
watcher/objects/action_description.py ActionDescription.save 5 0 0 0 0 100%
watcher/objects/action_description.py ActionDescription.refresh 4 0 0 4 0 100%
watcher/objects/action_description.py ActionDescription.soft_delete 3 0 0 0 0 100%
watcher/objects/action_description.py (no function) 22 0 0 0 0 100%
watcher/objects/action_plan.py ActionPlan._obj_state 1 0 0 0 0 100%
watcher/objects/action_plan.py ActionPlan._obj_old_state 1 1 0 0 0 0%
watcher/objects/action_plan.py ActionPlan.old_state 1 0 0 0 0 100%
watcher/objects/action_plan.py ActionPlan._obj_old_state 1 1 0 0 0 0%
watcher/objects/action_plan.py ActionPlan._obj_state 3 0 0 2 0 100%
watcher/objects/action_plan.py ActionPlan.get 5 0 0 4 0 100%
watcher/objects/action_plan.py ActionPlan.get_by_id 3 0 0 0 0 100%
watcher/objects/action_plan.py ActionPlan.get_by_uuid 3 0 0 0 0 100%
watcher/objects/action_plan.py ActionPlan.list 2 0 0 0 0 100%
watcher/objects/action_plan.py ActionPlan.create 5 0 0 0 0 100%
watcher/objects/action_plan.py ActionPlan.create._notify 1 0 0 0 0 100%
watcher/objects/action_plan.py ActionPlan.destroy 5 0 0 2 0 100%
watcher/objects/action_plan.py ActionPlan.save 7 0 0 0 0 100%
watcher/objects/action_plan.py ActionPlan.save._notify 1 0 0 0 0 100%
watcher/objects/action_plan.py ActionPlan.refresh 2 0 0 0 0 100%
watcher/objects/action_plan.py ActionPlan.soft_delete 13 0 0 4 0 100%
watcher/objects/action_plan.py ActionPlan.soft_delete._notify 1 0 0 0 0 100%
watcher/objects/action_plan.py StateManager.check_expired 7 0 0 2 0 100%
watcher/objects/action_plan.py (no function) 59 0 0 0 0 100%
watcher/objects/audit.py Audit.__init__ 3 0 0 2 0 100%
watcher/objects/audit.py Audit._obj_state 1 0 0 0 0 100%
watcher/objects/audit.py Audit._obj_old_state 1 1 0 0 0 0%
watcher/objects/audit.py Audit.old_state 1 0 0 0 0 100%
watcher/objects/audit.py Audit._obj_old_state 1 0 0 0 0 100%
watcher/objects/audit.py Audit._obj_state 3 0 0 2 0 100%
watcher/objects/audit.py Audit.get 5 0 0 4 0 100%
watcher/objects/audit.py Audit.get_by_id 3 0 0 0 0 100%
watcher/objects/audit.py Audit.get_by_uuid 3 0 0 0 0 100%
watcher/objects/audit.py Audit.get_by_name 3 2 0 0 0 33%
watcher/objects/audit.py Audit.list 2 0 0 0 0 100%
watcher/objects/audit.py Audit.create 5 0 0 0 0 100%
watcher/objects/audit.py Audit.create._notify 1 0 0 0 0 100%
watcher/objects/audit.py Audit.destroy 2 0 0 0 0 100%
watcher/objects/audit.py Audit.save 7 0 0 0 0 100%
watcher/objects/audit.py Audit.save._notify 1 0 0 0 0 100%
watcher/objects/audit.py Audit.refresh 2 0 0 0 0 100%
watcher/objects/audit.py Audit.soft_delete 7 0 0 0 0 100%
watcher/objects/audit.py Audit.soft_delete._notify 1 0 0 0 0 100%
watcher/objects/audit.py AuditStateTransitionManager.check_transition 1 0 0 0 0 100%
watcher/objects/audit.py AuditStateTransitionManager.is_inactive 1 0 0 0 0 100%
watcher/objects/audit.py (no function) 64 0 0 0 0 100%
watcher/objects/audit_template.py AuditTemplate.get 5 0 0 4 0 100%
watcher/objects/audit_template.py AuditTemplate.get_by_id 3 0 0 0 0 100%
watcher/objects/audit_template.py AuditTemplate.get_by_uuid 3 0 0 0 0 100%
watcher/objects/audit_template.py AuditTemplate.get_by_name 3 0 0 0 0 100%
watcher/objects/audit_template.py AuditTemplate.list 2 0 0 0 0 100%
watcher/objects/audit_template.py AuditTemplate.create 3 0 0 0 0 100%
watcher/objects/audit_template.py AuditTemplate.destroy 2 0 0 0 0 100%
watcher/objects/audit_template.py AuditTemplate.save 5 0 0 0 0 100%
watcher/objects/audit_template.py AuditTemplate.refresh 2 0 0 0 0 100%
watcher/objects/audit_template.py AuditTemplate.soft_delete 3 0 0 0 0 100%
watcher/objects/audit_template.py (no function) 31 0 0 0 0 100%
watcher/objects/base.py get_attrname 1 0 0 0 0 100%
watcher/objects/base.py WatcherObjectRegistry.registration_hook 6 0 0 4 0 100%
watcher/objects/base.py WatcherObjectRegistry.register_notification 3 0 0 0 0 100%
watcher/objects/base.py WatcherObjectRegistry.register_notification_objects 2 0 0 2 0 100%
watcher/objects/base.py WatcherObject.as_dict 1 0 0 0 0 100%
watcher/objects/base.py WatcherPersistentObject.obj_refresh 4 0 0 4 0 100%
watcher/objects/base.py WatcherPersistentObject._from_db_object 14 0 0 10 0 100%
watcher/objects/base.py (no function) 30 0 0 0 0 100%
watcher/objects/efficacy_indicator.py EfficacyIndicator.get 5 0 0 4 0 100%
watcher/objects/efficacy_indicator.py EfficacyIndicator.get_by_id 3 0 0 0 0 100%
watcher/objects/efficacy_indicator.py EfficacyIndicator.get_by_uuid 3 0 0 0 0 100%
watcher/objects/efficacy_indicator.py EfficacyIndicator.list 2 0 0 0 0 100%
watcher/objects/efficacy_indicator.py EfficacyIndicator.create 3 0 0 0 0 100%
watcher/objects/efficacy_indicator.py EfficacyIndicator.destroy 2 0 0 0 0 100%
watcher/objects/efficacy_indicator.py EfficacyIndicator.save 3 0 0 0 0 100%
watcher/objects/efficacy_indicator.py EfficacyIndicator.refresh 2 0 0 0 0 100%
watcher/objects/efficacy_indicator.py EfficacyIndicator.soft_delete 1 0 0 0 0 100%
watcher/objects/efficacy_indicator.py (no function) 27 0 0 0 0 100%
watcher/objects/fields.py UUIDField.coerce 3 0 0 2 0 100%
watcher/objects/fields.py Numeric.coerce 4 1 0 2 1 67%
watcher/objects/fields.py FlexibleDict.coerce 3 0 0 2 0 100%
watcher/objects/fields.py FlexibleDictField._null 3 1 0 2 1 60%
watcher/objects/fields.py FlexibleListOfDict.coerce 3 0 0 2 0 100%
watcher/objects/fields.py FlexibleListOfDictField._null 3 1 0 2 1 60%
watcher/objects/fields.py Json.coerce 4 0 0 2 0 100%
watcher/objects/fields.py Json.from_primitive 1 1 0 0 0 0%
watcher/objects/fields.py Json.to_primitive 1 0 0 0 0 100%
watcher/objects/fields.py BaseWatcherEnum.__init__ 1 0 0 0 0 100%
watcher/objects/fields.py (no function) 75 0 0 0 0 100%
watcher/objects/goal.py Goal.get 5 1 0 4 1 78%
watcher/objects/goal.py Goal.get_by_id 3 0 0 0 0 100%
watcher/objects/goal.py Goal.get_by_uuid 3 0 0 0 0 100%
watcher/objects/goal.py Goal.get_by_name 3 0 0 0 0 100%
watcher/objects/goal.py Goal.list 2 0 0 0 0 100%
watcher/objects/goal.py Goal.create 3 0 0 0 0 100%
watcher/objects/goal.py Goal.destroy 2 0 0 0 0 100%
watcher/objects/goal.py Goal.save 5 0 0 0 0 100%
watcher/objects/goal.py Goal.refresh 2 0 0 0 0 100%
watcher/objects/goal.py Goal.soft_delete 3 0 0 0 0 100%
watcher/objects/goal.py (no function) 29 4 0 0 0 86%
watcher/objects/scoring_engine.py ScoringEngine.get 5 2 0 4 2 56%
watcher/objects/scoring_engine.py ScoringEngine.get_by_id 3 0 0 0 0 100%
watcher/objects/scoring_engine.py ScoringEngine.get_by_uuid 3 0 0 0 0 100%
watcher/objects/scoring_engine.py ScoringEngine.get_by_name 3 0 0 0 0 100%
watcher/objects/scoring_engine.py ScoringEngine.list 2 0 0 0 0 100%
watcher/objects/scoring_engine.py ScoringEngine.create 3 0 0 0 0 100%
watcher/objects/scoring_engine.py ScoringEngine.destroy 2 0 0 0 0 100%
watcher/objects/scoring_engine.py ScoringEngine.save 5 0 0 0 0 100%
watcher/objects/scoring_engine.py ScoringEngine.refresh 2 0 0 0 0 100%
watcher/objects/scoring_engine.py ScoringEngine.soft_delete 3 0 0 0 0 100%
watcher/objects/scoring_engine.py (no function) 27 0 0 0 0 100%
watcher/objects/service.py Service.get 5 1 0 2 1 71%
watcher/objects/service.py Service.get_by_name 3 0 0 0 0 100%
watcher/objects/service.py Service.list 2 0 0 0 0 100%
watcher/objects/service.py Service.create 3 0 0 0 0 100%
watcher/objects/service.py Service.save 5 0 0 0 0 100%
watcher/objects/service.py Service.refresh 4 0 0 4 0 100%
watcher/objects/service.py Service.soft_delete 3 0 0 0 0 100%
watcher/objects/service.py (no function) 25 0 0 0 0 100%
watcher/objects/strategy.py Strategy.get 5 0 0 4 0 100%
watcher/objects/strategy.py Strategy.get_by_id 3 0 0 0 0 100%
watcher/objects/strategy.py Strategy.get_by_uuid 3 0 0 0 0 100%
watcher/objects/strategy.py Strategy.get_by_name 3 0 0 0 0 100%
watcher/objects/strategy.py Strategy.list 2 0 0 0 0 100%
watcher/objects/strategy.py Strategy.create 3 0 0 0 0 100%
watcher/objects/strategy.py Strategy.destroy 2 0 0 0 0 100%
watcher/objects/strategy.py Strategy.save 3 0 0 0 0 100%
watcher/objects/strategy.py Strategy.refresh 4 0 0 4 0 100%
watcher/objects/strategy.py Strategy.soft_delete 1 0 0 0 0 100%
watcher/objects/strategy.py (no function) 31 0 0 0 0 100%
watcher/version.py (no function) 3 0 0 0 0 100%
watcher/wsgi/__init__.py (no function) 0 0 0 0 0 100%
watcher/wsgi/api.py (no function) 6 6 0 2 0 0%
Total   15277 1453 1329 3142 528 88%

No items found using the specified filter.