Looks pretty good. I wasn't able to build it on my machine (see below), but 
that's probably because I'm missing something, but it's not clear what.

Please also see inline comments regarding hard-coding the checksums in the 
charm code.

Re: error:

$ make build
Makefile:4: Warning JUJU_REPOSITORY was not set, defaulting to 
/home/alex/Projects/Canonical/other/hw-health-charm
Building charm to base directory 
/home/alex/Projects/Canonical/other/hw-health-charm
build: Destination charm directory: 
/home/alex/Projects/Canonical/other/hw-health-charm/builds/hw-health
build: Processing layer: layer:options
build: Processing layer: layer:basic
build: Processing layer: layer:status
build: Processing layer: layer:apt
build: Processing layer: layer:nagios
build: Processing layer: layer:snap
build: Processing layer: hw-health (from src)
build: Processing interface: nrpe-external-master
build: Processing interface: juju-info
Traceback (most recent call last):
  File "/snap/charm/176/bin/charm-build", line 9, in <module>
    load_entry_point('charm-tools==2.2.5', 'console_scripts', 'charm-build')()
  File 
"/snap/charm/176/lib/python3.5/site-packages/charmtools/build/builder.py", line 
837, in main
    build()
  File 
"/snap/charm/176/lib/python3.5/site-packages/charmtools/build/builder.py", line 
622, in __call__
    self.generate()
  File 
"/snap/charm/176/lib/python3.5/site-packages/charmtools/build/builder.py", line 
575, in generate
    self.exec_plan(self.plan, self.layers)
  File 
"/snap/charm/176/lib/python3.5/site-packages/charmtools/build/builder.py", line 
548, in exec_plan
    tactic()
  File 
"/snap/charm/176/lib/python3.5/site-packages/charmtools/build/tactics.py", line 
234, in __call__
    self.entity.copy2(target)
  File "/snap/charm/176/usr/lib/python3.5/shutil.py", line 251, in copy2
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/snap/charm/176/usr/lib/python3.5/shutil.py", line 114, in copyfile
    with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: 
Path('/home/alex/Projects/Canonical/other/hw-health-charm/src/files/ipmi/check_ipmi_sensor')
Makefile:50: recipe for target 'build' failed
make: *** [build] Error 1


Diff comments:

> diff --git a/.gitignore b/.gitignore
> index 06bf3e8..e808ce9 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -23,3 +23,5 @@ builds
>  
>  # tools bundle (needed for functional testing)
>  tools.zip
> +tools-checksum.zip

It seems a shame to not include these with the charm in a fixtures dir so that, 
in order to do functional testing, the tester doesn't have to download and 
create these manually.  This will also make it easier to add this to a CI 
system.

> +tools-missing.zip
> diff --git a/src/lib/hwhealth/tools.py b/src/lib/hwhealth/tools.py
> index e18b464..fd6692d 100644
> --- a/src/lib/hwhealth/tools.py
> +++ b/src/lib/hwhealth/tools.py
> @@ -270,6 +298,7 @@ class Sas3Ircu(VendorTool):
>      """
>      def __init__(self):
>          super().__init__(shortname='sas3ircu')
> +        self.checksums = 
> ['f150eb37bb332668949a3eccf9636e0e03f874aecd17a39d586082c6be1386bd']

Hard coding the checksums is probably a bad idea.  This means the charm has to 
change when the associated tools change.  It would be better if a 'build' tool 
was provided that fetches the required tools, compresses them into the 
tools.zip and also writes a checksums into a file in the charm directory so 
that when the charm is built the file is included.  You still get the 
"checksums with charm" security, but to update the tools, you just have to run 
the build command again?

>  
>  
>  class Sas2Ircu(VendorTool):


-- 
https://code.launchpad.net/~aluria/hw-health-charm/+git/hw-health-charm/+merge/369278
Your team Nagios Charm developers is subscribed to branch 
hw-health-charm:master.

-- 
Mailing list: https://launchpad.net/~nagios-charmers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~nagios-charmers
More help   : https://help.launchpad.net/ListHelp

Reply via email to