def change_repositories(node, repos):
    ssh.remove_all_files_from_dirs(['/etc/apt/sources.list.d',
                                    '/etc/apt/preferences.d'], node)
    sftp = ssh.sftp(node)
    for repo in repos:
        filename_source, content_source = apt.create_repo_source(repo)
        ssh.write_content_to_file(sftp, filename_source, content_source)
        if repo['priority']:
            filename_pref, content_pref = apt.create_repo_preferences(repo)
            ssh.write_content_to_file(sftp, filename_pref, content_pref)
    ssh.call(['apt-get', 'update'], node=node)
Esempio n. 2
0
def test_remove_all_files_from_dirs(mocker, dir_names, lists_files):
    node = mock.Mock()
    mock_sftp = mocker.patch("octane.util.ssh.sftp")
    mock_list_dir = mocker.patch('paramiko.SFTPClient.listdir')
    mock_list_dir.side_effect = lists_files
    mock_unlink = mocker.patch("paramiko.SFTPClient.unlink")
    ssh.remove_all_files_from_dirs(dir_names, node)
    mock_sftp.assert_called_once_with(node)
    mock_list_dir.call_args_list == [
        mock.call(dir_name) for dir_name in dir_names
    ]
    mock_unlink.call_args_list == [
        mock.call(os.path.join(dir_name, file)
                  for dir_name, files in zip(dir_names, lists_files)
                  for file in files)
    ]