@@ -29,15 +29,11 @@ import (
2929 "github.com/wso2/product-apim-tooling/import-export-cli/utils"
3030)
3131
32- var mcpServerExportDir string
3332var mcpServerListOffset int //from which index of MCP Server, the MCP Servers will be fetched from APIM server
3433var mcpServerCount int32 // size of MCP Server list to be exported or number of MCP Servers left to be exported from last iteration
3534var mcpServers []utils.MCPServer
36- var exportMCPServersRelatedFilesPath string
37- var exportMCPServersFormat string
3835
3936var startingMCPServerIndexFromList int
40- var mcpServerMainConfigFilePath string
4137
4238// Prepare resumption of previous-halted export-mcp-servers operation
4339func PrepareMCPServerResumption (credential credentials.Credential , exportRelatedFilesPath , cmdResourceTenantDomain , cmdUsername , cmdExportEnvironment string ) {
@@ -145,7 +141,7 @@ func getRevisionsListForMCPServer(accessToken, environment string, mcpServer uti
145141
146142// Do the MCP Server exportation
147143func ExportMCPServers (credential credentials.Credential , exportRelatedFilesPath , environment , tenantDomain , format ,
148- username , exportDir string , preserveStatus , runningExportMCPServerCommand , allRevisions ,
144+ username , mcpServerExportDir string , preserveStatus , runningExportMCPServerCommand , allRevisions ,
149145 preserveCredentials bool ) {
150146
151147 if mcpServerCount == 0 {
@@ -196,7 +192,7 @@ func ExportMCPServers(credential credentials.Credential, exportRelatedFilesPath,
196192 }
197193 }
198194 fmt .Println ("\n Total number of MCP Servers exported: " + cast .ToString (counterSucceededMCPServers ))
199- fmt .Println ("MCP Server export path: " + exportDir )
195+ fmt .Println ("MCP Server export path: " + mcpServerExportDir )
200196 fmt .Println ("\n Command: export-mcp-servers execution completed !" )
201197 }
202198}
@@ -222,11 +218,41 @@ func exportMCPServerAndWriteToZip(mcpServer utils.MCPServer, revisionNumber, acc
222218
223219 if resp .StatusCode () == http .StatusOK {
224220 utils .Logf (utils .LogPrefixInfo + "ResponseStatus: %v\n " , resp .Status ())
225- WriteToZip (exportMCPServerName , exportMCPServerVersion , exportMCPServerRevision , mcpServerExportDir , runningExportMCPServerCommand , resp )
221+ WriteMCPServerToZip (exportMCPServerName , exportMCPServerVersion , exportMCPServerRevision , mcpServerExportDir , runningExportMCPServerCommand , resp )
226222 //write on last-succeeded-mcp-server.log
227223 utils .WriteLastSucceededMCPServerFileData (exportRelatedFilesPath , mcpServer )
228224 } else {
229225 fmt .Printf ("Error exporting MCP Server: %s - %s of Provider: %s\n " , exportMCPServerName , exportMCPServerVersion , exportMCPServerProvider )
230226 utils .PrintErrorResponseAndExit (resp )
231227 }
232228}
229+
230+ // Create the required directory structure to save the exported MCP Servers
231+ func CreateExportMCPServersDirStructure (artifactExportDirectory , cmdResourceTenantDomain , cmdExportEnvironment string , cmdForceStartFromBegin bool ) string {
232+ var resourceTenantDirName = utils .GetMigrationExportTenantDirName (cmdResourceTenantDomain )
233+
234+ var createDirError error
235+ createDirError = utils .CreateDirIfNotExist (artifactExportDirectory )
236+
237+ migrationsArtifactsEnvPath := filepath .Join (artifactExportDirectory , cmdExportEnvironment )
238+ migrationsArtifactsEnvTenantPath := filepath .Join (migrationsArtifactsEnvPath , resourceTenantDirName )
239+ migrationsArtifactsEnvTenantMCPServersPath := filepath .Join (migrationsArtifactsEnvTenantPath , utils .ExportedMCPServersDirName )
240+
241+ createDirError = utils .CreateDirIfNotExist (migrationsArtifactsEnvPath )
242+ createDirError = utils .CreateDirIfNotExist (migrationsArtifactsEnvTenantPath )
243+
244+ if dirExists , _ := utils .IsDirExists (migrationsArtifactsEnvTenantMCPServersPath ); dirExists {
245+ if cmdForceStartFromBegin {
246+ utils .RemoveDirectory (migrationsArtifactsEnvTenantMCPServersPath )
247+ createDirError = utils .CreateDir (migrationsArtifactsEnvTenantMCPServersPath )
248+ }
249+ } else {
250+ createDirError = utils .CreateDir (migrationsArtifactsEnvTenantMCPServersPath )
251+ }
252+
253+ if createDirError != nil {
254+ utils .HandleErrorAndExit ("Error in creating directory structure for the MCP Server export for migration ." ,
255+ createDirError )
256+ }
257+ return migrationsArtifactsEnvTenantMCPServersPath
258+ }
0 commit comments