Ejemplo n.º 1
0
 def test_get_sftp_conn_fail(
     self,
     mock_get_local_user,
     mock_get_ssh_dir,
     mock_get_host_keys,
     mock_get_ssh_keys,
         mock_SFTPClient):
     config = {
         'remote_location': 'sftp://127.0.0.1:22/srv/www/saupdate',
         'remote_username': mock.sentinel.remote_username
     }
     queue = mock.Mock(spec=Queue)
     queue.get.return_value = mock.Mock()
     # queue.empty.side_effect = [False, False]
     queue.empty.return_value = True
     mock_get_ssh_keys.return_value = queue
     mock_get_local_user.return_value = mock.sentinel.remote_username
     mock_SFTPClient.from_transport.return_value = mock.Mock()
     with self.assertRaises(SaChannelUpdateTransportError):
         get_sftp_conn(config)
     mock_get_local_user.assert_called_once_with(
         mock.sentinel.remote_username
     )
     mock_get_ssh_dir.assert_called_once_with(
         config,
         mock_get_local_user.return_value,
     )
     mock_get_host_keys.assert_called_once_with(
         '127.0.0.1',
         mock_get_ssh_dir.return_value,
     )
Ejemplo n.º 2
0
 def test_get_sftp_conn_fail(self, mock_get_local_user, mock_get_ssh_dir,
                             mock_get_host_keys, mock_get_ssh_keys,
                             mock_SFTPClient):
     config = {
         'remote_location': 'sftp://127.0.0.1:22/srv/www/saupdate',
         'remote_username': mock.sentinel.remote_username
     }
     queue = mock.Mock(spec=Queue)
     queue.get.return_value = mock.Mock()
     # queue.empty.side_effect = [False, False]
     queue.empty.return_value = True
     mock_get_ssh_keys.return_value = queue
     mock_get_local_user.return_value = mock.sentinel.remote_username
     mock_SFTPClient.from_transport.return_value = mock.Mock()
     with self.assertRaises(SaChannelUpdateTransportError):
         get_sftp_conn(config)
     mock_get_local_user.assert_called_once_with(
         mock.sentinel.remote_username)
     mock_get_ssh_dir.assert_called_once_with(
         config,
         mock_get_local_user.return_value,
     )
     mock_get_host_keys.assert_called_once_with(
         '127.0.0.1',
         mock_get_ssh_dir.return_value,
     )
Ejemplo n.º 3
0
 def test_get_sftp_conn_exp(
     self,
     mock_get_local_user,
     mock_get_ssh_dir,
     mock_get_host_keys,
     mock_get_ssh_keys,
     mock_Transport,
     mock_PKey,
         mock_SFTPClient):
     config = {
         'remote_location': 'sftp://127.0.0.1/srv/www/saupdate',
         'remote_username': mock.sentinel.remote_username
     }
     queue = mock.Mock(spec=Queue)
     queue.get.return_value = mock.Mock()
     queue.empty.side_effect = [False, False, True]
     queue.empty.return_value = False
     mock_get_ssh_keys.return_value = queue
     mock_get_local_user.return_value = mock.sentinel.remote_username
     mock_SFTPClient.from_transport.side_effect = SSHException
     mock_Transport.return_value.connect.return_value = True
     with self.assertRaises(SaChannelUpdateTransportError):
         get_sftp_conn(config)
     mock_get_local_user.assert_called_once_with(
         mock.sentinel.remote_username
     )
     mock_get_ssh_dir.assert_called_once_with(
         config,
         mock_get_local_user.return_value,
     )
     mock_get_host_keys.assert_called_once_with(
         '127.0.0.1',
         mock_get_ssh_dir.return_value,
     )
     mock_get_ssh_keys.assert_called_once_with(
         mock_get_ssh_dir.return_value,
     )
     mock_Transport.assert_called_once_with(
         (
             '127.0.0.1',
             22,
         )
     )
     mock_PKey.from_private_key_file.assert_called_with(
         mock_get_ssh_keys.return_value.get(),
     )
     mock_Transport.return_value.connect.assert_called_with(
         hostkey=mock_get_host_keys.return_value,
         username=mock_get_local_user.return_value,
         password=None,
         pkey=mock_PKey.from_private_key_file.return_value,
     )
     mock_SFTPClient.from_transport.assert_called_with(
         mock_Transport.return_value,
     )
Ejemplo n.º 4
0
 def test_get_sftp_conn_exp(self, mock_get_local_user, mock_get_ssh_dir,
                            mock_get_host_keys, mock_get_ssh_keys,
                            mock_Transport, mock_PKey, mock_SFTPClient):
     config = {
         'remote_location': 'sftp://127.0.0.1/srv/www/saupdate',
         'remote_username': mock.sentinel.remote_username
     }
     queue = mock.Mock(spec=Queue)
     queue.get.return_value = mock.Mock()
     queue.empty.side_effect = [False, False, True]
     queue.empty.return_value = False
     mock_get_ssh_keys.return_value = queue
     mock_get_local_user.return_value = mock.sentinel.remote_username
     mock_SFTPClient.from_transport.side_effect = SSHException
     mock_Transport.return_value.connect.return_value = True
     with self.assertRaises(SaChannelUpdateTransportError):
         get_sftp_conn(config)
     mock_get_local_user.assert_called_once_with(
         mock.sentinel.remote_username)
     mock_get_ssh_dir.assert_called_once_with(
         config,
         mock_get_local_user.return_value,
     )
     mock_get_host_keys.assert_called_once_with(
         '127.0.0.1',
         mock_get_ssh_dir.return_value,
     )
     mock_get_ssh_keys.assert_called_once_with(
         mock_get_ssh_dir.return_value, )
     mock_Transport.assert_called_once_with((
         '127.0.0.1',
         22,
     ))
     mock_PKey.from_private_key_file.assert_called_with(
         mock_get_ssh_keys.return_value.get(), )
     mock_Transport.return_value.connect.assert_called_with(
         hostkey=mock_get_host_keys.return_value,
         username=mock_get_local_user.return_value,
         password=None,
         pkey=mock_PKey.from_private_key_file.return_value,
     )
     mock_SFTPClient.from_transport.assert_called_with(
         mock_Transport.return_value, )
Ejemplo n.º 5
0
def upload(config, remote_loc, u_filename):
    """Upload the files"""
    rcode = False
    try:
        sftp, transport = get_sftp_conn(config)
        remote_dir = get_remote_path(remote_loc)
        for part in ['sha1', 'asc']:
            local_file = '%s.%s' % (u_filename, part)
            remote_file = os.path.join(remote_dir, local_file)
            sftp.put(local_file, remote_file)
        sftp.put(remote_dir, os.path.join(remote_dir, u_filename))
        rcode = True
    except BaseException:
        pass
    finally:
        if 'transport' in locals():
            transport.close()
    return rcode
Ejemplo n.º 6
0
def upload(config, remote_loc, u_filename):
    """Upload the files"""
    rcode = False
    try:
        sftp, transport = get_sftp_conn(config)
        remote_dir = get_remote_path(remote_loc)
        for part in ['sha1', 'asc']:
            local_file = '%s.%s' % (u_filename, part)
            remote_file = os.path.join(remote_dir, local_file)
            sftp.put(local_file, remote_file)
        sftp.put(remote_dir, os.path.join(remote_dir, u_filename))
        rcode = True
    except BaseException:
        pass
    finally:
        if 'transport' in locals():
            transport.close()
    return rcode