def task_sync_stop(self, ticket_id, app_name, sync_ticket_id): app = yield self.app_controller.get(app_name) client = yield app.get_client() s = Service(client=client) s.app_name = app_name s.name = '%s_%s_%s' % (app_name, '_rsync_', sync_ticket_id) yield s.inspect() if s.is_running(): self.task_log(ticket_id, 'Stopping rsync container.') yield s.stop(ticket_id) if s.is_created(): self.task_log(ticket_id, 'Destroying rsync container.') yield s.destroy(ticket_id)
def task_sync(self, ticket_id, app_name, service_name, volume): app = yield self.app_controller.get(app_name) config = yield app.load() client = yield app.get_client() s = Service(client=client) s.app_name = app_name s.name = '%s_%s_%s' % (app_name, '_rsync_', ticket_id) s.image_builder = PrebuiltImageBuilder(image='modera/rsync') s.ports = [873] if service_name: if not volume: raise VolumeNotFound('In case of service name is provided, volume name is mandatory!') services = config.get_services() service_full_name = '%s.%s' % (service_name, app_name) try: service = services[service_full_name] all_volumes = service.list_volumes() if not volume in all_volumes: raise VolumeNotFound('Volume with name %s no found!' % volume) volume_name = volume s.volumes_from = service_full_name except KeyError: raise VolumeNotFound('Service with name %s was not found!' % service_name) else: s.volumes = [{ 'local': app.config['path'], 'remote': '/volume' }] volume_name = '/volume' s.env = { 'USERNAME': ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(32)), 'PASSWORD': ''.join( random.choice(string.ascii_lowercase + string.punctuation + string.digits) for _ in range(32)), 'ALLOW': '*' } yield s.start(ticket_id) deployment = yield app.get_deployment() if deployment.local: sync_host = 'me' else: sync_host = deployment.host print s.public_ports() defer.returnValue({ 'env': s.env, 'container': s.name, 'host': sync_host, 'port': s.public_ports()['873/tcp'][0]['HostPort'], 'volume': volume_name, 'ticket_id': ticket_id })
def task_sync(self, ticket_id, app_name, service_name, volume): app = yield self.app_controller.get(app_name) config = yield app.load() client = yield app.get_client() s = Service(client=client) s.app_name = app_name s.name = '%s_%s_%s' % (app_name, '_rsync_', ticket_id) s.image_builder = PrebuiltImageBuilder(image='modera/rsync') s.ports = [873] if service_name: if not volume: raise VolumeNotFound( 'In case of service name is provided, volume name is mandatory!' ) services = config.get_services() service_full_name = '%s.%s' % (service_name, app_name) try: service = services[service_full_name] all_volumes = service.list_volumes() if not volume in all_volumes: raise VolumeNotFound('Volume with name %s no found!' % volume) volume_name = volume s.volumes_from = service_full_name except KeyError: raise VolumeNotFound('Service with name %s was not found!' % service_name) else: s.volumes = [{'local': app.config['path'], 'remote': '/volume'}] volume_name = '/volume' s.env = { 'USERNAME': ''.join( random.choice(string.ascii_lowercase + string.digits) for _ in range(32)), 'PASSWORD': ''.join( random.choice(string.ascii_lowercase + string.punctuation + string.digits) for _ in range(32)), 'ALLOW': '*' } yield s.start(ticket_id) deployment = yield app.get_deployment() if deployment.local: sync_host = 'me' else: sync_host = deployment.host print s.public_ports() defer.returnValue({ 'env': s.env, 'container': s.name, 'host': sync_host, 'port': s.public_ports()['873/tcp'][0]['HostPort'], 'volume': volume_name, 'ticket_id': ticket_id })