Esempio n. 1
0
 def check_container(self, schain_name, volume_required=False):
     name = get_container_name(SCHAIN_CONTAINER, schain_name)
     info = dutils.get_info(name)
     if dutils.to_start_container(info):
         logger.warning(
             f'sChain: {schain_name}. '
             f'sChain container: {name} not found, trying to create.')
         if volume_required and not dutils.data_volume_exists(schain_name):
             logger.error(
                 f'sChain: {schain_name}. Cannot create sChain container without data volume'
             )
         return True
Esempio n. 2
0
def test_restart_all_schains(mocked_client):
    schain_names = ['test1', 'test2', 'test3']
    schain_image = get_image_name(SCHAIN_CONTAINER)
    cont_names = [
        get_container_name(SCHAIN_CONTAINER, name) for name in schain_names
    ]
    start_time = {}

    def get_schain_time(cont_name):
        cont = mocked_client.client.containers.get(cont_name)
        return cont.attrs['State']['StartedAt']

    for cont_name in cont_names:
        mocked_client.client.containers.run(schain_image,
                                            name=cont_name,
                                            detach=True)
        start_time[cont_name] = get_schain_time(cont_name)
    mocked_client.restart_all_schains()
    for cont_name in cont_names:
        assert get_schain_time(cont_name) != start_time[cont_name]
Esempio n. 3
0
def remove_ima_container(schain_name):
    log_remove('IMA container', schain_name)
    ima_container_name = get_container_name(IMA_CONTAINER, schain_name)
    dutils.safe_rm(ima_container_name, v=True, force=True)
Esempio n. 4
0
def remove_schain_container(schain_name):
    log_remove('container', schain_name)
    schain_container_name = get_container_name(SCHAIN_CONTAINER, schain_name)
    return dutils.safe_rm(schain_container_name, v=True, force=True)
Esempio n. 5
0
 def check_ima_container(self):
     name = get_container_name(IMA_CONTAINER, self.name)
     info = dutils.get_info(name)
     self._ima_container = dutils.container_running(info)