Commit ee0ae1e7 authored by Lionel Morin's avatar Lionel Morin

Merge branch '211_transfert_files' into 'develop'

211 transfert files

See merge request !5
parents 3f748384 a63e82d3
Pipeline #451 passed with stage
in 0 seconds
......@@ -67,7 +67,7 @@ RUN curl https://repo.saltstack.com/apt/ubuntu/18.04/amd64/2018.3/SALTSTACK-GPG-
ENV EOLE_FORMULA_DIR=/srv/formulas
ENV EOLE_CONFIGURATION_FORMULA_URL="https://dev-eole.ac-dijon.fr/git/eole-configuration-formula.git"
ENV EOLE_CONFIGURATION_FORMULA_REF=0a9f42bc90ec10631f9c58289bc990633654ab10
ENV EOLE_CONFIGURATION_FORMULA_REF=ecc1d134036bfcb5abb34b0d55defce8abbb8ad1
RUN git clone "${EOLE_CONFIGURATION_FORMULA_URL}" "${EOLE_FORMULA_DIR}/eole-configuration-formula" \
&& cd "${EOLE_FORMULA_DIR}/eole-configuration-formula" \
......
......@@ -5,7 +5,9 @@ import asyncio
import signal
import time
import json, yaml
from os import path, makedirs, getpid, unlink
from os import path, makedirs, getpid, unlink, remove, walk, path
import tarfile
import base64
from autobahn.wamp.exception import ApplicationError
......@@ -147,9 +149,11 @@ class SaltRunner(ZephirCommonController):
async def download_configuration_files(self,_session_user,
server_id):
minion_dir = '{0}/{1}'.format(MINION_DIR, server_id)
minion_dir = '{0}{1}'.format(MINION_DIR, server_id)
creolefuncs_file_path = '{0}/config.creolefuncs'.format(minion_dir)
pillar_file_path = '/srv/pillar/pillars_{0}.sls'.format(server_id)
creole_files_path = '{0}/creole_files.tar.gz'.format(minion_dir)
makedirs(minion_dir, exist_ok=True)
server = await self.call('v1.server.describe',
......@@ -172,19 +176,37 @@ class SaltRunner(ZephirCommonController):
inheritance=False,
resolvdepends=False,
creolefuncs=True,
probes=True)
probes=True,
conffiles=True)
with open(creolefuncs_file_path, 'w') as fh:
fh.write(servermodel['creolefuncs'])
with open(creole_files_path, 'wb') as fh:
fh.write(base64.b64decode(servermodel['conffiles']))
tar = tarfile.open(creole_files_path,'r:gz')
tar.extractall(f'{minion_dir}')
remove(creole_files_path)
files = []
# r=root, d=directories, f = files
for r, d, f in walk(f'{minion_dir}/creole_files'):
for file in f:
files.append(path.join(r, file))
for f in files:
print(f)
self._download_env(server_id, servermodel)
def _download_env(self, server_id, servermodel):
minion_dir = '{0}/{1}'.format(MINION_DIR, server_id)
minion_dir = '{0}{1}'.format(MINION_DIR, server_id)
makedirs(minion_dir, exist_ok=True)
env_file_path = '{0}/config.env'.format(minion_dir)
env_file_path = '{0}/config.env'.format(minion_dir)
with open(env_file_path, 'w') as fh:
fh.write(servermodel['probes'])
fh.write(servermodel['probes'])
async def download_env(self,server_id):
_session_user = {'profil': 'root'}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment