def server_diff(hostA, hostB, source_file, remote_path):
    global OverthereHostSession
    global OperatingSystemFamily
    global LocalConnectionOptions
    global ObertherHostSession
    global StringUtils
    global Diff

    #context.logOutput(remote_path)
    localOpts = LocalConnectionOptions(os=OperatingSystemFamily.UNIX)
    local_session =  OverthereHostSession(OverthereHost(localOpts))
    sessionA = OverthereHostSession(hostA)
    sessionB = OverthereHostSession(hostB)
    try:
        d1 = sessionA.remote_file(remote_path)
        local_d1 = local_session.work_dir_file("hostA")
        local_session.copy_to(d1, local_d1)
        myFile = "%s" % (local_d1)
        local_f1 = myFile.split(':')[1]

        d2  = sessionB.remote_file(remote_path)
        local_d2 = local_session.work_dir_file("hostB")
        local_session.copy_to(d2, local_d2)
        myFile = "%s" % (local_d2)
        local_f2 = myFile.split(':')[1]

        response = local_session.execute("diff %s %s" % (local_f1, local_f2), check_success=False)
    finally:
        sessionA.close_conn()
        sessionB.close_conn()
        local_session.close_conn()
    # End try
    return response.stdout
示例#2
0
def server_diff(hostA, hostB, source_file, remote_path):
    global OverthereHostSession
    global OperatingSystemFamily
    global LocalConnectionOptions
    global ObertherHostSession
    global StringUtils
    global Diff

    #context.logOutput(remote_path)
    localOpts = LocalConnectionOptions(os=OperatingSystemFamily.UNIX)
    local_session = OverthereHostSession(OverthereHost(localOpts))
    sessionA = OverthereHostSession(hostA)
    sessionB = OverthereHostSession(hostB)
    try:
        d1 = sessionA.remote_file(remote_path)
        local_d1 = local_session.work_dir_file("hostA")
        local_session.copy_to(d1, local_d1)
        myFile = "%s" % (local_d1)
        local_f1 = myFile.split(':')[1]

        d2 = sessionB.remote_file(remote_path)
        local_d2 = local_session.work_dir_file("hostB")
        local_session.copy_to(d2, local_d2)
        myFile = "%s" % (local_d2)
        local_f2 = myFile.split(':')[1]

        response = local_session.execute("diff %s %s" % (local_f1, local_f2),
                                         check_success=False)
    finally:
        sessionA.close_conn()
        sessionB.close_conn()
        local_session.close_conn()
    # End try
    return response.stdout
class UnixBuildServer(object):
    def __init__(self, server):
        self.sshOpts = SshConnectionOptions(server['host'], username=server['username'],password=server['password'])
        self.host = OverthereHost(self.sshOpts)
        self.session = OverthereHostSession(self.host)

        self.base_working_directory = server['BaseWorkingDirectory']
        self.working_directory = self.base_working_directory

        self.create_working_directory(self.base_working_directory)
        workDir = self.session.remote_file(self.base_working_directory)
        self.session.get_conn().setWorkingDirectory(workDir)

    @staticmethod
    def createServer(server):

        return UnixBuildServer(server)


    def set_working_directory(self, relative_directory_path):
        self.working_directory = "%s/%s" % (self.base_working_directory, relative_directory_path)
        self.create_working_directory(self.working_directory)
        workDir = self.session.remote_file(self.working_directory)
        self.session.get_conn().setWorkingDirectory(workDir)

    # main interface


    # session related methods

    def close_session(selfs):
        self.session.close()

    def create_working_directory(self, dir_full_path):
        response = self.session.execute("/bin/mkdir -p %s" % (dir_full_path))

    # File Handeling
    def read_file_in_workspace(self, file_name):
        print "not yet implemented"

    def write_file_in_workspace(self, file_name, content):
        print "not yet implemented"

    def create_directory(self, directory_name):
        self.execute_command(["/bin/mkdir -p %s" % (directory_name)])


    # command Execution
    def filename_generator(self, size=9, chars=string.ascii_uppercase + string.digits):
        return ''.join(random.choice(chars) for _ in range(size))

    def get_tmp_script_filename(self):
        return "%s.sh" % self.filename_generator()

    def execute_command(self, command, environment_variables=None):
        # get a BashScriptBuilder object
        command_object = BashScriptBuilder()

        # copy in the environment variables
        if environment_variables is not None:
            for key, value in environment_variables.items():
                command_object.set_env_var(key, value)

        # add the rest of the possible multiline command
        command_object.add_lines(command)

        executable_command = command_object.build()

        print "executing command: %s " % (executable_command)

        tmp_script_filename = self.get_tmp_script_filename()

        self.session.upload_text_content_to_work_dir(command_object.build(), tmp_script_filename, executable=True)
    #
        response = self.session.execute("%s/%s" % (self.working_directory, tmp_script_filename), check_success=False, suppress_streaming_output=False)

        if response.rc != 0:
            print response.stderr
            print response.stdout
            print "unable to execute command %s" % (command)
            raise Exception('unable to execute command')
        else:
            print "Response:", str(response.stdout)
            return response
示例#4
0
class DarBuildServer(object):
    def __init__(self, server):
        self.sshOpts = SshConnectionOptions(server['host'], username=server['username'],password=server['password'])
        self.host = OverthereHost(self.sshOpts)
        self.session = OverthereHostSession(self.host)
        self.zipBinary = server['pathToZipExecutable']
        self.workingDirectory = server['workingDirectory']
        self.create_directory(self.workingDirectory)
        workDir = self.session.remote_file(self.workingDirectory)
        self.session.get_conn().setWorkingDirectory(workDir)

    def __del__(self):
        self.destroy_work_directory()
        self.session.close_conn() 


    @staticmethod
  
    def createServer(server): 
        return DarBuildServer(server)
    #    
  
    def init_dar(self, appName, appVersion):
        workspace_root = self.create_dar_directory(appName, appVersion) 
        manifest_filename = "%s/deployit-manifest.xml" % workspace_root
        self.write_dar_manifest(appName, appVersion, workspace_root) 

    def import_ear(self, appName, appVersion, deployable, url):   
        self.download_file_into_dar(appName, appVersion,deployable, str(url)) 
  
    def create_dar_directory(self, appName, appVersion):
        dirName = "%s/%s" % (appVersion, appName)

        # check if the directory exists .. if it does we should go do something else.
        # might want to do a better locking mechanism
        if self.dir_exists(dirName): 
          print "unable to create dar directory: %s/%s/%s" % (self.workingDirectory, appVersion, appName)  
          raise Exception('unable to create Dar Package Directory')
        else: 
          self.create_directory(dirName)

        return dirName

        
    def download_file_into_dar(self, appName, appVersion, deployable, url):
        #filename = url.split('/')[-1]
        filename = os.path.basename(url)
        outfile = "%s/%s/%s/%s" % (appVersion, appName,deployable, filename) 
        dirName =  "%s/%s/%s" % (appVersion, appName,deployable)
        if self.dir_exists(dirName): 
          print "output dir already exists: %s" % (dirName)
        else: 
          self.create_directory(dirName)

        self.execute_command("/usr/bin/curl -L -o %s %s" % (outfile, url))

    def read_manifest(self, appName, appVersion):
        file_name = "%s/%s/%s/deployit-manifest.xml" % (self.workingDirectory, appVersion, appName)
        return self.session.read_file(file_name, encoding="UTF-8")

    
    def write_manifest(self, appName, appVersion, content):
        file_name = "%s/%s/deployit-manifest.xml" % (appVersion, appName)
        self.write_to_file(file_name, content) 
         
    def create_directory(self, dirName):
        self.execute_command("/bin/mkdir -p %s" % (dirName)) 
	 
    def create_file(self, fileName, content=None):
        if content:
         self.write_to_file(fileName, str(content))
        else:
         self.execute_command("/bin/touch %s" % (fileName)) 
 

    def write_to_file(self, fileName, content):
        remoteFile = self.session.remote_file("%s/%s" % (self.workingDirectory, fileName)) 
        self.session.copy_text_to_file(str(content), remoteFile)
          
    def dir_exists(self, dirName): 
        print dirName
        command = "[ -d %s ]" % (dirName)
        response = self.session.execute(command, check_success=False, suppress_streaming_output=False)
        
        if response.rc == 0 :
          return True
        else: 
          return False


    def execute_command(self, command):
        print "executing command: %s " % (command)
        response = self.session.execute(command, check_success=False, suppress_streaming_output=False)


        if response.rc != 0:
          print response.stderr
          print "unable to execute command %s" % (command)
          raise Exception('unable to execute command ')
        else:
          print "Response:", str(response.stdout)

       # self.switch_working_directory()
        return response

    
    def write_dar_manifest(self, appName, appVersion, workspace_root):
       filename = "./%s/deployit-manifest.xml" % (workspace_root)
       file_content = self.basic_dar_manifest_template().substitute(appVersion=appVersion, appName=appName)
       self.create_file(filename, file_content)      

    def basic_dar_manifest_template(self):
       xml_template  = '<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n'
       xml_template += ' <udm.DeploymentPackage version=\"$appVersion\" application=\"$appName\"> \n'
       xml_template += '   <orchestrator /> \n'
       xml_template += '   <deployables/> \n' 
       xml_template += ' </udm.DeploymentPackage> \n'
       return Template(xml_template)

    def package_dar(self, appName, appVersion):
        command = "if [ -f %s_%s.dar ] \n"
        command += " then rm -rf %s_%s.dar \n"
        command += "fi \n"
        command += "cd %s/%s \n" % (appVersion, appName)
        command += "/usr/bin/zip -r %s/%s_%s.dar *" % (self.workingDirectory, appName, appVersion.replace('.','_'))
        self.execute_multiline_command(command)

    def write_exec_script(self, commands, script):
        self.session.upload_text_content_to_work_dir(self, commands, script, executable=False)

    def execute_multiline_command(self, command):

        tmp_filename = self.filename_generator()
        self.write_to_file(tmp_filename, command)
        self.execute_command("chmod +x %s" % (tmp_filename))
        self.execute_command("./%s" % (tmp_filename))


    def filename_generator(self, size=9, chars=string.ascii_uppercase + string.digits):
        return ''.join(random.choice(chars) for _ in range(size))

    def upload_dar_package(self, appName, appVersion, xldeployServer):
        dar_file_name = "%s_%s.dar" % (appName, appVersion.replace('.','_'))
        command = "/usr/bin/curl -u %s:%s -X POST -H \"content-type:multipart/form-data\" %s/package/upload/%s -F fileData=@./%s " % (xldeployServer['username'], xldeployServer['password'], xldeployServer['url'], dar_file_name, dar_file_name)
        print command
        self.execute_command(command)
class ConfigRTCServer(object):
    def __init__(self, server, dirname="tmp", work_directory=None):

        # if 'key_file' in server:
        #   self.sshOpts = SshConnectionOptions(server['host'], username=server['username'],privateKeyFile=server['key_file'])
        # else:
        #   self.sshOpts = SshConnectionOptions(server['host'], username=server['username'],password=server['password'])

        self.sshOpts = SshConnectionOptions(server['host'], username=server['username'],privateKeyFile=server['key_file'],password=server['password'] )

        self.host = OverthereHost(self.sshOpts)
        self.session = OverthereHostSession(self.host)
        self.WorkDirBase = server['filesystemLocation']
        self.session.execute("/bin/mkdir -p %s" % (self.WorkDirBase))
        workDir = self.session.remote_file(self.WorkDirBase)
        self.session.get_conn().setWorkingDirectory(workDir)

        if work_directory is None:
          self.WorkDirTimeStamp = int(time.time())
          self.WorkDirName = dirname
          self.workDirectory = None
        else:
          self.workDirectory = work_directory

        self.RtcClient = server['pathToClientSoftware']




    @staticmethod
    def createServer(server, dirname, work_directory=None): 
        return ConfigRTCServer(server, dirname, work_directory)


    def get_work_directory(self):
        return self.workDirectory
       
    def get_file_contents(self, file_name):
        response = self.session.read_file("%s/%s" % (self.getWorkDirectory(), file_name))
        return response
   
    def write_string_as_file(self, file_name, content):
        remote_file = self.session.remote_file("%s/%s" % (self.getWorkDirectory(), file_name))
        response = self.session.copy_text_to_file(str(content), remote_file)
	 
    def execute_lscm_command(self, command, run_in_workdirectory=False):
        #logger.info(command)
        command = self.sub_placeholders(command)
        lscm_command="%s %s" % (self.RtcClient, command)

        if run_in_workdirectory is False:
          response = self.execute_command(lscm_command)
        else:
          response = self.execute_command_in_workDirectory(lscm_command)
        return response

    def execute_command_in_workDirectory(self, command):
    #    #logger.info("switching overthere to workdirectory")
    #    workDir = self.session.remote_file(self.get_work_directory())
    #    self.session.get_conn().setWorkingDirectory(workDir)
    #    #logger.info("switched to workDirectory")
        command = "cd %s;%s" % (self.get_work_directory(), command) 
        return self.execute_command(command)
 
    #def execute_command(self, command):
    #    #logger.info("executing command: %s " % (command))
    #    response = self.session.execute(command, check_success=False, suppress_streaming_output=False)
    #    if response.rc != 0:
    #      #logger.info(response.stderr)
    #      #logger.info("unable to execute command %s" % (command))
    #      raise Exception('unable to execute command ')
    #    else:
    #      #logger.info("Response", str(response.stdout))
    #      return response

    def execute_command(self, command, retain_scripts=True):
        command_object = BashScriptBuilder()
        for command_line in command.split(';'):
	  command_object.add_line(command_line)
       
        executable_command = command_object.build() 

        tmp_script_file_name = ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(9))
        #logger.info("uploading script %s" % tmp_script_file_name) 

        script = self.session.upload_text_content_to_work_dir(executable_command, tmp_script_file_name, executable=True)
        
        response = self.session.execute(script.getPath(), check_success=False, suppress_streaming_output=False)

        #logger.info("stdErr for command yielded: " + str(response.stderr))
        #logger.info("stdOut for command yielded: " + str(response.stdout))
        #logger.info("the returncode for the command was:" + str(response.rc)) 
        if response.rc != 0:
          #logger.info("unable to execute command %s" % (command))
          raise Exception('unable to execute command ')
        else:
          #logger.info("Response", str(response.stdout))
          return response

                 
        
    def getWorkDirectory(self):
        if self.workDirectory is None:
          self.session.execute("/bin/mkdir -p %s/%s/%s" % (self.WorkDirBase,self.WorkDirTimeStamp,self.WorkDirName))
          self.workDirectory =  "%s/%s/%s" % (self.WorkDirBase,self.WorkDirTimeStamp,self.WorkDirName)
        return self.workDirectory

    def destroy_work_directory(self):
        if self.workDirectory is not None:
          self.execute_command("/bin/rm -rf %s/%s" % (self.WorkDirBase, self.WorkDirName))
    
    def sub_placeholders(self, input):
        #logger.info(self.workDirectory)
        #logger.info(self.getWorkDirectory())
	output = input.replace('<work_dir>',  self.getWorkDirectory())
        return output
#
# Copyright 2021 XEBIALABS
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#

from overtherepy import OverthereHostSession

session = OverthereHostSession(container.ansibleController.host)
target = session.remote_file(target_path)

print('Delete {0}'.format(target))
target.delete()
示例#7
0
    response = CommandResponse(rc=rc,
                               stdout=capture_so_handler.outputLines,
                               stderr=capture_se_handler.outputLines)

    if response.rc != 0:
        session.logger.error(StringUtils.concat(response.stdout))
        session.logger.error(StringUtils.concat(response.stderr))
        session.logger.error("Exit code {0}".format(response.rc))
        sys.exit(response.rc)
    return response


ansible_controler = repositoryService.read(ansible_controller_id)

remote_session = OverthereHostSession(ansibleController.host)
remote_yaml_file = remote_session.remote_file(yaml_file)
print("remote_yaml_file {0}".format(remote_yaml_file))

operating_system = System.getProperty("os.name").lower()
print("running " + operating_system + " OS on localhost")
if operating_system.startswith("win"):
    os = OperatingSystemFamily.WINDOWS
else:
    os = OperatingSystemFamily.UNIX

local_opts = LocalConnectionOptions(os=os)
local_host = OverthereHost(local_opts)
local_session = OverthereHostSession(local_host, stream_command_output=True)

local_yaml_file = local_session.work_dir_file(remote_yaml_file.getName())
print("local_yaml_file {0}".format(local_yaml_file))
class DarBuildServer(object):
    def __init__(self, server):

        self.retryCount = server['retryCount']
        if self.retryCount == 0:
            self.retryCount = 1

        self.retryBaseInterval = 60

        self.sshOpts = SshConnectionOptions(server['host'],
                                            username=server['username'],
                                            privateKeyFile=server['key_file'],
                                            password=server['password'],
                                            port=server['port'])
        self.host = OverthereHost(self.sshOpts)
        self.session = OverthereHostSession(self.host)

        tries = 0

        while tries < self.retryCount:
            tries += 1
            try:
                self.zipBinary = server['pathToZipExecutable']
                self.workingDirectory = server['workingDirectory']
                self.create_directory(self.workingDirectory)
                workDir = self.session.remote_file(self.workingDirectory)
                self.session.get_conn().setWorkingDirectory(workDir)
                break
            except:
                if tries > 3:
                    print sys.exc_info()[0]
                    print sys.exc_info()[1]

                if tries > self.retryCount:
                    print sys.exc_info()[2].format_stack()
                    print "we were unable to setup a connection to server: %s after %i retries" % (
                        server['host'], tries)
                    sys.exit(2)
                sleeptime = self.retryBaseInterval * tries
                print "retrying to setup a connection to server %s in %i seconds" % (
                    server['host'], sleeptime)
                time.sleep(sleeptime)

    def __del__(self):
        self.destroy_work_directory()
        self.session.close_conn()

    def closeConnection(self):
        print "closing ssh connection"
        self.session.close_conn()

    @staticmethod
    def createServer(server):
        return DarBuildServer(server)

    #

    def init_dar(self, appName, appVersion):
        workspace_root = self.create_dar_directory(appName, appVersion)
        manifest_filename = "%s/deployit-manifest.xml" % workspace_root
        self.write_dar_manifest(appName, appVersion, workspace_root)

    def delete_workspace(self, appName, appVersion):
        dirName = "%s/%s" % (appVersion, appName)

        response = self.execute_command("/bin/rm -rf %s" % (dirName))
        response = self.execute_command("/bin/rm -rf %s" % (appVersion))

    def import_ear(self, appName, appVersion, deployable, url):
        self.download_file_into_dar(appName, appVersion, deployable, str(url))

    def create_dar_directory(self, appName, appVersion):
        dirName = "%s/%s" % (appVersion, appName)

        # check if the directory exists .. if it does we should go do something else.
        # might want to do a better locking mechanism
        if self.dir_exists(dirName):
            print "unable to create dar directory: %s/%s/%s" % (
                self.workingDirectory, appVersion, appName)
            raise Exception('unable to create Dar Package Directory')
        else:
            self.create_directory(dirName)

        return dirName

    def download_file_into_dar(self, appName, appVersion, deployable, url):
        #filename = url.split('/')[-1]
        filename = os.path.basename(url)
        outfile = "%s/%s/%s/%s" % (appVersion, appName, deployable, filename)
        dirName = "%s/%s/%s" % (appVersion, appName, deployable)
        if self.dir_exists(dirName):
            print "output dir already exists: %s" % (dirName)
        else:
            self.create_directory(dirName)

        self.execute_command(
            "/usr/bin/curl --retry 5 --retry-delay 2 -k -L -o %s %s" %
            (outfile, url))

    def read_manifest(self, appName, appVersion):
        file_name = "%s/%s/%s/deployit-manifest.xml" % (self.workingDirectory,
                                                        appVersion, appName)
        return self.session.read_file(file_name, encoding="UTF-8")

    def write_manifest(self, appName, appVersion, content):

        file_name = "%s/%s/deployit-manifest.xml" % (appVersion, appName)
        self.write_to_file(file_name, content)

    def create_directory(self, dirName):
        self.execute_command("/bin/mkdir -p %s" % (dirName))

    def create_file(self, fileName, content=None):
        if content:
            self.write_to_file(fileName, str(content))
        else:
            self.execute_command("/bin/touch %s" % (fileName))

    def write_to_file(self, fileName, content):
        remoteFile = self.session.remote_file(
            "%s/%s" % (self.workingDirectory, fileName))
        self.session.copy_text_to_file(str(content), remoteFile)

    def dir_exists(self, dirName):
        command = "[ -d %s ]" % (dirName)
        response = self.session.execute(command,
                                        check_success=False,
                                        suppress_streaming_output=False)

        if response.rc == 0:
            return True
        else:
            return False

    def execute_command(self, command):
        print "executing command: %s " % (command)
        response = self.session.execute(command,
                                        check_success=False,
                                        suppress_streaming_output=False)

        if response.rc != 0:
            print response.stderr
            print response.stdout
            print "unable to execute command %s" % (command)
            raise Exception('unable to execute command ')
        else:
            print "Response:", str(response.stdout)
            print "Errors:", str(response.stderr)

    # self.switch_working_directory()
        return response

    def write_dar_manifest(self, appName, appVersion, workspace_root):
        filename = "./%s/deployit-manifest.xml" % (workspace_root)
        file_content = self.basic_dar_manifest_template().substitute(
            appVersion=appVersion, appName=appName)
        self.create_file(filename, file_content)

    def basic_dar_manifest_template(self):
        xml_template = '<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n'
        xml_template += ' <udm.DeploymentPackage version=\"$appVersion\" application=\"$appName\"> \n'
        xml_template += '   <orchestrator /> \n'
        xml_template += '   <deployables/> \n'
        xml_template += ' </udm.DeploymentPackage> \n'
        return Template(xml_template)

    def package_dar(self, appName, appVersion):
        command = "set -x \n"
        command += "if [ -f %s_%s.dar ] \n"
        command += " then rm -rf %s_%s.dar \n"
        command += "fi \n"
        command += "cd %s/%s \n" % (appVersion, appName)
        command += "/usr/bin/zip -r %s/%s_%s.dar *" % (
            self.workingDirectory, appName.replace(
                '/', '_'), appVersion.replace('.', '_'))
        self.execute_multiline_command(command)

    def remove_dar(self, appName, appVersion):
        command = "set -x \n"
        command += "cd %s \n" % self.workingDirectory
        command += "if [ -f %s_%s.dar ] \n" % (appName.replace(
            '/', '_'), appVersion.replace('.', '_'))
        command += " then rm -rf %s_%s.dar \n" % (appName.replace(
            '/', '_'), appVersion.replace('.', '_'))
        command += " fi \n"
        self.execute_multiline_command(command)

    def write_exec_script(self, commands, script):
        self.session.upload_text_content_to_work_dir(self,
                                                     commands,
                                                     script,
                                                     executable=False)

    def execute_multiline_command(self, command):

        tmp_filename = self.filename_generator()
        self.write_to_file(tmp_filename, command)
        self.execute_command("chmod +x %s" % (tmp_filename))
        self.execute_command("./%s" % (tmp_filename))

    def filename_generator(self,
                           size=9,
                           chars=string.ascii_uppercase + string.digits):
        return ''.join(random.choice(chars) for _ in range(size))

    def upload_dar_package(self, appName, appVersion, xldeployServer):
        dar_file_name = "%s_%s.dar" % (appName.replace(
            '/', '_'), appVersion.replace('.', '_'))
        command = "/usr/bin/curl -k -u %s:%s -X POST -H \"content-type:multipart/form-data\" %s/package/upload/%s -F fileData=@./%s " % (
            xldeployServer['username'], xldeployServer['password'],
            xldeployServer['url'], dar_file_name, dar_file_name)
        self.execute_command(command)