parent
e0a057778b
commit
9dca333c47
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,42 @@
|
||||
#-*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2008-2012 Calculate Ltd. http://www.calculate-linux.org
|
||||
#
|
||||
# Licensed 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.
|
||||
|
||||
import os
|
||||
import sys
|
||||
from os import path
|
||||
from calculate.lib.cl_datavars import Variables
|
||||
from calculate.lib.variables import X11
|
||||
|
||||
from calculate.lib.cl_lang import setLocalTranslate
|
||||
setLocalTranslate('cl_install',sys.modules[__name__])
|
||||
|
||||
class InstallX11(X11):
|
||||
vars = ["os_install_x11_resolution","os_install_x11_video_drv",
|
||||
"os_install_x11_composite","os_install_fb_resolution","hr_video_id"]
|
||||
# xorg resolution
|
||||
os_install_x11_resolution = {}
|
||||
|
||||
# Video driver used by xorg
|
||||
os_install_x11_video_drv = {'mode':'w'}
|
||||
|
||||
# on/off composite
|
||||
os_install_x11_composite = {'mode':'w'}
|
||||
|
||||
# fb resolution
|
||||
os_install_fb_resolution = {'mode':'w'}
|
||||
|
||||
# busid of video card
|
||||
hr_video_id = {'value':""}
|
@ -0,0 +1,9 @@
|
||||
from action import InstallAction
|
||||
from disk import InstallDisk
|
||||
from distr import Distribute
|
||||
from kernel import InstallKernel
|
||||
from linux import InstallLinux
|
||||
from locale import InstallLocale
|
||||
from net import InstallNet
|
||||
from system import InstallSystem
|
||||
from X11 import InstallX11
|
@ -0,0 +1,81 @@
|
||||
#-*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2008-2012 Calculate Ltd. http://www.calculate-linux.org
|
||||
#
|
||||
# Licensed 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.
|
||||
|
||||
import os
|
||||
import sys
|
||||
from os import path
|
||||
from calculate.lib.cl_datavars import Variables
|
||||
|
||||
from calculate.lib.cl_lang import setLocalTranslate
|
||||
setLocalTranslate('cl_install',sys.modules[__name__])
|
||||
|
||||
class InstallAction(Variables):
|
||||
vars = ["ac_install_merge","ac_install_system","ac_install_flash",
|
||||
"ac_install_live"]
|
||||
"""
|
||||
Action variable which has value "up" by default and not flash installation
|
||||
"""
|
||||
ac_install_merge = {}
|
||||
|
||||
"""
|
||||
Action variable which has value "up" for installation on hdd
|
||||
"""
|
||||
ac_install_system = {}
|
||||
|
||||
"""
|
||||
Action variable which has value "up" for USB flash
|
||||
"""
|
||||
ac_install_flash = {}
|
||||
|
||||
"""
|
||||
Action which "up" value describe dinamic templates
|
||||
"""
|
||||
ac_install_live = {}
|
||||
|
||||
def get_ac_install_merge(self):
|
||||
"""Need perform templates for install:merge or install:unmerge"""
|
||||
actionsMap = {'merge':'up',
|
||||
'system':'up'}
|
||||
cl_action = self.Get('cl_action')
|
||||
if cl_action == 'system' and \
|
||||
self.Get('os_install_root_type') == 'flash':
|
||||
return ""
|
||||
return actionsMap.get(cl_action,'')
|
||||
|
||||
def get_ac_install_system(self):
|
||||
"""Need perform templates for install:system"""
|
||||
if self.Get('cl_action') == 'system' and \
|
||||
self.Get('os_install_root_type') != "flash":
|
||||
return "up"
|
||||
else:
|
||||
return ""
|
||||
|
||||
def get_ac_install_flash(self):
|
||||
"""Need perform templates for install:flash"""
|
||||
clAction = self.Get('cl_action')
|
||||
if clAction == 'system' and self.Get('os_install_root_type') == 'flash':
|
||||
return "up"
|
||||
return ""
|
||||
|
||||
def get_ac_install_live(self):
|
||||
"""Need perform templates for install:live"""
|
||||
if self.Get('ac_install_merge') == "up" and \
|
||||
self.Get('cl_chroot_status') == "off" or \
|
||||
self.Get('cl_action') == 'live':
|
||||
return "up"
|
||||
else:
|
||||
return ""
|
||||
|
@ -0,0 +1,148 @@
|
||||
#-*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2008-2012 Calculate Ltd. http://www.calculate-linux.org
|
||||
#
|
||||
# Licensed 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.
|
||||
|
||||
import os
|
||||
import sys
|
||||
from os import path
|
||||
from calculate.lib.cl_datavars import Variables
|
||||
|
||||
from calculate.lib.cl_lang import setLocalTranslate
|
||||
setLocalTranslate('cl_install',sys.modules[__name__])
|
||||
|
||||
class InstallDisk(Variables):
|
||||
vars = ["os_device_hash","os_disk_hash","os_disk_dev",
|
||||
"os_install_disk_mount","os_disk_mount","os_disk_content",
|
||||
"os_disk_format","os_disk_type","os_install_disk_format",
|
||||
"os_install_disk_perform_format","os_install_disk_uuid",
|
||||
"os_install_disk_use","cl_uuid_set","os_install_disk_id",
|
||||
"os_disk_uuid","os_disk_id","os_install_mbr","os_disk_grub",
|
||||
"os_install_disk_grub","os_disk_part","os_disk_table",
|
||||
"os_disk_size","os_disk_name","os_disk_options","os_device_dev",
|
||||
"os_device_type","os_device_map","os_device_table","os_device_name",
|
||||
"os_install_disk_options","os_bind_hash","os_bind_path","os_bind_mountpoint",
|
||||
"os_install_bind_hash","os_install_bind_path","os_install_bind_mountpoint",
|
||||
"os_install_fstab_mount_conf","os_install_fstab_swap_conf"]
|
||||
# infomation about disk in hash
|
||||
os_device_hash = {'hide':True}
|
||||
|
||||
# infomation about disk in hash
|
||||
os_disk_hash = {'hide':True}
|
||||
|
||||
# list of available partition devices
|
||||
os_disk_dev = {}
|
||||
|
||||
# list mounted points for installed system
|
||||
os_install_disk_mount = {}
|
||||
|
||||
# list mounted points for current operation system
|
||||
os_disk_mount = {}
|
||||
|
||||
# partition content
|
||||
os_disk_content = {}
|
||||
|
||||
# list filesystem for partition devices
|
||||
os_disk_format = {}
|
||||
|
||||
# list type (lvm,raid,partition,disk)
|
||||
os_disk_type = {}
|
||||
|
||||
# install list filesystem for partition devices
|
||||
os_install_disk_format = {}
|
||||
|
||||
# need format
|
||||
os_install_disk_perform_format = {}
|
||||
|
||||
# uudi for install
|
||||
os_install_disk_uuid = {}
|
||||
|
||||
# /dev/sd or UUID= list (by cl_uuid_set)
|
||||
os_install_disk_use = {}
|
||||
|
||||
cl_uuid_set = {'value':'on'}
|
||||
|
||||
# install partition's system id
|
||||
os_install_disk_id = {}
|
||||
|
||||
# list uudi for partition devices
|
||||
os_disk_uuid = {}
|
||||
|
||||
# partition's system id
|
||||
os_disk_id = {}
|
||||
|
||||
# disk for boot mbr
|
||||
os_install_mbr = {}
|
||||
|
||||
# list grub id for partition devices
|
||||
os_disk_grub = {}
|
||||
|
||||
# install list grub id for partition devices (depend from mbr)
|
||||
os_install_disk_grub = {}
|
||||
|
||||
# type of partition devices (primary, extended or logical)
|
||||
os_disk_part = {}
|
||||
|
||||
# partition table on parent device
|
||||
os_disk_table = {}
|
||||
|
||||
# partition size
|
||||
os_disk_size = {}
|
||||
|
||||
# label of partitions
|
||||
os_disk_name = {}
|
||||
|
||||
# list mount options
|
||||
os_disk_options = {}
|
||||
|
||||
# devices
|
||||
os_device_dev = {}
|
||||
|
||||
# device type (hdd,cdrom,usb-flash)
|
||||
os_device_type = {}
|
||||
|
||||
# map number for grub
|
||||
os_device_map = {}
|
||||
|
||||
# table for device
|
||||
os_device_table = {}
|
||||
|
||||
# name of device
|
||||
os_device_name = {}
|
||||
|
||||
# list mount options of installed os
|
||||
os_install_disk_options = {}
|
||||
|
||||
os_bind_hash = {'hide':True}
|
||||
|
||||
# directories for bind
|
||||
os_bind_path = {}
|
||||
|
||||
# mountpoint for directories bind
|
||||
os_bind_mountpoint = {}
|
||||
|
||||
os_install_bind_hash = {'hide':True}
|
||||
|
||||
# install directories for bind
|
||||
os_install_bind_path = {}
|
||||
|
||||
# mountpoint for install directories bind
|
||||
os_install_bind_mountpoint = {}
|
||||
|
||||
# information about mount points for fstab
|
||||
os_install_fstab_mount_conf = {}
|
||||
|
||||
# information about swap for fstab
|
||||
os_install_fstab_swap_conf = {}
|
||||
|
@ -0,0 +1,32 @@
|
||||
#-*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2008-2012 Calculate Ltd. http://www.calculate-linux.org
|
||||
#
|
||||
# Licensed 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.
|
||||
|
||||
import os
|
||||
import sys
|
||||
from os import path
|
||||
from calculate.lib.cl_datavars import Variables
|
||||
|
||||
from calculate.lib.cl_lang import setLocalTranslate
|
||||
setLocalTranslate('cl_install',sys.modules[__name__])
|
||||
|
||||
class Distribute(Variables):
|
||||
vars = ["cl_image","cl_image_path"]
|
||||
# system image for installation
|
||||
cl_image = {}
|
||||
|
||||
# path which contains images
|
||||
cl_image_path = {}
|
||||
|
@ -0,0 +1,56 @@
|
||||
#-*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2008-2012 Calculate Ltd. http://www.calculate-linux.org
|
||||
#
|
||||
# Licensed 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.
|
||||
|
||||
import os
|
||||
import sys
|
||||
from os import path
|
||||
from calculate.lib.cl_datavars import Variables
|
||||
|
||||
from calculate.lib.cl_lang import setLocalTranslate
|
||||
setLocalTranslate('cl_install',sys.modules[__name__])
|
||||
|
||||
class InstallKernel(Variables):
|
||||
vars = ["os_install_kernel_scheduler","os_install_kernel_attr",
|
||||
"os_install_kernel_resume","os_install_kernel","os_install_initrd",
|
||||
"os_install_initrd_install","os_install_kernel_config",
|
||||
"os_install_system_map","cl_install_kernel_uid"]
|
||||
# install scheduler
|
||||
os_install_kernel_scheduler = {}
|
||||
|
||||
# install kernel attributes
|
||||
os_install_kernel_attr = {}
|
||||
|
||||
# install kernel resume
|
||||
os_install_kernel_resume = {}
|
||||
|
||||
# kernel filename
|
||||
os_install_kernel = {}
|
||||
|
||||
# optimized initramfs filename
|
||||
os_install_initrd = {}
|
||||
|
||||
# install initramfs filename
|
||||
os_install_initrd_install = {}
|
||||
|
||||
# install config kernel filename
|
||||
os_install_kernel_config = {}
|
||||
|
||||
# install system map filename
|
||||
os_install_system_map = {}
|
||||
|
||||
# install kernel uid
|
||||
cl_install_kernel_uid = {}
|
||||
|
@ -0,0 +1,47 @@
|
||||
#-*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2008-2012 Calculate Ltd. http://www.calculate-linux.org
|
||||
#
|
||||
# Licensed 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.
|
||||
|
||||
import os
|
||||
import sys
|
||||
from os import path
|
||||
from calculate.lib.cl_datavars import Variables
|
||||
from calculate.lib.variables import Linux
|
||||
|
||||
from calculate.lib.cl_lang import setLocalTranslate
|
||||
setLocalTranslate('cl_install',sys.modules[__name__])
|
||||
|
||||
class InstallLinux(Linux):
|
||||
vars = ["os_install_linux_ver","os_install_linux_build",
|
||||
"os_install_linux_subname","os_install_linux_shortname",
|
||||
"os_install_linux_name","os_install_linux_system"]
|
||||
# linux version of installation os
|
||||
os_install_linux_ver = {'mode':'r'}
|
||||
|
||||
# linux build of installation os
|
||||
os_install_linux_build = {'mode':'r'}
|
||||
|
||||
# subname of installation os
|
||||
os_install_linux_subname = {'mode':'w'}
|
||||
|
||||
# shortname of installation os
|
||||
os_install_linux_shortname = {'mode':'w'}
|
||||
|
||||
# name of installation os
|
||||
os_install_linux_name = {'mode':'w'}
|
||||
|
||||
# installation os system: server or desktop
|
||||
os_install_linux_system = {}
|
||||
|
@ -0,0 +1,69 @@
|
||||
#-*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2008-2012 Calculate Ltd. http://www.calculate-linux.org
|
||||
#
|
||||
# Licensed 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.
|
||||
|
||||
import os
|
||||
import sys
|
||||
from os import path
|
||||
from calculate.lib.cl_datavars import Variables
|
||||
from calculate.lib.variables import Locale
|
||||
|
||||
from calculate.lib.cl_lang import setLocalTranslate
|
||||
setLocalTranslate('cl_install',sys.modules[__name__])
|
||||
|
||||
class InstallLocale(Locale):
|
||||
vars = ["os_install_linguas", "os_install_locale_consolefont",
|
||||
"os_install_locale_keymap", "os_install_locale_dumpkeys",
|
||||
"os_install_locale_locale", "os_install_locale_lang",
|
||||
"os_install_locale_language", "os_install_locale_xkb",
|
||||
"os_install_locale_xkbname", "os_install_clock_timezone",
|
||||
"os_install_clock_type", "os_install_lang"]
|
||||
|
||||
# LINGUAS value
|
||||
os_install_linguas = {'mode':'w'}
|
||||
|
||||
# consolefont
|
||||
os_install_locale_consolefont = {}
|
||||
|
||||
# keymap of locale (used for /etc/conf.d/keymaps)
|
||||
os_install_locale_keymap = {}
|
||||
|
||||
# dumpkeys_charset for keymap
|
||||
os_install_locale_dumpkeys = {}
|
||||
|
||||
# locale (at example: ru_RU.UTF-8)
|
||||
os_install_locale_locale = {}
|
||||
|
||||
# full language (at example: ru_RU)
|
||||
os_install_locale_lang = {}
|
||||
|
||||
# short language (at example ru)
|
||||
os_install_locale_language = {}
|
||||
|
||||
# keyboard layout for X server
|
||||
os_install_locale_xkb = {}
|
||||
|
||||
# keyboard layout name for X server
|
||||
os_install_locale_xkbname = {}
|
||||
|
||||
# timezone for clock
|
||||
os_install_clock_timezone = {'mode':'w'}
|
||||
|
||||
# type of clock (UTC or local)
|
||||
os_install_clock_type = {'mode':'w'}
|
||||
|
||||
# supported languages
|
||||
os_install_lang = {}
|
||||
|
@ -0,0 +1,107 @@
|
||||
#-*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2008-2012 Calculate Ltd. http://www.calculate-linux.org
|
||||
#
|
||||
# Licensed 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.
|
||||
|
||||
import os
|
||||
import sys
|
||||
from os import path
|
||||
from calculate.lib.cl_datavars import Variables
|
||||
from calculate.lib.variables import Net
|
||||
|
||||
from calculate.lib.cl_lang import setLocalTranslate
|
||||
setLocalTranslate('cl_install',sys.modules[__name__])
|
||||
|
||||
class InstallNet(Net):
|
||||
vars = ["os_net_interfaces_info","os_install_net_hash",
|
||||
"os_install_net_hostname","os_install_net_allow",
|
||||
"os_install_net_interfaces","os_install_net_name",
|
||||
"os_install_net_mac","os_install_net_ip","os_install_net_network",
|
||||
"os_install_net_cidr","os_install_net_route_hash",
|
||||
"os_install_net_route_network","os_install_net_route_gw",
|
||||
"os_install_net_route_dev","os_install_net_route_src",
|
||||
"os_install_net_route","os_install_net_nmroute",
|
||||
"os_install_net_dns","os_install_net_conf",
|
||||
"os_install_net_settings","os_install_net_dhcp_set",
|
||||
"os_install_net_dns_search","os_install_net_domain"]
|
||||
# inforamation about net interfaces
|
||||
os_net_interfaces_info = {}
|
||||
|
||||
# hash for information about net
|
||||
os_install_net_hash = {}
|
||||
|
||||
# computer hostname
|
||||
os_install_net_hostname = {'mode':"w"}
|
||||
|
||||
# allowed network
|
||||
os_install_net_allow ={}
|
||||
|
||||
# net interfaces
|
||||
os_install_net_interfaces={}
|
||||
|
||||
# net device name
|
||||
os_install_net_name={}
|
||||
|
||||
# net devices mac
|
||||
os_install_net_mac={}
|
||||
|
||||
# ip for all network interfaces
|
||||
os_install_net_ip = {}
|
||||
|
||||
# network for ip
|
||||
os_install_net_network = {}
|
||||
|
||||
# ip cidr
|
||||
os_install_net_cidr = {}
|
||||
|
||||
# routing
|
||||
os_install_net_route_hash = {}
|
||||
|
||||
# net for route
|
||||
os_install_net_route_network = {}
|
||||
|
||||
# gw for route
|
||||
os_install_net_route_gw = {}
|
||||
|
||||
# dev for route
|
||||
os_install_net_route_dev = {}
|
||||
|
||||
# src for route
|
||||
os_install_net_route_src = {}
|
||||
|
||||
# data by route for conf.d/net
|
||||
os_install_net_route = {'hide':True}
|
||||
|
||||
# data by route for NetworkManager
|
||||
os_install_net_nmroute = {'hide':True}
|
||||
|
||||
# dns servers
|
||||
os_install_net_dns = {}
|
||||
|
||||
# net setup (networkmanager or openrc)
|
||||
os_install_net_conf = {}
|
||||
|
||||
# net service configured
|
||||
os_install_net_settings = {'mode':'w',
|
||||
'value':''}
|
||||
|
||||
# dhcp or not
|
||||
os_install_net_dhcp_set = {}
|
||||
|
||||
# dns search
|
||||
os_install_net_dns_search = {'mode':"w"}
|
||||
|
||||
# domain
|
||||
os_install_net_domain = {'mode':"w"}
|
||||
|
@ -0,0 +1,108 @@
|
||||
#-*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2008-2012 Calculate Ltd. http://www.calculate-linux.org
|
||||
#
|
||||
# Licensed 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.
|
||||
|
||||
import os
|
||||
import sys
|
||||
from os import path
|
||||
from calculate.lib.cl_datavars import Variables
|
||||
from calculate.lib.variables import System
|
||||
|
||||
from calculate.lib.cl_lang import setLocalTranslate
|
||||
setLocalTranslate('cl_install',sys.modules[__name__])
|
||||
|
||||
class InstallSystem(System):
|
||||
vars = ["os_install_scratch","cl_autoupdate_set",
|
||||
"cl_install_autoupdate_set","os_install_arch_machine",
|
||||
"os_install_proxy","os_install_ntp","os_install_root_type",
|
||||
"os_install_root_dev","os_install_dev_from","os_install_lvm_set",
|
||||
"os_install_mdadm_set","os_grub_conf","os_grub2_path",
|
||||
"cl_chroot_grub","os_install_grub_devicemap_conf",
|
||||
"cl_distfiles_path","cl_pkgdir_path","os_format_type",
|
||||
"os_format_use","os_install_makeopts","cl_migrate_user",
|
||||
"cl_migrate_user_pwd","os_nvidia_mask","cl_autologin"]
|
||||
# install system in scratch mode
|
||||
os_install_scratch = {}
|
||||
|
||||
# (on or off) autoupdate config from install program
|
||||
cl_autoupdate_set = {'value': "off"}
|
||||
|
||||
# (on or off) autoupdate config from install program for install
|
||||
cl_install_autoupdate_set = {'mode':'w','value': "off"}
|
||||
|
||||
# install maching architecture
|
||||
os_install_arch_machine = {'mode':'w'}
|
||||
|
||||
# proxy server for system
|
||||
os_install_proxy = {'mode':'w',
|
||||
'value':''}
|
||||
|
||||
# nt server for system
|
||||
os_install_ntp = {'mode':'w',
|
||||
'value':'ntp0.zenon.net'}
|
||||
|
||||
# type of device for install
|
||||
os_install_root_type = {'mode':'w'}
|
||||
# root device of installed os
|
||||
os_install_root_dev = {}
|
||||
|
||||
# root device of previous installed os
|
||||
os_install_dev_from = {}
|
||||
|
||||
# using lvm
|
||||
os_install_lvm_set = {}
|
||||
|
||||
# using mdadm
|
||||
os_install_mdadm_set = {}
|
||||
|
||||
# current grub
|
||||
os_grub_conf = {}
|
||||
|
||||
# grub2 install path
|
||||
os_grub2_path = {'mode':'w'}
|
||||
|
||||
# grub chroot need for grub-mkconfig
|
||||
cl_chroot_grub = {}
|
||||
|
||||
# content of device.map file for grub
|
||||
os_install_grub_devicemap_conf = {}
|
||||
|
||||
# DISTFILES value
|
||||
cl_distfiles_path = {'mode':'w',
|
||||
'value':'/var/calculate/remote/distfiles'}
|
||||
# PKGDIR value
|
||||
cl_pkgdir_path = {'mode':'w'}
|
||||
|
||||
# filesystem format support by calcualte-install
|
||||
os_format_type = {}
|
||||
|
||||
# avialable format by mkfs utility
|
||||
os_format_use = {}
|
||||
|
||||
# makeconf makeopts
|
||||
os_install_makeopts = {'mode':'w'}
|
||||
|
||||
# migrate users
|
||||
cl_migrate_user = {}
|
||||
|
||||
# migrate users who need to change passwords
|
||||
cl_migrate_user_pwd = {}
|
||||
|
||||
# nvidia-drivers atom mask
|
||||
os_nvidia_mask = {}
|
||||
|
||||
# variable for autologin
|
||||
cl_autologin = {}
|
||||
|
@ -1,88 +0,0 @@
|
||||
#!/usr/bin/env python2
|
||||
#-*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2010 Calculate Ltd. http://www.calculate-linux.org
|
||||
#
|
||||
# Licensed 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.
|
||||
|
||||
import sys
|
||||
import os
|
||||
sys.path.insert(0,os.path.abspath('/usr/lib/calculate-2.2/calculate-lib/pym'))
|
||||
sys.path.insert(0,
|
||||
os.path.abspath('/usr/lib/calculate-2.2/calculate-install/pym'))
|
||||
|
||||
from cl_lang import lang
|
||||
tr = lang()
|
||||
tr.setGlobalDomain('cl_install')
|
||||
tr.setLanguage(sys.modules[__name__])
|
||||
from cl_install_cmd import install_cmd
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
install = install_cmd()
|
||||
install.logicObj.initVars()
|
||||
# set lang
|
||||
ret = install.optobj.parse_args()
|
||||
if ret is False:
|
||||
sys.exit(1)
|
||||
options, args = ret
|
||||
# set color/nocolor for display messages
|
||||
install.setPrintNoColor(options)
|
||||
# init variables
|
||||
install.setProxyNtpHostname(options.proxy,options.ntp,options.hostname)
|
||||
if not install.setNetworkParams(options.ip,options.route,options.dns,
|
||||
options.netconf,options.dhcp):
|
||||
sys.exit(1)
|
||||
if options.l:
|
||||
if not install.setLang(options.l):
|
||||
sys.exit(1)
|
||||
# set values to variables
|
||||
if not install.setVars(options):
|
||||
sys.exit(1)
|
||||
# check and set installed options
|
||||
install.setAction(options.startup,options.live)
|
||||
if not (options.startup or options.install or options.uninstall or
|
||||
options.live):
|
||||
if not install.checkAndSetInstallOptions(options.d,options.w,
|
||||
options.u,options.A):
|
||||
sys.exit(1)
|
||||
# print variables
|
||||
if options.v or options.filter or options.xml:
|
||||
install.printVars(options)
|
||||
sys.exit(0)
|
||||
if options.p:
|
||||
install.showPartitions()
|
||||
sys.exit(0)
|
||||
# check root
|
||||
if not install.isRoot():
|
||||
sys.exit(1)
|
||||
# configurate current system
|
||||
if options.startup:
|
||||
if not install.configureSystem(options.A):
|
||||
sys.exit(1)
|
||||
elif options.install:
|
||||
if not install.installPackage():
|
||||
sys.exit(1)
|
||||
elif options.uninstall:
|
||||
if not install.uninstallPackage():
|
||||
sys.exit(1)
|
||||
else:
|
||||
forceOpions = options.f or options.P
|
||||
flagSpinner = not options.nospinner
|
||||
if not install.installSystem(force=forceOpions, bootDisk=options.mbr,
|
||||
stdinReadPwd=options.P,builder=options.build,
|
||||
flagSpinner=flagSpinner,update=options.U):
|
||||
sys.exit(1)
|
||||
#if not install.writeVars(options):
|
||||
# sys.exit(1)
|
||||
sys.exit(0)
|
@ -0,0 +1,372 @@
|
||||
#!/usr/bin/python
|
||||
#-*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2012 Calculate Ltd. http://www.calculate-linux.org
|
||||
#
|
||||
# Licensed 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.
|
||||
|
||||
from suds.client import Client
|
||||
from suds import WebFault
|
||||
import traceback as tb
|
||||
from getpass import getpass
|
||||
import time, logging
|
||||
import glob, os
|
||||
from OpenSSL.crypto import load_certificate, FILETYPE_PEM
|
||||
import re, threading
|
||||
from calculate.api.client.function import *
|
||||
from calculate.api.client.pid_information import *
|
||||
from calculate.api.client.cert_func import *
|
||||
from calculate.api.client.sid_func import *
|
||||
from calculate.lib.cl_datavars import DataVars
|
||||
|
||||
from calculate.api.client.client_class import HTTPSClientAuthHandler, HTTPSClientCertTransport
|
||||
|
||||
VERSION = 0.1
|
||||
|
||||
class Client_suds(Client):
|
||||
def set_parameters (self, path_to_cert):
|
||||
self.CERT_FILE = path_to_cert + 'client.crt'
|
||||
self.CERT_PEM = path_to_cert + 'client.pem'
|
||||
self.REQ_FILE = path_to_cert + 'client.csr'
|
||||
self.PKEY_FILE = path_to_cert + 'client.key'
|
||||
self.SID_FILE = path_to_cert + 'sid.int'
|
||||
|
||||
|
||||
t = time
|
||||
|
||||
help_ = '''
|
||||
useradd, cl-unix-useradd - add unix user
|
||||
|
||||
say, say_hello - server function
|
||||
|
||||
halt, server_shutdown - shutdown server
|
||||
|
||||
run, server_start - start server
|
||||
|
||||
---- process methods ----
|
||||
|
||||
lsp, list-pid - listing all pids for this session
|
||||
|
||||
pi, pid-info - get information about select pid (0 for all)
|
||||
|
||||
kill, pid-kill - kill select pid
|
||||
|
||||
---- sessions methods ----
|
||||
|
||||
lss, list-session - listing all sessions in server
|
||||
|
||||
si, session-info - get information about select session (sid)
|
||||
|
||||
lsr, list-method - listing all accessible methods
|
||||
|
||||
q, quit - exit
|
||||
|
||||
h, help - display this help and exit
|
||||
|
||||
v, version - output version information and exit'''
|
||||
|
||||
#class NewType:
|
||||
#def __init__ (self, a, b):
|
||||
#self.a = int(a)
|
||||
#self.b = str(b)
|
||||
|
||||
def client_say_hello(client):
|
||||
#try:
|
||||
name2 = raw_input ("Enter your name: ")
|
||||
times = raw_input ("Enter number repeating (1-100): ")
|
||||
if (not name2.isalpha()):
|
||||
print "Name input Error!"
|
||||
return 2
|
||||
try:
|
||||
times = int(times)
|
||||
except:
|
||||
print "Number repeating input Error!"
|
||||
return 2
|
||||
if times < 1 or times > 100:
|
||||
print "Number repeating must be > 0 and < 100"
|
||||
return 2
|
||||
#get cert & sid
|
||||
#try:
|
||||
c_s = get_cert_sid(client.CERT_FILE, client.SID_FILE)
|
||||
#name = client.factory.create('s1:NewType')
|
||||
#name4 = client.factory.create('s1:UserInfoValue')
|
||||
|
||||
#name.helper = 4
|
||||
#name4.table.name = name2
|
||||
#name4.table.surname = "fadf"
|
||||
#name.value = name4
|
||||
#a = 3
|
||||
name = client.factory.create('s0:stringArray')
|
||||
name['string'] = [name2,"BBBBBBB"]
|
||||
s = client.service.say_hello(c_s[0], c_s[1], name, times)
|
||||
#print s.helper
|
||||
#print dir (s.value)
|
||||
#print s.value.data.name
|
||||
|
||||
#except:
|
||||
#print "Connection error! "
|
||||
#return 1
|
||||
try:
|
||||
if s[1][0] == "Permission denied":
|
||||
print s[1][0], s[1][1]
|
||||
return 3
|
||||
except:
|
||||
return 0
|
||||
|
||||
|
||||
def client_login (client):
|
||||
login = raw_input ("Login: ")
|
||||
password = raw_input ("password: ")
|
||||
try:
|
||||
name_re = re.compile("[^a-zA-Z_]")
|
||||
if name_re.findall(login):
|
||||
print "input error"
|
||||
return 2
|
||||
param = ""
|
||||
print login, password
|
||||
print client.service.cl_login(login = login, password = password)
|
||||
except:
|
||||
print "create error"
|
||||
|
||||
def client_useradd (client):
|
||||
user_name = raw_input ("User name: ")
|
||||
try:
|
||||
name_re = re.compile("[^a-zA-Z_]")
|
||||
if name_re.findall(user_name):
|
||||
print "input error"
|
||||
return 2
|
||||
param = ""
|
||||
print client.service.cl_unix_useradd(param = user_name)
|
||||
except:
|
||||
print "create error"
|
||||
|
||||
def client_userdel (client):
|
||||
user_name = raw_input ("User name: ")
|
||||
try:
|
||||
name_re = re.compile("[^a-zA-Z_]")
|
||||
if name_re.findall(user_name):
|
||||
print "input error"
|
||||
return 2
|
||||
param = ""
|
||||
print client.service.cl_unix_userdel(param = user_name)
|
||||
except:
|
||||
print "deleted error"
|
||||
|
||||
def client_shut (client):
|
||||
import soaplib
|
||||
try:
|
||||
temp = client.service.server_shutdown()
|
||||
if ( temp == 1):
|
||||
print "Server shutting down..."
|
||||
except:
|
||||
print "Connection error! "
|
||||
return 1
|
||||
|
||||
def client_signal(client):
|
||||
while True:
|
||||
time.sleep(5)
|
||||
if os.path.exists(client.SID_FILE) :
|
||||
fi = open(client.SID_FILE, 'r')
|
||||
temp = fi.read()
|
||||
fi.close()
|
||||
sid = int(temp)
|
||||
else:
|
||||
sid = 0
|
||||
reply = client.service.active_client(sid)
|
||||
|
||||
import argparse
|
||||
|
||||
def parse():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument(
|
||||
'-p', '--port', type=int, default = '8888', dest='port',
|
||||
help='port number')
|
||||
parser.add_argument(
|
||||
'--script', type=str, default = '/Server', dest='script_name',
|
||||
help='name script in server')
|
||||
parser.add_argument(
|
||||
'--host', type=str, default = 'localhost', dest='host',
|
||||
help='host destination')
|
||||
parser.add_argument(
|
||||
'--cert-path', type=str,
|
||||
default = '~/.calculate/client_cert/',
|
||||
nargs ='?', dest='path_to_cert',
|
||||
help='path to cert and key file')
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
#url = 'http://localhost:8888/TestService/?wsdl'
|
||||
|
||||
def https_server(client, signaling):
|
||||
global url
|
||||
client_post_auth(client)
|
||||
signaling.start()
|
||||
client_list_methods(client)
|
||||
sid = get_sid(client.SID_FILE)[1]
|
||||
print client.service.install_system_view(sid ,0)
|
||||
installInfo = create_obj(client,"install_system")
|
||||
for params in [
|
||||
# ("cl-install -d /dev/sda3:/:reiserfs:format -d /dev/sda5:/var/calculate:ext4:noformat",
|
||||
# listToArrayArray(client,
|
||||
# [["/dev/sda3","/","reiserfs","format"],
|
||||
# ["/dev/sda5","/var/calculate","ext4","noformat"]])),
|
||||
# ("cl-install -d /dev/sda3:swap -d /dev/sda5:/var/calculate:ext4:noformat",
|
||||
# listToArrayArray(client,
|
||||
# [["/dev/sda3","swap"],
|
||||
# ["/dev/sda5","/var/calculate","ext4","noformat"]])),
|
||||
# ("cl-install -d /var/calculate/home:/home -d /dev/sda5:/var/calculate:ext4:noformat",
|
||||
# listToArrayArray(client,
|
||||
# [["/var/calculate/home","/home"],
|
||||
# ["/dev/sda5","/var/calculate","ext4","noformat"]])),
|
||||
# ("cl-install -d /dev/sda10:/ -d /var/calculate/home:/home -d /dev/sda5:/var/calculate:ext4:noformat",
|
||||
# listToArrayArray(client,
|
||||
# [["/dev/sda10","/"],
|
||||
# ["/var/calculate/home","/home"],
|
||||
# ["/dev/sda5","/var/calculate","ext4","noformat"]])),
|
||||
# ("cl-install -d /dev/sda4:/ -d /var/calculate/home:/home -d /dev/sda5:/var/calculate:ext4:noformat",
|
||||
# listToArrayArray(client,
|
||||
# [["/dev/sda4","/"],
|
||||
# ["/var/calculate/home","/home"],
|
||||
# ["/dev/sda5","/var/calculate","ext4","noformat"]])),
|
||||
# ("cl-install -d /dev/sr0:/ -d /var/calculate/home:/home -d /dev/sda5:/var/calculate:ext4:noformat",
|
||||
# listToArrayArray(client,
|
||||
# [["/dev/sr0","/"],
|
||||
# ["/var/calculate/home","/home"],
|
||||
# ["/dev/sda5","/var/calculate","ext4","noformat"]])),
|
||||
# ("cl-install -d /var/calculate/home:/home -d /home:/test",
|
||||
# listToArrayArray(client,
|
||||
# [["/var/calculate/home","/home"],
|
||||
# ["/home","/test"]])),
|
||||
# ("cl-install -d var/calculate/home:/home -d /home2:test",
|
||||
# listToArrayArray(client,
|
||||
# [["var/calculate/home","/home"],
|
||||
# ["/home2","test"]])),
|
||||
# ("cl-install -d /dev/sda2:/ -d /dev/sda2:/var/calculate",
|
||||
# listToArrayArray(client,
|
||||
# [["/dev/sda2","/"],
|
||||
# ["/dev/sda2","/var/calculate"]])),
|
||||
# ("cl-install -d /dev/sda2:/ -d /dev/sda2:/var/calculate",
|
||||
# listToArrayArray(client,
|
||||
# [["/dev/sda2","/"],
|
||||
# ["/dev/sda3","/"]])),
|
||||
# ("cl-install -d /dev/sda2:/ -d /dev/sda5:/var/calculate",
|
||||
# listToArrayArray(client,
|
||||
# [["/dev/sda2","/"],
|
||||
# ["/dev/sda5","/var/calculate"]])),
|
||||
# ("cl-install -d /dev/sda3:/:vfat -d /dev/sda5:/var/calculate",
|
||||
# listToArrayArray(client,
|
||||
# [["/dev/sda3","/","vfat"],
|
||||
# ["/dev/sda5","/var/calculate"]])),
|
||||
# ("cl-install -d /dev/sda3:/:ntfs -d /dev/sda2:/var/calculate:ext3",
|
||||
# listToArrayArray(client,
|
||||
# [["/dev/sda3","/","ntfs"],
|
||||
# ["/dev/sda2","/var/calculate","ext3"]])),
|
||||
# ("cl-install -d /dev/sda3:/:flaksjdf -d /dev/sda5:/var/calculate",
|
||||
# listToArrayArray(client,
|
||||
# [["/dev/sda3","/","flaksjdf"],
|
||||
# ["/dev/sda5","/var/calculate"]])),
|
||||
("cl-install -d /dev/sda3:/ -d /dev/sda5:/var/calculate",
|
||||
listToArrayArray(client,
|
||||
[["/dev/sda3","/"],
|
||||
["/dev/sda5","/var/calculate"]]),
|
||||
listToArray(client,["falksdjflkasd"])),
|
||||
("cl-install -d /dev/sda3:/:flaksjdf -d /dev/sda5:/var/calculate",
|
||||
listToArrayArray(client,
|
||||
[["/dev/sda3","/","flaksjdf"],
|
||||
["/dev/sda5","/var/calculate"]]),
|
||||
listToArray(client,["/dev/sda"])),
|
||||
]:
|
||||
print params[0]
|
||||
installInfo.disk = params[1]
|
||||
if len(params) > 2:
|
||||
installInfo.mbr = params[2]
|
||||
errs = client.service.install_system(sid,installInfo,True)
|
||||
if errs:
|
||||
for err in errs[0]:
|
||||
print "Wrong value for '%s':%s"%(err.name,err.message)
|
||||
|
||||
def main():
|
||||
clear()
|
||||
#password = getpass(prompt="Password: ")
|
||||
logging.basicConfig(level=logging.FATAL)
|
||||
logging.getLogger('suds.client').setLevel(logging.FATAL)
|
||||
logging.getLogger('suds.transport').setLevel(logging.FATAL)
|
||||
logging.getLogger('suds.transport.http').setLevel(logging.FATAL)
|
||||
|
||||
#fmt = '%(asctime)s [%(levelname)s] %(funcName)s() @%(filename)s:%(lineno)d\n%(message)s\n'
|
||||
#logging.basicConfig(level=logging.INFO, format=fmt)
|
||||
|
||||
logging.getLogger('suds.umx.typed').setLevel(logging.ERROR)
|
||||
clVars = DataVars()
|
||||
clVars.flIniFile()
|
||||
homePath = clVars.Get('ur_home_path')
|
||||
|
||||
args = parse()
|
||||
|
||||
port = args.port
|
||||
host = args.host
|
||||
path_to_cert = args.path_to_cert
|
||||
path_to_cert = path_to_cert.replace("~",homePath)
|
||||
|
||||
script_name = args.script_name
|
||||
|
||||
print "wsdl is at: https://%s:%d%s/?wsdl" %(host, port, script_name)
|
||||
url = "https://%s:%d%s/?wsdl" %(host, port, script_name)
|
||||
|
||||
try:
|
||||
# client_start()
|
||||
|
||||
CERT_FILE = path_to_cert + 'client.crt'
|
||||
CERT_PEM = path_to_cert + 'client.pem'
|
||||
CERT_KEY = path_to_cert + 'client.key'
|
||||
|
||||
#If the certificate file is created
|
||||
if os.path.exists(CERT_KEY) and \
|
||||
os.path.exists(CERT_FILE):
|
||||
client = Client_suds(url,\
|
||||
transport = HTTPSClientCertTransport(CERT_KEY, CERT_FILE,\
|
||||
path_to_cert))
|
||||
#If the certificate file misses
|
||||
else:
|
||||
CERT_FILE = None
|
||||
CERT_KEY = None
|
||||
CERT_PEM = None
|
||||
client = Client_suds(url,\
|
||||
transport = HTTPSClientCertTransport(CERT_KEY, CERT_FILE,\
|
||||
path_to_cert))
|
||||
|
||||
#print CERT_PEM
|
||||
#print "#######################################"
|
||||
|
||||
#print dir (client)
|
||||
|
||||
#print "#######################################"
|
||||
|
||||
#threads = []
|
||||
|
||||
client.set_parameters (path_to_cert.replace("~",homePath))
|
||||
signaling = threading.Thread(target=client_signal, args = (client, ))
|
||||
#threads.append(signaling)
|
||||
signaling.setDaemon(True)
|
||||
https_server(client, signaling)
|
||||
#----------------------------------------------------
|
||||
except WebFault, f:
|
||||
print f
|
||||
print f.fault
|
||||
except Exception, e:
|
||||
#signaling.killed = True
|
||||
print e
|
||||
tb.print_exc()
|
||||
|
||||
if __name__=='__main__':
|
||||
main()
|
Loading…
Reference in new issue