mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
* refactor: remove trailing whitespace from Python files * Add the GitHub Super-Linter Add Python flake8 linting for W291 trailing whitespace * Add licenses
96 lines
3.5 KiB
Python
96 lines
3.5 KiB
Python
#!/usr/bin/python
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (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
|
|
#
|
|
# 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.
|
|
|
|
|
|
# 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
|
|
|
|
restore_template = '''DEFAULT default
|
|
PROMPT 1
|
|
TIMEOUT 26
|
|
DISPLAY boot.msg
|
|
LABEL default
|
|
KERNEL kernel
|
|
APPEND vga=normal devfs=nomount pxe ramdisk_size=66000 load_ramdisk=1 init=/linuxrc prompt_ramdisk=0 initrd=initrd.gz root=/dev/ram0 rw noapic nolapic lba combined_mode=libata ide0=noprobe nomce pci=nomsi irqpoll quiet Server="%s" Share="%s" Directory="%s" Image_To_Restore="%s" After_Completion="Reboot" CIFS_Preferred="Y" Zsplit_Preferred="Y" AUTO="Y" User="%s" Passwd="%s" Extend_Parts_Whenever_Possible="N" Replace_BIOS="N" IP="%s" Netmask="%s" Gateway="%s"
|
|
'''
|
|
|
|
backup_template = '''DEFAULT default
|
|
PROMPT 1
|
|
TIMEOUT 26
|
|
DISPLAY boot.msg
|
|
LABEL default
|
|
KERNEL kernel
|
|
APPEND vga=normal devfs=nomount pxe ramdisk_size=66000 load_ramdisk=1 init=/linuxrc prompt_ramdisk=0 initrd=initrd.gz root=/dev/ram0 rw noapic nolapic lba combined_mode=libata ide0=noprobe nomce pci=nomsi irqpoll quiet Server="%s" Share="%s" Directory="%s" Image_To_Restore="Create_New_Image" New_Image_Name="%s" Already_Existing_Image="Replace" Store_MD5="N" Compression_Type="gzip" After_Completion="Reboot" Minimize_Before_Storing="N" Repart="N" CIFS_Preferred="Y" AUTO="Y" User="%s" Passwd="%s" Extend_Parts_Whenever_Possible="N" Replace_BIOS="N" IP="%s" Netmask="%s" Gateway="%s"
|
|
'''
|
|
|
|
|
|
cmd = ''
|
|
tftp_dir = ''
|
|
mac = ''
|
|
cifs_server = ''
|
|
share = ''
|
|
directory = ''
|
|
template_dir = ''
|
|
cifs_username = ''
|
|
cifs_password = ''
|
|
ip = ''
|
|
netmask = ''
|
|
gateway = ''
|
|
|
|
def prepare(is_restore):
|
|
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 is_restore:
|
|
fmt = restore_template
|
|
else:
|
|
fmt = backup_template
|
|
stuff = fmt % (cifs_server, share, directory, template_dir, cifs_username, cifs_password, ip, netmask, gateway)
|
|
f.write(stuff)
|
|
f.close()
|
|
return 0
|
|
except Exception, e:
|
|
print e
|
|
return 1
|
|
|
|
|
|
if __name__ == "__main__":
|
|
if len(sys.argv) < 12:
|
|
print "Usage: prepare_tftp_bootfile.py tftp_dir mac cifs_server share directory image_to_restor cifs_username cifs_password ip netmask gateway"
|
|
exit(1)
|
|
|
|
(cmd, tftp_dir, mac, cifs_server, share, directory, template_dir, cifs_username, cifs_password, ip, netmask, gateway) = sys.argv[1:]
|
|
|
|
if cmd == "restore":
|
|
ret = prepare(True)
|
|
elif cmd == "backup":
|
|
ret = prepare(False)
|
|
else:
|
|
print "Unknown cmd: %s"%cmd
|
|
ret = 1
|
|
|
|
exit(ret)
|