def install_packages(*roles): """Install packages for the given roles.""" roles = list(roles) if roles == ["all"]: roles = SERVER_ROLES if "base" not in roles: roles.insert(0, "base") config_file = os.path.join(CONF_ROOT, u"packages.conf") config = ConfigParser.SafeConfigParser() config.read(config_file) for role in roles: if config.has_section(role): # Get ppas if config.has_option(role, "ppas"): for ppa in config.get(role, "ppas").split(" "): system.add_ppa(ppa, update=False) # Get sources if config.has_option(role, "sources"): for section in config.get(role, "sources").split(" "): source = config.get(section, "source") key = config.get(section, "key") system.add_apt_source(source=source, key=key, update=False) sudo(u"apt-get update") sudo(u"apt-get install -y %s" % config.get(role, "packages")) sudo(u"apt-get upgrade -y")
def test_add_apt_source_no_update(self): "Add apt souce without updating apt sources." with patch('argyle.system.update_apt_sources') as update: system.add_apt_source("deb http://example.com/deb lucid main", update=False) # Apt sources should not be updated self.assertFalse(update.called)
def test_add_apt_source_no_key(self): "Add apt souce without key url." with patch('argyle.system.update_apt_sources') as update: system.add_apt_source("deb http://example.com/deb lucid main") # Source file should be backed up self.assertSudoCommand('cp /etc/apt/sources.list{,.bak}') files = self.mocks['files'] self.assertTrue(files.append.called) args, kwargs = files.append.call_args source_list = args[0] new_source = args[1] self.assertEqual(source_list, '/etc/apt/sources.list') self.assertEqual(new_source, 'deb http://example.com/deb lucid main') # Apt sources should be updated self.assertTrue(update.called)
def test_add_apt_source_with_key(self): "Add apt souce with key url." with patch('argyle.system.update_apt_sources') as update: source = "deb http://example.com/deb lucid main" key = "http://example.com/key" system.add_apt_source(source, key) # Key file should be added self.assertSudoCommand('wget -q http://example.com/key -O - | sudo apt-key add -') files = self.mocks['files'] self.assertTrue(files.append.called) args, kwargs = files.append.call_args source_list = args[0] new_source = args[1] self.assertEqual(source_list, '/etc/apt/sources.list') self.assertEqual(new_source, source) # Apt sources should be updated self.assertTrue(update.called)
def test_add_apt_source_with_key(self): "Add apt souce with key url." with patch('argyle.system.update_apt_sources') as update: source = "deb http://example.com/deb lucid main" key = "http://example.com/key" system.add_apt_source(source, key) # Key file should be added self.assertSudoCommand( 'wget -q http://example.com/key -O - | sudo apt-key add -') files = self.mocks['files'] self.assertTrue(files.append.called) args, kwargs = files.append.call_args source_list = args[0] new_source = args[1] self.assertEqual(source_list, '/etc/apt/sources.list') self.assertEqual(new_source, source) # Apt sources should be updated self.assertTrue(update.called)
def install_packages(*roles): """Install packages for the given roles.""" config_file = os.path.join(CONF_ROOT, u'packages.conf') config = ConfigParser.SafeConfigParser() config.read(config_file) for role in roles: if config.has_section(role): # Get ppas if config.has_option(role, 'ppas'): for ppa in config.get(role, 'ppas').split(' '): system.add_ppa(ppa, update=False) # Get sources if config.has_option(role, 'sources'): for section in config.get(role, 'sources').split(' '): source = config.get(section, 'source') key = config.get(section, 'key') system.add_apt_source(source=source, key=key, update=False) # sudo(u"apt-get update") sudo(u"apt-get install -y %s" % config.get(role, 'packages'))
def install_packages(*roles): """Install packages for the given roles.""" config_file = os.path.join(CONF_ROOT, u'packages.conf') config = ConfigParser.SafeConfigParser() config.read(config_file) for role in roles: if config.has_section(role): # Get ppas if config.has_option(role, 'ppas'): for ppa in config.get(role, 'ppas').split(' '): system.add_ppa(ppa, update=False) # Get sources if config.has_option(role, 'sources'): for section in config.get(role, 'sources').split(' '): source = config.get(section, 'source') key = config.get(section, 'key') system.add_apt_source(source=source, key=key, update=False) sudo(u"apt-get update") sudo(u"apt-get install -y %s" % config.get(role, 'packages')) sudo(u"apt-get upgrade -y")