diff --git a/ant-spk/app/dsm/config b/ant-spk/app/dsm/config
new file mode 100644
index 0000000..e949c1d
--- /dev/null
+++ b/ant-spk/app/dsm/config
@@ -0,0 +1,13 @@
+{
+ ".url": {
+ "org.example.synokvm": {
+ "type": "url",
+ "allUsers": true,
+ "title": "synoKVM",
+ "icon": "images/icon_{0}.png",
+ "protocol": "http",
+ "url": "/",
+ "port": "8000"
+ }
+ }
+}
diff --git a/ant-spk/app/dsm/images/icon_256.png b/ant-spk/app/dsm/images/icon_256.png
index b70e258..6075ff0 100644
Binary files a/ant-spk/app/dsm/images/icon_256.png and b/ant-spk/app/dsm/images/icon_256.png differ
diff --git a/ant-spk/app/dsm/images/icon_72.png b/ant-spk/app/dsm/images/icon_72.png
index a1a6b71..fcf18af 100644
Binary files a/ant-spk/app/dsm/images/icon_72.png and b/ant-spk/app/dsm/images/icon_72.png differ
diff --git a/ant-spk/app/dsm/index.html b/ant-spk/app/dsm/index.html
new file mode 100644
index 0000000..b462917
--- /dev/null
+++ b/ant-spk/app/dsm/index.html
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/ant-spk/build.xml b/ant-spk/build.xml
index 01ee634..24bb789 100644
--- a/ant-spk/build.xml
+++ b/ant-spk/build.xml
@@ -2,23 +2,30 @@
-
+
-
+
+
+
+
-
+
+
+
+
+
diff --git a/ant-spk/libvirtd.conf b/ant-spk/libvirtd.conf
new file mode 100644
index 0000000..f813a0c
--- /dev/null
+++ b/ant-spk/libvirtd.conf
@@ -0,0 +1,479 @@
+# Master libvirt daemon configuration file
+#
+# For further information consult http://libvirt.org/format.html
+#
+# NOTE: the tests/daemon-conf regression test script requires
+# that each "PARAMETER = VALUE" line in this file have the parameter
+# name just after a leading "#".
+
+#################################################################
+#
+# Network connectivity controls
+#
+
+# Flag listening for secure TLS connections on the public TCP/IP port.
+# NB, must pass the --listen flag to the libvirtd process for this to
+# have any effect.
+#
+# It is necessary to setup a CA and issue server certificates before
+# using this capability.
+#
+# This is enabled by default, uncomment this to disable it
+listen_tls = 0
+
+# Listen for unencrypted TCP connections on the public TCP/IP port.
+# NB, must pass the --listen flag to the libvirtd process for this to
+# have any effect.
+#
+# Using the TCP socket requires SASL authentication by default. Only
+# SASL mechanisms which support data encryption are allowed. This is
+# DIGEST_MD5 and GSSAPI (Kerberos5)
+#
+# This is disabled by default, uncomment this to enable it.
+listen_tcp = 1
+
+
+
+# Override the port for accepting secure TLS connections
+# This can be a port number, or service name
+#
+#tls_port = "16514"
+
+# Override the port for accepting insecure TCP connections
+# This can be a port number, or service name
+#
+#tcp_port = "16509"
+
+
+# Override the default configuration which binds to all network
+# interfaces. This can be a numeric IPv4/6 address, or hostname
+#
+# If the libvirtd service is started in parallel with network
+# startup (e.g. with systemd), binding to addresses other than
+# the wildcards (0.0.0.0/::) might not be available yet.
+#
+#listen_addr = "192.168.0.1"
+
+
+# Flag toggling mDNS advertizement of the libvirt service.
+#
+# Alternatively can disable for all services on a host by
+# stopping the Avahi daemon
+#
+# This is disabled by default, uncomment this to enable it
+#mdns_adv = 1
+
+# Override the default mDNS advertizement name. This must be
+# unique on the immediate broadcast network.
+#
+# The default is "Virtualization Host HOSTNAME", where HOSTNAME
+# is substituted for the short hostname of the machine (without domain)
+#
+#mdns_name = "Virtualization Host Joe Demo"
+
+
+#################################################################
+#
+# UNIX socket access controls
+#
+
+# Set the UNIX domain socket group ownership. This can be used to
+# allow a 'trusted' set of users access to management capabilities
+# without becoming root.
+#
+# This is restricted to 'root' by default.
+#unix_sock_group = "libvirt"
+
+# Set the UNIX socket permissions for the R/O socket. This is used
+# for monitoring VM status only
+#
+# Default allows any user. If setting group ownership, you may want to
+# restrict this too.
+#unix_sock_ro_perms = "0777"
+
+# Set the UNIX socket permissions for the R/W socket. This is used
+# for full management of VMs
+#
+# Default allows only root. If PolicyKit is enabled on the socket,
+# the default will change to allow everyone (eg, 0777)
+#
+# If not using PolicyKit and setting group ownership for access
+# control, then you may want to relax this too.
+#unix_sock_rw_perms = "0770"
+
+# Set the UNIX socket permissions for the admin interface socket.
+#
+# Default allows only owner (root), do not change it unless you are
+# sure to whom you are exposing the access to.
+#unix_sock_admin_perms = "0700"
+
+# Set the name of the directory in which sockets will be found/created.
+#unix_sock_dir = "/var/run/libvirt"
+
+
+
+#################################################################
+#
+# Authentication.
+#
+# - none: do not perform auth checks. If you can connect to the
+# socket you are allowed. This is suitable if there are
+# restrictions on connecting to the socket (eg, UNIX
+# socket permissions), or if there is a lower layer in
+# the network providing auth (eg, TLS/x509 certificates)
+#
+# - sasl: use SASL infrastructure. The actual auth scheme is then
+# controlled from /etc/sasl2/libvirt.conf. For the TCP
+# socket only GSSAPI & DIGEST-MD5 mechanisms will be used.
+# For non-TCP or TLS sockets, any scheme is allowed.
+#
+# - polkit: use PolicyKit to authenticate. This is only suitable
+# for use on the UNIX sockets. The default policy will
+# require a user to supply their own password to gain
+# full read/write access (aka sudo like), while anyone
+# is allowed read/only access.
+#
+# Set an authentication scheme for UNIX read-only sockets
+# By default socket permissions allow anyone to connect
+#
+# To restrict monitoring of domains you may wish to enable
+# an authentication mechanism here
+#auth_unix_ro = "none"
+
+# Set an authentication scheme for UNIX read-write sockets
+# By default socket permissions only allow root. If PolicyKit
+# support was compiled into libvirt, the default will be to
+# use 'polkit' auth.
+#
+# If the unix_sock_rw_perms are changed you may wish to enable
+# an authentication mechanism here
+#auth_unix_rw = "none"
+
+# Change the authentication scheme for TCP sockets.
+#
+# If you don't enable SASL, then all TCP traffic is cleartext.
+# Don't do this outside of a dev/test scenario. For real world
+# use, always enable SASL and use the GSSAPI or DIGEST-MD5
+# mechanism in /etc/sasl2/libvirt.conf
+#auth_tcp = "sasl"
+auth_tcp = "none"
+
+# Change the authentication scheme for TLS sockets.
+#
+# TLS sockets already have encryption provided by the TLS
+# layer, and limited authentication is done by certificates
+#
+# It is possible to make use of any SASL authentication
+# mechanism as well, by using 'sasl' for this option
+#auth_tls = "none"
+
+
+# Change the API access control scheme
+#
+# By default an authenticated user is allowed access
+# to all APIs. Access drivers can place restrictions
+# on this. By default the 'nop' driver is enabled,
+# meaning no access control checks are done once a
+# client has authenticated with libvirtd
+#
+#access_drivers = [ "polkit" ]
+
+#################################################################
+#
+# TLS x509 certificate configuration
+#
+
+
+# Override the default server key file path
+#
+#key_file = "/etc/pki/libvirt/private/serverkey.pem"
+
+# Override the default server certificate file path
+#
+#cert_file = "/etc/pki/libvirt/servercert.pem"
+
+# Override the default CA certificate path
+#
+#ca_file = "/etc/pki/CA/cacert.pem"
+
+# Specify a certificate revocation list.
+#
+# Defaults to not using a CRL, uncomment to enable it
+#crl_file = "/etc/pki/CA/crl.pem"
+
+
+
+#################################################################
+#
+# Authorization controls
+#
+
+
+# Flag to disable verification of our own server certificates
+#
+# When libvirtd starts it performs some sanity checks against
+# its own certificates.
+#
+# Default is to always run sanity checks. Uncommenting this
+# will disable sanity checks which is not a good idea
+#tls_no_sanity_certificate = 1
+
+# Flag to disable verification of client certificates
+#
+# Client certificate verification is the primary authentication mechanism.
+# Any client which does not present a certificate signed by the CA
+# will be rejected.
+#
+# Default is to always verify. Uncommenting this will disable
+# verification - make sure an IP whitelist is set
+#tls_no_verify_certificate = 1
+
+
+# A whitelist of allowed x509 Distinguished Names
+# This list may contain wildcards such as
+#
+# "C=GB,ST=London,L=London,O=Red Hat,CN=*"
+#
+# See the POSIX fnmatch function for the format of the wildcards.
+#
+# NB If this is an empty list, no client can connect, so comment out
+# entirely rather than using empty list to disable these checks
+#
+# By default, no DN's are checked
+#tls_allowed_dn_list = ["DN1", "DN2"]
+
+
+# A whitelist of allowed SASL usernames. The format for username
+# depends on the SASL authentication mechanism. Kerberos usernames
+# look like username@REALM
+#
+# This list may contain wildcards such as
+#
+# "*@EXAMPLE.COM"
+#
+# See the POSIX fnmatch function for the format of the wildcards.
+#
+# NB If this is an empty list, no client can connect, so comment out
+# entirely rather than using empty list to disable these checks
+#
+# By default, no Username's are checked
+#sasl_allowed_username_list = ["joe@EXAMPLE.COM", "fred@EXAMPLE.COM" ]
+
+
+# Override the compile time default TLS priority string. The
+# default is usually "NORMAL" unless overridden at build time.
+# Only set this is it is desired for libvirt to deviate from
+# the global default settings.
+#
+#tls_priority="NORMAL"
+
+
+#################################################################
+#
+# Processing controls
+#
+
+# The maximum number of concurrent client connections to allow
+# over all sockets combined.
+#max_clients = 5000
+
+# The maximum length of queue of connections waiting to be
+# accepted by the daemon. Note, that some protocols supporting
+# retransmission may obey this so that a later reattempt at
+# connection succeeds.
+#max_queued_clients = 1000
+
+# The maximum length of queue of accepted but not yet
+# authenticated clients. The default value is 20. Set this to
+# zero to turn this feature off.
+#max_anonymous_clients = 20
+
+# The minimum limit sets the number of workers to start up
+# initially. If the number of active clients exceeds this,
+# then more threads are spawned, up to max_workers limit.
+# Typically you'd want max_workers to equal maximum number
+# of clients allowed
+#min_workers = 5
+#max_workers = 20
+
+
+# The number of priority workers. If all workers from above
+# pool are stuck, some calls marked as high priority
+# (notably domainDestroy) can be executed in this pool.
+#prio_workers = 5
+
+# Total global limit on concurrent RPC calls. Should be
+# at least as large as max_workers. Beyond this, RPC requests
+# will be read into memory and queued. This directly impacts
+# memory usage, currently each request requires 256 KB of
+# memory. So by default up to 5 MB of memory is used
+#
+# XXX this isn't actually enforced yet, only the per-client
+# limit is used so far
+#max_requests = 20
+
+# Limit on concurrent requests from a single client
+# connection. To avoid one client monopolizing the server
+# this should be a small fraction of the global max_requests
+# and max_workers parameter
+#max_client_requests = 5
+
+# Same processing controls, but this time for the admin interface.
+# For description of each option, be so kind to scroll few lines
+# upwards.
+
+#admin_min_workers = 1
+#admin_max_workers = 5
+#admin_max_clients = 5
+#admin_max_queued_clients = 5
+#admin_max_client_requests = 5
+
+#################################################################
+#
+# Logging controls
+#
+
+# Logging level: 4 errors, 3 warnings, 2 information, 1 debug
+# basically 1 will log everything possible
+# Note: Journald may employ rate limiting of the messages logged
+# and thus lock up the libvirt daemon. To use the debug level with
+# journald you have to specify it explicitly in 'log_outputs', otherwise
+# only information level messages will be logged.
+#log_level = 3
+
+# Logging filters:
+# A filter allows to select a different logging level for a given category
+# of logs
+# The format for a filter is one of:
+# x:name
+# x:+name
+
+# where name is a string which is matched against the category
+# given in the VIR_LOG_INIT() at the top of each libvirt source
+# file, e.g., "remote", "qemu", or "util.json" (the name in the
+# filter can be a substring of the full category name, in order
+# to match multiple similar categories), the optional "+" prefix
+# tells libvirt to log stack trace for each message matching
+# name, and x is the minimal level where matching messages should
+# be logged:
+
+# 1: DEBUG
+# 2: INFO
+# 3: WARNING
+# 4: ERROR
+#
+# Multiple filters can be defined in a single @filters, they just need to be
+# separated by spaces.
+#
+# e.g. to only get warning or errors from the remote layer and only errors
+# from the event layer:
+#log_filters="3:remote 4:event"
+
+# Logging outputs:
+# An output is one of the places to save logging information
+# The format for an output can be:
+# x:stderr
+# output goes to stderr
+# x:syslog:name
+# use syslog for the output and use the given name as the ident
+# x:file:file_path
+# output to a file, with the given filepath
+# x:journald
+# output to journald logging system
+# In all case the x prefix is the minimal level, acting as a filter
+# 1: DEBUG
+# 2: INFO
+# 3: WARNING
+# 4: ERROR
+#
+# Multiple outputs can be defined, they just need to be separated by spaces.
+# e.g. to log all warnings and errors to syslog under the libvirtd ident:
+#log_outputs="3:syslog:libvirtd"
+#
+
+# Log debug buffer size:
+#
+# This configuration option is no longer used, since the global
+# log buffer functionality has been removed. Please configure
+# suitable log_outputs/log_filters settings to obtain logs.
+#log_buffer_size = 64
+
+
+##################################################################
+#
+# Auditing
+#
+# This setting allows usage of the auditing subsystem to be altered:
+#
+# audit_level == 0 -> disable all auditing
+# audit_level == 1 -> enable auditing, only if enabled on host (default)
+# audit_level == 2 -> enable auditing, and exit if disabled on host
+#
+#audit_level = 2
+#
+# If set to 1, then audit messages will also be sent
+# via libvirt logging infrastructure. Defaults to 0
+#
+#audit_logging = 1
+
+###################################################################
+# UUID of the host:
+# Host UUID is read from one of the sources specified in host_uuid_source.
+#
+# - 'smbios': fetch the UUID from 'dmidecode -s system-uuid'
+# - 'machine-id': fetch the UUID from /etc/machine-id
+#
+# The host_uuid_source default is 'smbios'. If 'dmidecode' does not provide
+# a valid UUID a temporary UUID will be generated.
+#
+# Another option is to specify host UUID in host_uuid.
+#
+# Keep the format of the example UUID below. UUID must not have all digits
+# be the same.
+
+# NB This default all-zeros UUID will not work. Replace
+# it with the output of the 'uuidgen' command and then
+# uncomment this entry
+#host_uuid = "00000000-0000-0000-0000-000000000000"
+#host_uuid_source = "smbios"
+
+###################################################################
+# Keepalive protocol:
+# This allows libvirtd to detect broken client connections or even
+# dead clients. A keepalive message is sent to a client after
+# keepalive_interval seconds of inactivity to check if the client is
+# still responding; keepalive_count is a maximum number of keepalive
+# messages that are allowed to be sent to the client without getting
+# any response before the connection is considered broken. In other
+# words, the connection is automatically closed approximately after
+# keepalive_interval * (keepalive_count + 1) seconds since the last
+# message received from the client. If keepalive_interval is set to
+# -1, libvirtd will never send keepalive requests; however clients
+# can still send them and the daemon will send responses. When
+# keepalive_count is set to 0, connections will be automatically
+# closed after keepalive_interval seconds of inactivity without
+# sending any keepalive messages.
+#
+#keepalive_interval = 5
+#keepalive_count = 5
+
+#
+# These configuration options are no longer used. There is no way to
+# restrict such clients from connecting since they first need to
+# connect in order to ask for keepalive.
+#
+#keepalive_required = 1
+#admin_keepalive_required = 1
+
+# Keepalive settings for the admin interface
+#admin_keepalive_interval = 5
+#admin_keepalive_count = 5
+
+###################################################################
+# Open vSwitch:
+# This allows to specify a timeout for openvswitch calls made by
+# libvirt. The ovs-vsctl utility is used for the configuration and
+# its timeout option is set by default to 5 seconds to avoid
+# potential infinite waits blocking libvirt.
+#
+#ovs_timeout = 5
diff --git a/ant-spk/spk/scripts/postinst b/ant-spk/spk/scripts/postinst
index 921587e..b7ea3a5 100644
--- a/ant-spk/spk/scripts/postinst
+++ b/ant-spk/spk/scripts/postinst
@@ -1,38 +1,32 @@
#!/bin/sh
# Copyright (C) 2000-2016 Synology Inc. All rights reserved.
+#SYNOPKG_PKGDEST=/synokvm
-p_dir()
-{
- [ -d "$1" ] || mkdir -p $1
-}
+ln -sf $SYNOPKG_PKGDEST/synokvm /usr/local/
-p_dir /usr/local/bin
-p_dir /usr/local/sbin
-p_dir /usr/local/lib
-p_dir /usr/local/libexec
-p_dir /usr/local/share
-p_dir /usr/local/etc
-p_dir /usr/local/var
-p_dir /usr/local/etc/logrotate.d
-p_dir /usr/local/var/cache/
-p_dir /usr/local/var/lib/
-p_dir /usr/local/var/log
-p_dir /usr/local/var/run
+#echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/synokvm/lib' >> /root/.bashrc
+echo 'export PATH=$PATH:/usr/local/synokvm/bin' >> /root/.bashrc
+ln -sf $SYNOPKG_PKGDEST/synokvm/sbin/ldconfig* /sbin/
+ln -sf $SYNOPKG_PKGDEST/synokvm/sbin/ebtables /usr/sbin/ebtables
+ln -sf $SYNOPKG_PKGDEST/synokvm/sbin/dnsmasq /usr/sbin/dnsmasq
+ln -sf $SYNOPKG_PKGDEST/synokvm/sbin/pm-is-supported /usr/sbin/pm-is-supported
-ln -s $SYNOPKG_PKGDEST/bin/* /usr/local/bin
-ln -s $SYNOPKG_PKGDEST/sbin/* /usr/local/sbin
-ln -s $SYNOPKG_PKGDEST/lib/* /usr/local/lib/
-ln -s $SYNOPKG_PKGDEST/libexec/* /usr/local/libexec/
-ln -s $SYNOPKG_PKGDEST/share/* /usr/local/share/
+echo "/usr/local/synokvm/lib" >> /etc/ld.so.conf
+ldconfig &
-ln -s $SYNOPKG_PKGDEST/etc/libvirt /usr/local/etc/
-ln -s $SYNOPKG_PKGDEST/etc/sasl2 /usr/local/etc/
-ln -s $SYNOPKG_PKGDEST/etc/logrotate.d/libvirtd /usr/local/etc/logrotate.d/
+chmod +x /usr/local/synokvm/libexec/libvirt_leaseshelper
+cd /usr/local/synokvm/lib
+ln -sf libvirt.so.0.3009.0 libvirt.so.0
+ln -sf libvirt.so.0.3009.0 libvirt.so
+ln -sf libvirt-qemu.so.0.3009.0 libvirt-qemu.so.0
+ln -sf libvirt-qemu.so.0.3009.0 libvirt-qemu.so
+ln -sf libvirt-lxc.so.0.3009.0 libvirt-lxc.so.0
+ln -sf libvirt-lxc.so.0.3009.0 libvirt-lxc.so
+ln -sf libvirt-admin.so.0.3009.0 libvirt-admin.so.0
+ln -sf libvirt-admin.so.0.3009.0 libvirt-admin.so
+
+export PYTHONPATH=$PYTHONPATH:/usr/local/synokvm/python2.7/site-packages
+python2 /usr/local/synokvm/webvirtmgr/autouser.py -u ${webvirtmgr_user} -p ${webvirtmgr_pass}
-ln -s $SYNOPKG_PKGDEST/var/cache/* /usr/local/var/cache/
-ln -s $SYNOPKG_PKGDEST/var/lib/* /usr/local/var/lib/
-ln -s $SYNOPKG_PKGDEST/var/log/* /usr/local/var/log/
-ln -s $SYNOPKG_PKGDEST/var/run/* /usr/local/var/run/
-echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib' >> /root/.profile
exit 0
diff --git a/ant-spk/spk/scripts/postuninst b/ant-spk/spk/scripts/postuninst
index a9c7885..77a1f2d 100644
--- a/ant-spk/spk/scripts/postuninst
+++ b/ant-spk/spk/scripts/postuninst
@@ -1,8 +1,15 @@
#!/bin/sh
# Copyright (C) 2000-2016 Synology Inc. All rights reserved.
-sed -i 's/export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:\/usr\/local\/lib//g' /root/.profile
+#sed -i '/^export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:\/usr\/local\/synokvm\/lib/d' /root/.bashrc
+sed -i '/^export PATH=$PATH:\/usr\/local\/synokvm\/bin/d' /root/.bashrc
-find /usr/local/ -type l -ls |grep synokvm |awk -F"->" '{print $1}'|awk '{print $NF}'|xargs rm -f
+rm -f /sbin/ldconfig*
+rm -f /usr/sbin/ebtables
+rm -f /usr/sbin/dnsmasq
+rm -f /usr/sbin/pm-is-supported
+
+#find /usr/local/ -type l -ls |grep synokvm |awk -F"->" '{print $1}'|awk '{print $NF}'|xargs rm -f
+rm -f /usr/local/synokvm
exit 0
diff --git a/ant-spk/spk/scripts/preinst b/ant-spk/spk/scripts/preinst
index 9f04343..7195479 100644
--- a/ant-spk/spk/scripts/preinst
+++ b/ant-spk/spk/scripts/preinst
@@ -1,4 +1,5 @@
#!/bin/sh
# Copyright (C) 2000-2016 Synology Inc. All rights reserved.
+
exit 0
diff --git a/ant-spk/spk/scripts/preuninst b/ant-spk/spk/scripts/preuninst
index 9f04343..baa7dee 100644
--- a/ant-spk/spk/scripts/preuninst
+++ b/ant-spk/spk/scripts/preuninst
@@ -1,4 +1,6 @@
#!/bin/sh
# Copyright (C) 2000-2016 Synology Inc. All rights reserved.
+mkdir -p /root/.synokvm/xmls
+cp /usr/local/synokvm/etc/libvirt/qemu/*.xml /root/.synokvm/xmls
exit 0
diff --git a/ant-spk/spk/scripts/start-stop-status b/ant-spk/spk/scripts/start-stop-status
index 888a8c1..f9a5ec7 100644
--- a/ant-spk/spk/scripts/start-stop-status
+++ b/ant-spk/spk/scripts/start-stop-status
@@ -70,28 +70,53 @@ case $1 in
start)
ret=`insert_kernel_modules`
if [ "$ret" != "0" ]; then
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
- virtlogd -d
- libvirtd -l -d -f /usr/local/etc/libvirt/libvirtd.conf
+
+ export PATH=$PATH:/usr/local/synokvm/bin:/usr/local/synokvm/sbin
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/synokvm/lib
+ /usr/local/synokvm/sbin/virtlogd -d
+ /usr/local/synokvm/sbin/libvirtd -l -d -f /usr/local/synokvm/etc/libvirt/libvirtd.conf
+
+ export PYTHONPATH=$PYTHONPATH:/usr/local/synokvm/python2.7/site-packages
+ iptables -N REJECT
+ python2 /usr/local/synokvm/webvirtmgr/manage.py run_gunicorn -c /usr/local/synokvm/webvirtmgr/conf/gunicorn.conf.py &
+ python2 /usr/local/synokvm/webvirtmgr/console/webvirtmgr-console &
+
+ for f in `ls /root/.synokvm/xmls/*.xml`; do
+ /usr/local/synokvm/bin/virsh define ${f}
+ rm -f ${f}
+ done
exit 0
else
exit 1
fi
;;
stop)
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/synokvm/lib
+ for f in `/usr/local/synokvm/bin/virsh list --state-running --name 2>/dev/null`;do
+ virsh shutdown ${f}
+ done
+ sleep 5
+ iptables -X REJECT
killall libvirtd
killall virtlogd
+ ps -ef|grep webvirtmgr-console|grep -v grep|awk '{print "kill -9 "$2}'|sh
+ ps -ef|grep run_gunicorn|grep -v grep|awk '{print "kill -9 "$2}'|sh
remove_kernel_modules
exit 0
;;
status)
- if [ -f "/usr/local/var/run/virtlogd.pid" -a -f "/usr/local/var/run/libvirtd.pid" ]; then
+ if [ -f "/usr/local/synokvm/var/run/virtlogd.pid" -a -f "/usr/local/synokvm/var/run/libvirtd.pid" ]; then
exit 0
else
exit 1
fi
;;
killall)
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/synokvm/lib
+ for f in `/usr/local/synokvm/bin/virsh list --state-running --name 2>/dev/null`;do
+ virsh shutdown ${f}
+ done
+ sleep 5
killall libvirtd
killall virtlogd
remove_kernel_modules
diff --git a/ant-spk/spk/wizard/install_uifile b/ant-spk/spk/wizard/install_uifile
new file mode 100644
index 0000000..8278ca3
--- /dev/null
+++ b/ant-spk/spk/wizard/install_uifile
@@ -0,0 +1,34 @@
+[{
+ "step_title": "Webvirtmgr User configuration",
+ "items": [{
+ "type": "textfield",
+ "desc": "Create Webvirtmgr manager",
+ "subitems": [{
+ "key": "webvirtmgr_user",
+ "desc": "Username",
+ "defaultValue": "admin",
+ "validator": {
+ "allowBlank": false,
+ "regex": {
+ "expr": "/^[a-zA-Z0-9]+/",
+ "errorText": "User name should be alphabet or numbers"
+ }
+ }
+ }]
+ }, {
+ "type": "password",
+ "desc": " ",
+ "subitems": [{
+ "key": "webvirtmgr_pass",
+ "desc": "Password",
+ "defaultValue": "",
+ "validator": {
+ "allowBlank": false,
+ "regex": {
+ "expr": "/^[a-zA-Z0-9]+/",
+ "errorText": "Password should be alphabet or numbers"
+ }
+ }
+ }]
+ }]
+}]
diff --git a/ant-spk/spk/wizard/install_uifile_chs b/ant-spk/spk/wizard/install_uifile_chs
new file mode 100644
index 0000000..9eb0d57
--- /dev/null
+++ b/ant-spk/spk/wizard/install_uifile_chs
@@ -0,0 +1,34 @@
+[{
+ "step_title": "添加Webvirtmgr管理员帐户",
+ "items": [{
+ "type": "textfield",
+ "desc": "webvirtmgr超级管理员",
+ "subitems": [{
+ "key": "webvirtmgr_user",
+ "desc": "用户名",
+ "defaultValue": "admin",
+ "validator": {
+ "allowBlank": false,
+ "regex": {
+ "expr": "/^[a-zA-Z0-9]+/",
+ "errorText": "用户名必须是数字或者字母"
+ }
+ }
+ }]
+ }, {
+ "type": "password",
+ "desc": " ",
+ "subitems": [{
+ "key": "webvirtmgr_pass",
+ "desc": "密码",
+ "defaultValue": "",
+ "validator": {
+ "allowBlank": false,
+ "regex": {
+ "expr": "/^[a-zA-Z0-9]+/",
+ "errorText": "密码必须是数字或者字母"
+ }
+ }
+ }]
+ }]
+}]