Browse Source

More tweaks to ee stack install

bugfixes
gau1991 10 years ago
parent
commit
98a0a9d180
  1. 80
      ee/cli/plugins/stack.py
  2. 39
      ee/core/download.py

80
ee/cli/plugins/stack.py

@ -44,14 +44,14 @@ class EEStackController(CementBaseController):
print("Inside EEStackController.default().")
@expose(hide=True)
def preseed_pref(self, packages):
if "postfix" in packages:
def pre_pref(self, apt-packages):
if "postfix" in apt-packages:
EEShellExec.cmd_exec("echo \"postfix postfix/main_mailer_type "
"string 'Internet Site'\" | "
"debconf-set-selections")
EEShellExec.cmd_exec("echo \"postfix postfix/mailname string "
"$(hostname -f)\" | debconf-set-selections")
if "mysql" in packages:
if "mysql" in apt-packages:
chars = ''.join(random.sample(string.letters, 8))
EEShellExec.cmd_exec("echo \"percona-server-server-5.6 "
"percona-server-server/root_password "
@ -65,74 +65,82 @@ class EEStackController(CementBaseController):
@expose()
def install(self):
pkg = EEAptGet()
packages = []
apt-packages = []
if self.app.pargs.web:
packages = (packages + EEVariables.ee_nginx + EEVariables.ee_php +
EEVariables.ee_mysql)
apt-packages = (apt-packages + EEVariables.ee_nginx +
EEVariables.ee_php + EEVariables.ee_mysql)
if self.app.pargs.admin:
pass
#packages = packages + EEVariables.ee_nginx
#apt-packages = apt-packages + EEVariables.ee_nginx
if self.app.pargs.mail:
pass
#packages = packages + EEVariables.ee_nginx
#apt-packages = apt-packages + EEVariables.ee_nginx
if self.app.pargs.nginx:
packages = packages + EEVariables.ee_nginx
apt-packages = apt-packages + EEVariables.ee_nginx
if self.app.pargs.php:
packages = packages + EEVariables.ee_php
apt-packages = apt-packages + EEVariables.ee_php
if self.app.pargs.mysql:
packages = packages + EEVariables.ee_mysql
apt-packages = apt-packages + EEVariables.ee_mysql
if self.app.pargs.postfix:
packages = packages + EEVariables.ee_postfix
self.preseed_pref(packages)
pkg.install(packages)
apt-packages = apt-packages + EEVariables.ee_postfix
if self.app.pargs.wpcli:
packages = packages + [['url', 'path']]
self.pre_pref(apt-packages)
if len(apt-packages) not 0:
pkg.install(apt-packages)
if len(packages) not 0:
EEDownload.download(packages)
self.post_pref(apt-packages, packages)
@expose()
def remove(self):
pkg = EEAptGet()
packages = []
apt-packages = []
if self.app.pargs.web:
packages = (packages + EEVariables.ee_nginx + EEVariables.ee_php +
EEVariables.ee_mysql)
apt-packages = (apt-packages + EEVariables.ee_nginx +
EEVariables.ee_php + EEVariables.ee_mysql)
if self.app.pargs.admin:
pass
#packages = packages + EEVariables.ee_nginx
#apt-packages = apt-packages + EEVariables.ee_nginx
if self.app.pargs.mail:
pass
#packages = packages + EEVariables.ee_nginx
#apt-packages = apt-packages + EEVariables.ee_nginx
if self.app.pargs.nginx:
packages = packages + EEVariables.ee_nginx
apt-packages = apt-packages + EEVariables.ee_nginx
if self.app.pargs.php:
packages = packages + EEVariables.ee_php
apt-packages = apt-packages + EEVariables.ee_php
if self.app.pargs.mysql:
packages = packages + EEVariables.ee_mysql
apt-packages = apt-packages + EEVariables.ee_mysql
if self.app.pargs.postfix:
packages = packages + EEVariables.ee_postfix
print(packages)
pkg.remove(packages)
apt-packages = apt-packages + EEVariables.ee_postfix
if self.app.pargs.wpcli:
pass
pkg.remove(apt-packages)
@expose()
def purge(self):
pkg = EEAptGet()
packages = []
apt-packages = []
if self.app.pargs.web:
packages = (packages + EEVariables.ee_nginx + EEVariables.ee_php +
EEVariables.ee_mysql)
apt-packages = (apt-packages + EEVariables.ee_nginx
+ EEVariables.ee_php + EEVariables.ee_mysql)
if self.app.pargs.admin:
pass
#packages = packages + EEVariables.ee_nginx
#apt-packages = apt-packages + EEVariables.ee_nginx
if self.app.pargs.mail:
pass
#packages = packages + EEVariables.ee_nginx
#apt-packages = apt-packages + EEVariables.ee_nginx
if self.app.pargs.nginx:
packages = packages + EEVariables.ee_nginx
apt-packages = apt-packages + EEVariables.ee_nginx
if self.app.pargs.php:
packages = packages + EEVariables.ee_php
apt-packages = apt-packages + EEVariables.ee_php
if self.app.pargs.mysql:
packages = packages + EEVariables.ee_mysql
apt-packages = apt-packages + EEVariables.ee_mysql
if self.app.pargs.postfix:
packages = packages + EEVariables.ee_postfix
print(packages)
pkg.purge(packages)
apt-packages = apt-packages + EEVariables.ee_postfix
pkg.purge(apt-packages)
def load(app):

39
ee/core/download.py

@ -9,20 +9,25 @@ class EEDownload():
def __init__():
pass
def download(url, filename):
try:
directory = os.path.dirname(filename)
if not os.path.exists(directory):
os.makedirs(directory)
urllib.request.urlretrieve(url, filename)
return True
except urllib.error.URLError as e:
print("Unable to donwload file, [{err}]".format(err=str(e.reason)))
return False
except urllib.error.HTTPError as e:
print("Package download failed. [{err}]".format(err=str(e.reason)))
return False
except urllib.error.ContentTooShortError as e:
print("Package download failed. The amount of the downloaded data"
"is less than the expected amount")
return False
def download(packages):
for package in packages:
url = package[0]
filename = package[1]
try:
directory = os.path.dirname(filename)
if not os.path.exists(directory):
os.makedirs(directory)
urllib.request.urlretrieve(url, filename)
return True
except urllib.error.URLError as e:
print("Unable to donwload file, [{err}]"
.format(err=str(e.reason)))
return False
except urllib.error.HTTPError as e:
print("Package download failed. [{err}]"
.format(err=str(e.reason)))
return False
except urllib.error.ContentTooShortError as e:
print("Package download failed. The amount of the
"downloaded data is less than the expected amount")
return False

Loading…
Cancel
Save