-
Notifications
You must be signed in to change notification settings - Fork 384
Closed
Description
Hey there again, I'm really not sure what's special about this particular command, but it's tripping up the run() function.
Here's my code:
import os
from invoke import task, run
@task
def forge():
proxy = 'http://192.168.0.1:80/'
os.environ.update({
'http_proxy': proxy,
'https_proxy': proxy
})
cmd = 'puppet module install --target-dir /var/puppet/forgey puppetlabs-motd'
print cmd
run(cmd)And the output:
puppet module install --target-dir /var/puppet/forgey puppetlabs-motd
Warning: Setting manifest is deprecated in puppet.conf. See http://links.puppetlabs.com/env-settings-deprecations
(at /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:1095:in `issue_deprecations')
Warning: Setting modulepath is deprecated in puppet.conf. See http://links.puppetlabs.com/env-settings-deprecations
(at /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:1095:in `issue_deprecations')
Warning: Setting config_version is deprecated in puppet.conf. See http://links.puppetlabs.com/env-settings-deprecations
(at /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:1095:in `issue_deprecations')
Notice: Preparing to install into /var/puppet/forgey ...
Notice: Created target directory /var/puppet/forgey
Notice: Downloading from https://forgeapi.puppetlabs.com ...
Notice: Installing -- do not interrupt ...
Traceback (most recent call last):
File "./bin/invoke", line 12, in <module>
invoke.cli.main()
File "/root/puppet-pusher/lib/invoke/invoke/cli.py", line 438, in main
dispatch(sys.argv)
File "/root/puppet-pusher/lib/invoke/invoke/cli.py", line 431, in dispatch
return executor.execute(*tasks)
File "/root/puppet-pusher/lib/invoke/invoke/executor.py", line 100, in execute
task=task, name=name, args=args, kwargs=kwargs, config=config
File "/root/puppet-pusher/lib/invoke/invoke/executor.py", line 153, in _execute
result = task(*args, **kwargs)
File "/root/puppet-pusher/lib/invoke/invoke/tasks.py", line 111, in __call__
result = self.body(*args, **kwargs)
File "/root/puppet-pusher/tasks.py", line 14, in forge
run(cmd)
File "/root/puppet-pusher/lib/invoke/invoke/__init__.py", line 23, in run
return Context().run(command, **kwargs)
File "/root/puppet-pusher/lib/invoke/invoke/context.py", line 53, in run
return runner_class(context=self).run(command, **kwargs)
File "/root/puppet-pusher/lib/invoke/invoke/runners.py", line 262, in run
raise ThreadException(exceptions)
invoke.exceptions.ThreadException:
Saw 1 exceptions within threads (UnicodeEncodeError):
Thread args: {'args': [<functools.partial object at 0x1c86f70>,
<open file '<stdout>', mode 'w' at 0x7effba142150>,
[u'\x1b[mNotice: Preparing to install into /var/puppet/forgey ...\x1b[0m\n',
u'\x1b[mNotice: Created target directory /var/puppet/forgey\x1b[0m\n',
u'\x1b[mNotice: Downloading from https://forgeapi.puppetlabs.com ...\x1b[0m\n',
u'\x1b[mNotice: Installing -- do not interrupt ...\x1b[0m\n'],
False],
'target': <bound method Local.io of <invoke.runners.Local object at 0x1c91b90>>}
Traceback (most recent call last):
File "/root/puppet-pusher/lib/invoke/invoke/runners.py", line 82, in run
super(_IOThread, self).run()
File "/usr/lib64/python2.6/threading.py", line 484, in run
self.__target(*self.__args, **self.__kwargs)
File "/root/puppet-pusher/lib/invoke/invoke/runners.py", line 328, in io
output.write(data)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 19-27: ordinal not in range(128)
This system is using:
- Python 2.6.6
- Puppet 3.6.2
- Invoke (master)
Regular output of the command looks like this:
Warning: Setting manifest is deprecated in puppet.conf. See http://links.puppetlabs.com/env-settings-deprecations
(at /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:1095:in `issue_deprecations')
Warning: Setting modulepath is deprecated in puppet.conf. See http://links.puppetlabs.com/env-settings-deprecations
(at /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:1095:in `issue_deprecations')
Warning: Setting config_version is deprecated in puppet.conf. See http://links.puppetlabs.com/env-settings-deprecations
(at /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:1095:in `issue_deprecations')
Notice: Preparing to install into /var/puppet/forgey ...
Notice: Created target directory /var/puppet/forgey
Notice: Downloading from https://forgeapi.puppetlabs.com ...
Notice: Installing -- do not interrupt ...
/var/puppet/forgey
└── puppetlabs-motd (v1.2.0)
Any ideas?
Cheers
Fotis
Metadata
Metadata
Assignees
Labels
No labels