| #!/usr/bin/python |
| # Copyright 2012 Citrix Systems, Inc. Licensed under the |
| # Apache License, Version 2.0 (the "License"); you may not use this |
| # file except in compliance with the License. Citrix Systems, Inc. |
| # reserves all rights not expressly granted by the License. |
| # 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. |
| # |
| # Automatically generated by addcopyright.py at 04/03/2012 |
| |
| |
| |
| |
| |
| # Usage: prepare_tftp_bootfile.py tftp_dir mac cifs_server share directory image_to_restore cifs_username cifs_password |
| import os, sys |
| from sys import exit |
| from os import makedirs |
| from os.path import exists, join |
| |
| fmt1 = '''DEFAULT default |
| PROMPT 1 |
| TIMEOUT 26 |
| DISPLAY boot.msg |
| LABEL default |
| KERNEL %s |
| APPEND ramdisk_size=66000 initrd=%s ksdevice=%s ks=%s |
| ''' |
| fmt2 = '''DEFAULT default |
| PROMPT 1 |
| TIMEOUT 26 |
| DISPLAY boot.msg |
| LABEL default |
| KERNEL %s |
| APPEND ramdisk_size=66000 initrd=%s ks=%s |
| ''' |
| |
| tftp_dir = '' |
| mac = '' |
| kernel = '' |
| initrd = '' |
| ks_file = '' |
| ks_device = '' |
| |
| def prepare(): |
| try: |
| pxelinux = join(tftp_dir, "pxelinux.cfg") |
| if exists(pxelinux) == False: |
| makedirs(pxelinux) |
| |
| cfg_name = "01-" + mac.replace(':','-').lower() |
| cfg_path = join(pxelinux, cfg_name) |
| f = open(cfg_path, "w") |
| if ks_device == '': |
| stuff = fmt2 % (kernel, initrd, ks_file) |
| else: |
| stuff = fmt1 % (kernel, initrd, ks_device, ks_file) |
| f.write(stuff) |
| f.close() |
| return 0 |
| except Exception, e: |
| print e |
| return 1 |
| |
| |
| if __name__ == "__main__": |
| if len(sys.argv) < 7: |
| print "Usage: prepare_kickstart_bootfile.py tftp_dir mac kernel initrd ks_file ks_device" |
| exit(1) |
| |
| (tftp_dir, mac, kernel, initrd, ks_file, ks_device) = sys.argv[1:] |
| |
| ret = prepare() |
| exit(ret) |