/silverlining/commands/diff.py

https://bitbucket.org/ianb/silverlining/ · Python · 25 lines · 22 code · 2 blank · 1 comment · 2 complexity · 3a4f5cb0e6949fafca6021549e701563 MD5 · raw file

  1. """Update/deploy an application"""
  2. import os
  3. import random
  4. from silversupport.shell import ssh
  5. from silversupport.appconfig import AppConfig
  6. def command_diff(config):
  7. app_config = AppConfig(os.path.join(config.args.dir, 'app.ini'),
  8. app_name=config.args.app_name)
  9. tmp_location = '/tmp/temp-diff-app.%s.%s.%s' % (
  10. app_config.app_name, random.randint(1, 100000), os.getpid())
  11. if config.args.instance_name:
  12. inst = '--instance-name=%s' % config.args.instance_name
  13. else:
  14. inst = ''
  15. ssh('www-mgr', config.node_hostname,
  16. '/usr/local/share/silverlining/mgr-scripts/prepare-temp.py %s %s %s %s'
  17. % (tmp_location, config.node_hostname, app_config.app_name,
  18. inst))
  19. app_config.sync('www-mgr@' + config.node_hostname, tmp_location)
  20. ssh('www-mgr', config.node_hostname,
  21. '/usr/local/share/silverlining/mgr-scripts/app-diff.py %s %s %s %s'
  22. % (tmp_location, config.node_hostname, app_config.app_name,
  23. inst))