Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PIOT-CDA-02-005: Create module - SystemCpuUtilTask #23

Open
labbenchstudios opened this issue Jul 14, 2020 · 2 comments
Open

PIOT-CDA-02-005: Create module - SystemCpuUtilTask #23

labbenchstudios opened this issue Jul 14, 2020 · 2 comments
Labels
exercise New feature to implement as an exercise
Milestone

Comments

@labbenchstudios
Copy link
Contributor

labbenchstudios commented Jul 14, 2020

Description

  • Create a new Python module named SystemCpuUtilTask with class name SystemCpuUtilTask. This will be in the ./programmingtheiot/cda/system package.
    • NOTE: The downloaded code repository will a shell implementation of this module for you to work with, or you can create your own if you'd prefer.

Review the README

  • Please see README.md for further information on, and use of, this content.
  • License for embedded documentation and source codes: PIOT-DOC-LIC

Estimated effort may vary greatly

  • The estimated level of effort for this exercise shown in the 'Estimate' section below is a very rough approximation. The actual level of effort may vary greatly depending on your development and test environment, experience with the requisite technologies, and many other factors.

Actions

NOTE: The implementation examples depicted here are only one way to implement the requirements listed. Your own implementation may vary of course.

  • If not already part of the template class, import the psutil library and ConfigConst (in addition to logging and BaseSystemUtilTask):
import logging
import psutil

import programmingtheiot.common.ConfigConst as ConfigConst

from programmingtheiot.cda.system.BaseSystemUtilTask import BaseSystemUtilTask
  • Create a class within the module named SystemCpuUtilTask. This will extend BaseSystemUtilTask.
  • In the constructor, add the following:
    super(SystemCpuUtilTask, self).__init__(name = ConfigConst.CPU_UTIL_NAME, typeID = ConfigConst.CPU_UTIL_TYPE)
  • BaseSystemUtilTask defines a template method named getTelemetryValue(self) -> float:. Implement this in SystemCpuUtilTask as follows:
    • return psutil.cpu_percent()
def __init__(self):
	super(SystemCpuUtilTask, self).__init__(name = ConfigConst.CPU_UTIL_NAME, typeID = ConfigConst.CPU_UTIL_TYPE)
	
def getTelemetryValue(self) -> float:
	return psutil.cpu_percent()

Estimate

  • Small

Tests

  • Unit tests (in ./src/test/python/programmingtheiot/part01/unit)
    • Run ./system/SystemCpuUtilTaskTest. The testGetTelemetryValue() unit test should pass.
@labbenchstudios labbenchstudios self-assigned this Jul 14, 2020
@labbenchstudios labbenchstudios changed the title Create module - SystemCpuUtilTask PIOT-CDA-02-003: Create module - SystemCpuUtilTask Jul 14, 2020
@labbenchstudios labbenchstudios changed the title PIOT-CDA-02-003: Create module - SystemCpuUtilTask PIOT-CDA-02-004: Create module - SystemCpuUtilTask Jul 19, 2020
@labbenchstudios labbenchstudios removed their assignment Aug 17, 2020
@labbenchstudios labbenchstudios transferred this issue from programming-the-iot/python-components Sep 7, 2020
@labbenchstudios labbenchstudios added the exercise New feature to implement as an exercise label Sep 7, 2020
@labbenchstudios labbenchstudios added this to the Chapter 02 milestone Sep 7, 2020
@labbenchstudios labbenchstudios changed the title PIOT-CDA-02-004: Create module - SystemCpuUtilTask PIOT-CDA-02-005: Create module - SystemCpuUtilTask Sep 18, 2020
@dbeavers
Copy link

You might want to add:
import programmingtheiot.common.ConfigConst as ConfigConst
to the example code section.

@labbenchstudios
Copy link
Contributor Author

Updated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
exercise New feature to implement as an exercise
Projects
Programming the IoT - Exercises Kanba...
  
Lab Module 02 - Edge Tier Apps
Development

No branches or pull requests

2 participants