Skip to content

Commit cb5900e

Browse files
authored
Exporter: improve emitting of directories (#3462)
This includes: * Don't try to emit directories for SQL objects if `directories` service isn't enabled * Don't split/join strings to extract directory path - just do search from the right
1 parent 0b183af commit cb5900e

File tree

2 files changed

+5
-14
lines changed

2 files changed

+5
-14
lines changed

exporter/importables.go

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1526,17 +1526,13 @@ var resourcesMap map[string]importable = map[string]importable{
15261526
"notebook_"+ic.Importables["databricks_notebook"].Name(ic, r.Data))
15271527
// TODO: it's not completely correct condition - we need to make emit smarter -
15281528
// emit only if permissions are different from their parent's permission.
1529-
if ic.meAdmin {
1530-
directorySplits := strings.Split(r.ID, "/")
1531-
directorySplits = directorySplits[:len(directorySplits)-1]
1532-
directoryPath := strings.Join(directorySplits, "/")
1533-
1529+
if idx := strings.LastIndex(r.ID, "/"); idx != -1 {
1530+
directoryPath := r.ID[:idx]
15341531
ic.Emit(&resource{
15351532
Resource: "databricks_directory",
15361533
ID: directoryPath,
15371534
})
15381535
}
1539-
15401536
return r.Data.Set("source", fileName)
15411537
},
15421538
ShouldOmitField: shouldOmitMd5Field,
@@ -1583,11 +1579,8 @@ var resourcesMap map[string]importable = map[string]importable{
15831579

15841580
// TODO: it's not completely correct condition - we need to make emit smarter -
15851581
// emit only if permissions are different from their parent's permission.
1586-
if ic.meAdmin {
1587-
directorySplits := strings.Split(r.ID, "/")
1588-
directorySplits = directorySplits[:len(directorySplits)-1]
1589-
directoryPath := strings.Join(directorySplits, "/")
1590-
1582+
if idx := strings.LastIndex(r.ID, "/"); idx != -1 {
1583+
directoryPath := r.ID[:idx]
15911584
ic.Emit(&resource{
15921585
Resource: "databricks_directory",
15931586
ID: directoryPath,
@@ -2072,9 +2065,7 @@ var resourcesMap map[string]importable = map[string]importable{
20722065
if r.ID == "/Shared" || r.ID == "/Users" || ic.IsUserOrServicePrincipalDirectory(r.ID, "/Users", true) {
20732066
r.Mode = "data"
20742067
}
2075-
20762068
return nil
2077-
20782069
},
20792070
Body: resourceOrDataBlockBody,
20802071
Depends: []reference{

exporter/util.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1071,7 +1071,7 @@ func (ic *importContext) enableListing(listing string) {
10711071
}
10721072

10731073
func (ic *importContext) emitSqlParentDirectory(parent string) {
1074-
if parent == "" {
1074+
if parent == "" || !ic.isServiceEnabled("directories") {
10751075
return
10761076
}
10771077
res := sqlParentRegexp.FindStringSubmatch(parent)

0 commit comments

Comments
 (0)