Skip to content

Commit 8b79352

Browse files
committed
Merge pull request #1 from learning-layers/install-fixes-for-achrails
Install fixes for achrails
2 parents fdffda8 + f4bba31 commit 8b79352

File tree

1 file changed

+26
-7
lines changed

1 file changed

+26
-7
lines changed

layersbox

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ programs = ["docker", "docker-compose"]
1919
base = "base.yml"
2020
conf = "box.yml"
2121
minimal = 'minimal.yml'
22-
# src = os.path.dirname(os.path.realpath(__file__))
22+
layersbox_src = os.path.dirname(os.path.realpath(__file__))
2323

2424
minimal_data = '''adapterdata:
2525
container_name: adapter-data
@@ -328,6 +328,17 @@ def generate_yml(dir):
328328
# open docker-compose.yml file for each service
329329
with open(join(dir, service_yml), 'r') as addon_file:
330330
addon = yaml.load(addon_file.read())
331+
# fix env_files definitions in addon to refer to path where service's files were copied
332+
for subservice_values in addon.values():
333+
if 'env_file' in subservice_values:
334+
new_envs = []
335+
for env in subservice_values['env_file']:
336+
# common.env shouldn't redirect to services' definition, it is *common*
337+
if env == 'common.env' or env.startswith('services'):
338+
new_envs.append(env)
339+
else:
340+
new_envs.append('services/%s/%s' % (service_name, env))
341+
subservice_values['env_file'] = new_envs
331342
# merged is the base one
332343
merged, more_databases = merge_ymls(merged, addon)
333344
# "extend" extends list by appending elements from the iterable
@@ -387,7 +398,11 @@ def box_install(args):
387398
os.makedirs(tmp_servicedir)
388399
if not os.path.exists(servicedir):
389400
os.makedirs(servicedir)
390-
response = urllib2.urlopen(url)
401+
try:
402+
response = urllib2.urlopen(url)
403+
except urllib2.HTTPError:
404+
print "Failed to download service package from %s" % url
405+
return 1
391406
with open(release_tar, 'w') as f:
392407
f.write(response.read())
393408
with tarfile.open(release_tar) as t:
@@ -528,7 +543,8 @@ def update_adapter(config, service_directory, service_name):
528543

529544
# copy nginx.adapted.conf into container
530545
#TODO: run the whole script directly from python
531-
subprocess.check_output(["./add_nginx_conf.sh", service_name])
546+
subprocess.check_output([join(layersbox_src,"add_nginx_conf.sh"),
547+
service_name])
532548

533549
# send the adapter the HUP kill signal
534550
subprocess.check_output(["docker", "kill", '--signal="HUP"', "adapter"])
@@ -629,8 +645,10 @@ def box_init(args):
629645
with open(page_zip, 'w') as f:
630646
f.write(response.read())
631647
with ZipFile(page_zip, 'r') as zip:
632-
os.makedirs(join(dir, 'html/'))
633-
zip.extractall(join(dir, 'html/'))
648+
html_dir = join(dir, 'html/')
649+
if not os.path.exists(html_dir):
650+
os.makedirs(html_dir)
651+
zip.extractall(html_dir)
634652
os.remove(page_zip)
635653

636654
config = {'services': {}}
@@ -640,8 +658,9 @@ def box_init(args):
640658
print("Make sure port 80 and 443 are not in use on this machine")
641659
print("You can start your LayersBox with 'layersbox start'")
642660
# Workaround for logs dir not being available in the adapterdata container
643-
os.makedirs(join(dir, 'logs/'))
644-
661+
log_dir = join(dir, 'logs/')
662+
if not os.path.exists(log_dir):
663+
os.makedirs(log_dir)
645664
return 0
646665

647666

0 commit comments

Comments
 (0)