undo remote path public

This commit is contained in:
Shreyas Goenka 2023-06-05 18:45:21 +02:00
parent 49f7969363
commit 298fed28e5
No known key found for this signature in database
GPG Key ID: 92A07DF49CCB0622
5 changed files with 29 additions and 35 deletions

View File

@ -54,9 +54,10 @@ var importDirCmd = &cobra.Command{
// Initialize error wait group, and spawn the progress event emitter inside
// the error wait group
group, ctx := errgroup.WithContext(ctx)
eventsChannel := s.Events()
group.Go(
func() error {
return renderSyncEvents(ctx, s.Events(), s)
return renderSyncEvents(ctx, eventsChannel, s)
})
// Start Uploading local files

View File

@ -53,11 +53,12 @@ func renderSyncEvents(ctx context.Context, eventChannel <-chan sync.Event, synce
return nil
}
// TODO: test this works with windows paths
remotePath, err := syncer.RemotePath(progressEvent.Path)
if err != nil {
return err
}
err = cmdio.Render(ctx, newUploadCompleteEvent(progressEvent.Path, remotePath))
// remotePath, err := syncer.RemotePath(progressEvent.Path)
// if err != nil {
// return err
// }
remotePath := "TODO"
err := cmdio.Render(ctx, newUploadCompleteEvent(progressEvent.Path, remotePath))
if err != nil {
return err
}

View File

@ -49,7 +49,7 @@ func Create(repoRoot, localRoot string, w *databricks.WorkspaceClient, opts *Rep
}, nil
}
func (r *RepoFiles) RemotePath(relativePath string) (string, error) {
func (r *RepoFiles) remotePath(relativePath string) (string, error) {
fullPath := path.Join(r.repoRoot, relativePath)
cleanFullPath := path.Clean(fullPath)
if !strings.HasPrefix(cleanFullPath, r.repoRoot) {
@ -82,7 +82,7 @@ func (r *RepoFiles) writeRemote(ctx context.Context, relativePath string, conten
// files, folders and notebooks might not have been cleaned up and they
// can't overwrite each other. If a folder `foo` exists, then attempts to
// PUT a file `foo` will fail
remotePath, err := r.RemotePath(relativePath)
remotePath, err := r.remotePath(relativePath)
if err != nil {
return err
}

View File

@ -14,66 +14,66 @@ func TestRepoFilesRemotePath(t *testing.T) {
repoFiles, err := Create(repoRoot, "/doraemon/foo/bar", nil, nil)
require.NoError(t, err)
remotePath, err := repoFiles.RemotePath("a/b/c")
remotePath, err := repoFiles.remotePath("a/b/c")
assert.NoError(t, err)
assert.Equal(t, repoRoot+"/a/b/c", remotePath)
remotePath, err = repoFiles.RemotePath("a/b/../d")
remotePath, err = repoFiles.remotePath("a/b/../d")
assert.NoError(t, err)
assert.Equal(t, repoRoot+"/a/d", remotePath)
remotePath, err = repoFiles.RemotePath("a/../c")
remotePath, err = repoFiles.remotePath("a/../c")
assert.NoError(t, err)
assert.Equal(t, repoRoot+"/c", remotePath)
remotePath, err = repoFiles.RemotePath("a/b/c/.")
remotePath, err = repoFiles.remotePath("a/b/c/.")
assert.NoError(t, err)
assert.Equal(t, repoRoot+"/a/b/c", remotePath)
remotePath, err = repoFiles.RemotePath("a/b/c/d/./../../f/g")
remotePath, err = repoFiles.remotePath("a/b/c/d/./../../f/g")
assert.NoError(t, err)
assert.Equal(t, repoRoot+"/a/b/f/g", remotePath)
_, err = repoFiles.RemotePath("..")
_, err = repoFiles.remotePath("..")
assert.ErrorContains(t, err, `relative file path is not inside repo root: ..`)
_, err = repoFiles.RemotePath("a/../..")
_, err = repoFiles.remotePath("a/../..")
assert.ErrorContains(t, err, `relative file path is not inside repo root: a/../..`)
_, err = repoFiles.RemotePath("./../.")
_, err = repoFiles.remotePath("./../.")
assert.ErrorContains(t, err, `relative file path is not inside repo root: ./../.`)
_, err = repoFiles.RemotePath("/./.././..")
_, err = repoFiles.remotePath("/./.././..")
assert.ErrorContains(t, err, `relative file path is not inside repo root: /./.././..`)
_, err = repoFiles.RemotePath("./../.")
_, err = repoFiles.remotePath("./../.")
assert.ErrorContains(t, err, `relative file path is not inside repo root: ./../.`)
_, err = repoFiles.RemotePath("./..")
_, err = repoFiles.remotePath("./..")
assert.ErrorContains(t, err, `relative file path is not inside repo root: ./..`)
_, err = repoFiles.RemotePath("./../../..")
_, err = repoFiles.remotePath("./../../..")
assert.ErrorContains(t, err, `relative file path is not inside repo root: ./../../..`)
_, err = repoFiles.RemotePath("./../a/./b../../..")
_, err = repoFiles.remotePath("./../a/./b../../..")
assert.ErrorContains(t, err, `relative file path is not inside repo root: ./../a/./b../../..`)
_, err = repoFiles.RemotePath("../..")
_, err = repoFiles.remotePath("../..")
assert.ErrorContains(t, err, `relative file path is not inside repo root: ../..`)
_, err = repoFiles.RemotePath(".//a/..//./b/..")
_, err = repoFiles.remotePath(".//a/..//./b/..")
assert.ErrorContains(t, err, `file path relative to repo root cannot be empty`)
_, err = repoFiles.RemotePath("a/b/../..")
_, err = repoFiles.remotePath("a/b/../..")
assert.ErrorContains(t, err, "file path relative to repo root cannot be empty")
_, err = repoFiles.RemotePath("")
_, err = repoFiles.remotePath("")
assert.ErrorContains(t, err, "file path relative to repo root cannot be empty")
_, err = repoFiles.RemotePath(".")
_, err = repoFiles.remotePath(".")
assert.ErrorContains(t, err, "file path relative to repo root cannot be empty")
_, err = repoFiles.RemotePath("/")
_, err = repoFiles.remotePath("/")
assert.ErrorContains(t, err, "file path relative to repo root cannot be empty")
}

View File

@ -135,14 +135,6 @@ func (s *Sync) notifyComplete(ctx context.Context, d diff) {
s.seq++
}
func (s *Sync) RemotePath(localPath string) (string, error) {
relativePath, ok := s.snapshot.LocalToRemoteNames[localPath]
if !ok {
return "", fmt.Errorf("could not find remote path for %s", localPath)
}
return s.repoFiles.RemotePath(relativePath)
}
func (s *Sync) RunOnce(ctx context.Context) error {
// tradeoff: doing portable monitoring only due to macOS max descriptor manual ulimit setting requirement
// https://github.com/gorakhargosh/watchdog/blob/master/src/watchdog/observers/kqueue.py#L394-L418