39 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # vi: ts=4 expandtab
 | |
| #
 | |
| #    Copyright (C) 2009-2010 Canonical Ltd.
 | |
| #    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | |
| #
 | |
| #    Author: Scott Moser <scott.moser@canonical.com>
 | |
| #    Author: Juerg Haefliger <juerg.haefliger@hp.com>
 | |
| #
 | |
| #    This program is free software: you can redistribute it and/or modify
 | |
| #    it under the terms of the GNU General Public License version 3, as
 | |
| #    published by the Free Software Foundation.
 | |
| #
 | |
| #    This program is distributed in the hope that it will be useful,
 | |
| #    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| #    GNU General Public License for more details.
 | |
| #
 | |
| #    You should have received a copy of the GNU General Public License
 | |
| #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | |
| 
 | |
| import os
 | |
| 
 | |
| from cloudinit import util
 | |
| 
 | |
| 
 | |
| def handle(name, cfg, cloud, log, _args):
 | |
|     if "runcmd" not in cfg:
 | |
|         log.debug(("Skipping module named %s,"
 | |
|                    " no 'runcmd' key in configuration"), name)
 | |
|         return
 | |
| 
 | |
|     out_fn = os.path.join(cloud.get_ipath('scripts'), "runcmd")
 | |
|     cmd = cfg["runcmd"]
 | |
|     try:
 | |
|         content = util.shellify(cmd)
 | |
|         util.write_file(cloud.paths.join(False, out_fn), content, 0700)
 | |
|     except:
 | |
|         util.logexc(log, "Failed to shellify %s into file %s", cmd, out_fn)
 | 
