Python ClearCase Скачать Vobs Popen Password Программа BASH Sketchy

Я вчера закодировал эту программу, и она действительно работала, за исключением случаев, когда она запускалась CRON. Сегодня я запустил тот же скрипт, и он не работает. Сценарий будет запущен без каких-либо ошибок трассировки, и он скопирует верхнюю папку (vob) из представления ClearCase, но не из реальных важных данных в папках и файлах ниже целевой папки.

Вот мой скрипт на Python.

def obtainCode(view="My_VIEW", folder="/my_folder"):
    """Download code from ClearCase's File System and put it on the hard-drive"""

    dest = '/etc/foo'
    password = 'passwords'

    v1 = subprocess.Popen(['cleartool', 'setview', view], shell=True, stdout=subprocess.PIPE)
    print "v1 = ", v1
    print "view maybe set :/"

    c1 = subprocess.Popen(['sudo', '-p', '', '-S', 'cp', '-r', folder, dest], stdin=subprocess.PIPE)
    c1.stdin.write(password + '\n')
    c1.stdin.close()
    c1.wait()

    #### Close View and Stop Processes ####
    v2 = subprocess.Popen(['cleartool', 'endview', view], shell=True, stdin=v1.stdout, stdout=subprocess.PIPE)


    v2.kill()
    v1.kill()

Кто-нибудь знает: 1) что идет не так 2) почему это будет работать вчера, а не сегодня 3) лучший способ сделать это?

Спасибо за ваше время и внимание.

1 ответ

Решение

Попробуй и не используй setview,
Вам это не нужно, и вместо этого вы можете использовать полный путь представления.

cleartool startview yourDynamicView
cd /view/yourDynamicView/vobs/yourVob

Я уже упоминал об опасности использования setview (" Python и ClearCase setview").
Он создает подпроцесс внутри вашего подпроцесса, который здесь не нужен.

Другие вопросы по тегам