@ -1,76 +1,60 @@
#!/usr/bin/python
#!/usr/bin/python
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
#
#
# importfoldertree.py
# importfoldertree.py March 2018
# March 20187
#
#
# Pass in a directory and this tool will import the complete viya folder
# Pass in a directory and this tool will import all the json files in the directory. It depends on the admin CLI
#
#
# Change History
# Change History
#
#
#
#
# Copyright © 2019, SAS Institute Inc., Cary, NC, USA. All Rights Reserved.
# Copyright © 2019, SAS Institute Inc., Cary, NC, USA. All Rights Reserved.
#
#
# Licensed under the Apache License, Version 2.0 (the License);
# Licensed under the Apache License, Version 2.0 (the License); you may not use this file except in compliance with the License.
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
# You may obtain a copy of the License at
#
#
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
# OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
#
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Import Python modules
# Import Python modules
import argparse , sys , subprocess , os , json
import argparse , sys , subprocess , uuid , string , time , os , json
from sharedfunctions import callrestapi
from sharedfunctions import callrestapi
# get python version
version = int ( str ( sys . version_info [ 0 ] ) )
# CHANGE THIS VARIABLE IF YOUR CLI IS IN A DIFFERENT LOCATION
# CHANGE THIS VARIABLE IF YOUR CLI IS IN A DIFFERENT LOCATION
clidir = ' /opt/sas/viya/home/bin/ '
clidir = ' /opt/sas/viya/home/bin/ '
# get input parameters
# get input parameters
parser = argparse . ArgumentParser ( description = " Delete a folder and its sub-folders " )
parser = argparse . ArgumentParser ( description = " Delete a folder and its sub-folders " )
parser . add_argument ( " -d " , " --directory " , help = " Directory for Ex port " , required = ' True ' )
parser . add_argument ( " -d " , " --directory " , help = " Directory that contains JSON files to im port " , required = ' True ' )
args = parser . parse_args ( )
args = parser . parse_args ( )
basedir = args . directory
basedir = args . directory
# check that directory exists
if os . path . isdir ( basedir ) :
# loop files in the directory
for filename in os . listdir ( basedir ) :
if filename . lower ( ) . endswith ( ' .json ' ) :
# upload the json package
command = clidir + ' sas-admin transfer upload --file ' + os . path . join ( basedir , filename ) + ' > /tmp/packageid.json '
print ( command )
subprocess . call ( command , shell = True )
#print the json from the upload
with open ( ' /tmp/packageid.json ' ) as json_file :
package_data = json . load ( json_file )
print ( json . dumps ( package_data , indent = 2 ) )
# get the packageid and import the package
packageid = package_data [ " id " ]
command = clidir + ' sas-admin -q transfer import --id ' + packageid
print ( command )
subprocess . call ( command , shell = True )
print ( " NOTE: Viya root folders imported from json files in " + basedir )
else : print ( " ERROR: Directory does not exist " )
# retrieve root folders
#reqtype='get'
#reqval='/folders/rootFolders'
#resultdata=callrestapi(reqval,reqtype)
# loop files in the directory
for filename in os . listdir ( basedir ) :
# upload the json package
command = clidir + ' sas-admin transfer upload --file ' + os . path . join ( basedir , filename ) + ' > /tmp/packageid.json '
print ( command )
subprocess . call ( command , shell = True )
#print the json from the upload
with open ( ' /tmp/packageid.json ' ) as json_file :
package_data = json . load ( json_file )
print ( json . dumps ( package_data , indent = 2 ) )
# get the packageid and import the package
packageid = package_data [ " id " ]
command = clidir + ' sas-admin -q transfer import --id ' + packageid
print ( command )
subprocess . call ( command , shell = True )
print ( " NOTE: Viya root folders imported from json files in " + basedir )