Madhuvishy has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/337785 )

Change subject: labstore: Read directory size diamond collector config from 
external file
......................................................................


labstore: Read directory size diamond collector config from external file

Change-Id: I599df0119bab8732a76e20d655139e2714568106
---
A modules/labstore/files/monitor/DirectorySizeCollector.conf
M modules/labstore/files/monitor/dir_size_tracker.py
M modules/role/manifests/labs/nfs/secondary.pp
3 files changed, 39 insertions(+), 44 deletions(-)

Approvals:
  Madhuvishy: Verified; Looks good to me, approved



diff --git a/modules/labstore/files/monitor/DirectorySizeCollector.conf 
b/modules/labstore/files/monitor/DirectorySizeCollector.conf
new file mode 100644
index 0000000..8d34e77
--- /dev/null
+++ b/modules/labstore/files/monitor/DirectorySizeCollector.conf
@@ -0,0 +1,32 @@
+# DirectorySize Diamond Collector configuration
+# This file is managed by Puppet.
+
+enabled = true
+hostname = labstore-secondary
+interval = 86400
+path_prefix = labstore
+
+[dir_size_collector_config]
+  [[misc_home]]
+  base_glob_pattern = /exp/project/*/home
+  base_glob_exclude = /tools/
+  build_prefix_from_dir_path = True
+  build_prefix_depth = 2
+  custom_prefix = misc
+
+  [[misc_project]]
+  base_glob_pattern = /exp/project/*/project
+  base_glob_exclude = /tools/
+  build_prefix_from_dir_path = True
+  build_prefix_depth = 2
+  custom_prefix = misc
+
+  [[tools_home]]
+  base_glob_pattern = exp/project/tools/home/*
+  build_prefix_from_dir_path = True
+  build_prefix_depth = 2
+
+  [[tools_project]]
+  base_glob_pattern = exp/project/tools/project/*
+  build_prefix_from_dir_path = True
+  build_prefix_depth = 2
diff --git a/modules/labstore/files/monitor/dir_size_tracker.py 
b/modules/labstore/files/monitor/dir_size_tracker.py
index 0291c2f..4a9b6b6 100644
--- a/modules/labstore/files/monitor/dir_size_tracker.py
+++ b/modules/labstore/files/monitor/dir_size_tracker.py
@@ -17,7 +17,8 @@
         config_help.update({
             'dir_size_collector_config':
                 '''
-                List of dicts with optional keys:
+                Nested dict with format {<name>: <dict_of_keys>}, where 
dict_of_keys
+                is a dict with one or more of the following optional keys:
 
                 base_glob_pattern: Glob pattern to match directories to track 
size for
                                    e.g. /srv/misc/shared/*/home
@@ -39,13 +40,7 @@
         """
         config = super(DirectorySizeCollector, self).get_default_config()
         config.update({
-            'dir_size_collector_config': [
-                {'base_glob_pattern': '',
-                 'base_glob_exclude': '',
-                 'build_prefix_from_dir_path': False,
-                 'build_prefix_depth': None,
-                 'custom_prefix': ''}
-            ]
+            'dir_size_collector_config': {}
         })
         return config
 
@@ -98,7 +93,7 @@
         """
         Publish directory sizes in kilobytes
         """
-        for config in self.config['dir_size_collector_config']:
+        for config in self.config['dir_size_collector_config'].values():
             glob_pattern = config.get('base_glob_pattern', '')
             glob_exclude = config.get('base_glob_exclude', '')
             for directory in self.directories(glob_pattern, glob_exclude):
diff --git a/modules/role/manifests/labs/nfs/secondary.pp 
b/modules/role/manifests/labs/nfs/secondary.pp
index 794d022..fa5ee53 100644
--- a/modules/role/manifests/labs/nfs/secondary.pp
+++ b/modules/role/manifests/labs/nfs/secondary.pp
@@ -112,42 +112,10 @@
             privileges => ['ALL = NOPASSWD: /usr/bin/timeout 10m /usr/bin/nice 
-n 19 /usr/bin/ionice -c 3 /usr/bin/du -k -s'],
         }
 
-        $dir_size_collector_config = [
-            {
-                base_glob_pattern          => '/exp/project/*/home',
-                base_glob_exclude          => '/tools/',
-                build_prefix_from_dir_path => True,
-                build_prefix_depth         => 2,
-                custom_prefix              => 'misc',
-            },
-            {
-                base_glob_pattern          => '/exp/project/*/project',
-                base_glob_exclude          => '/tools/',
-                build_prefix_from_dir_path => True,
-                build_prefix_depth         => 2,
-                custom_prefix              => 'misc',
-            },
-            {
-                base_glob_pattern          => '/exp/project/tools/home/*',
-                build_prefix_from_dir_path => True,
-                build_prefix_depth         => 2,
-            },
-            {
-                base_glob_pattern          => '/exp/project/tools/project/*',
-                build_prefix_from_dir_path => True,
-                build_prefix_depth         => 2,
-            },
-        ]
-
         diamond::collector { 'DirectorySize':
-            source   => 
'puppet:///modules/labstore/monitor/dir_size_tracker.py',
-            settings => {
-                interval                  => 86400,
-                hostname                  => 'labstore-secondary',
-                path_prefix               => 'labstore',
-                dir_size_collector_config => $dir_size_collector_config,
-            },
-            require  => Sudo::User['diamond_dir_size_tracker'],
+            source      => 
'puppet:///modules/labstore/monitor/dir_size_tracker.py',
+            config_file => 
'puppet:///modules/labstore/monitor/DirectorySizeCollector.conf',
+            require     => Sudo::User['diamond_dir_size_tracker'],
         }
     }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/337785
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I599df0119bab8732a76e20d655139e2714568106
Gerrit-PatchSet: 3
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Madhuvishy <[email protected]>
Gerrit-Reviewer: Madhuvishy <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to