def deployment_tasks(self, params): """Modify deployment_tasks for release. fuel rel --rel 1 --deployment-tasks --download fuel rel --rel 1 --deployment-tasks --upload """ release = Release(params.release) dir_path = self.full_path_directory( params.dir, 'release_{0}'.format(params.release)) full_path = '{0}/deployment_tasks'.format(dir_path) if params.download: tasks = release.get_deployment_tasks() self.serializer.write_to_path(full_path, tasks) print("Deployment tasks for release {0} " "downloaded into {1}.yaml.".format(release.id, full_path)) elif params.upload: tasks = self.serializer.read_from_file(full_path) release.update_deployment_tasks(tasks) print("Deployment tasks for release {0}" " uploaded from {1}.yaml".format(release.id, dir_path))
def sync_deployment_tasks(self, params): """Upload tasks for different releases based on directories. The string identifier for the release(s) to update is expected to be found in the path (see `fuel release`), like: /etc/puppet/<release>/ /etc/puppet/liberty-9.0 fuel rel --sync-deployment-tasks --dir /etc/puppet/liberty-9.0/ fuel rel --sync-deployment-tasks --fp '*tasks.yaml' In case no directory was provided: fuel rel --sync-deployment-tasks The current directory will be used """ all_rels = Release.get_all_data() real_path = os.path.realpath(params.dir) serialized_tasks = defaultdict(list) versions = set([r['version'] for r in all_rels]) for file_name in utils.iterfiles(real_path, params.filepattern): for version in versions: if version in file_name: serialized_tasks[version].extend( self.serializer.read_from_full_path(file_name)) for rel in all_rels: release = Release(rel['id']) data = serialized_tasks.get(rel['version']) if data: release.update_deployment_tasks(data) print("Deployment tasks synchronized for release" " {0} of version {1}".format(rel['name'], rel['version'])) else: print("No tasks were synchronized for release {0} " "of version {1}.(Hint: nothing matched " "{2}/{1}/{3})".format(rel['name'], rel['version'], real_path, params.filepattern))
def sync_deployment_tasks(self, params): """Upload tasks for different releases based on directories. Unique identifier of the release should in the path, like: /etc/puppet/2014.2-6.0/ fuel rel --sync-deployment-tasks --dir /etc/puppet/2014.2-6.0/ fuel rel --sync-deployment-tasks --fp '*tasks.yaml' In case no directory will be provided: fuel rel --sync-deployment-tasks Current directory will be used """ all_rels = Release.get_all_data() real_path = os.path.realpath(params.dir) serialized_tasks = defaultdict(list) versions = set([r['version'] for r in all_rels]) for file_name in utils.iterfiles(real_path, params.filepattern): for version in versions: if version in file_name: serialized_tasks[version].extend( self.serializer.read_from_full_path(file_name)) for rel in all_rels: release = Release(rel['id']) data = serialized_tasks.get(rel['version']) if data: release.update_deployment_tasks(data) print("Deployment tasks syncronized for release" " {0} of version {1}".format(rel['name'], rel['version'])) else: print("No tasks found for release {0} " "of version {1}".format(rel['name'], rel['version']))
def sync_deployment_tasks(self, params): """Upload tasks for different releases based on directories. Unique identifier of the release should in the path, like: /etc/puppet/2014.2-6.0/ fuel rel --sync-deployment-tasks --dir /etc/puppet/2014.2-6.0/ fuel rel --sync-deployment-tasks --fp '*tasks.yaml' In case no directory will be provided: fuel rel --sync-deployment-tasks Current directory will be used """ all_rels = Release.get_all_data() real_path = os.path.realpath(params.dir) serialized_tasks = defaultdict(list) versions = set([r['version'] for r in all_rels]) for file_name in utils.iterfiles(real_path, params.filepattern): for version in versions: if version in file_name: serialized_tasks[version].extend( self.serializer.read_from_full_path(file_name)) for rel in all_rels: release = Release(rel['id']) data = serialized_tasks.get(rel['version']) if data: release.update_deployment_tasks(data) print("Deployment tasks synchronized for release" " {0} of version {1}".format(rel['name'], rel['version'])) else: print("No tasks found for release {0} " "of version {1}".format(rel['name'], rel['version']))