Beispiel #1
0
 async def rescan_images(self,
                         registry: str = None,
                         *,
                         reporter: ProgressReporter = None) -> None:
     if registry is None:
         registries = []
         data = await self.etcd.get_prefix('config/docker/registry')
         for key, val in data.items():
             if key:
                 registries.append(etcd_unquote(key))
     else:
         registries = [registry]
     coros = []
     for registry in registries:
         log.info('Scanning kernel images from the registry "{0}"',
                  registry)
         registry_info = await self.etcd.get_prefix(
             f'config/docker/registry/{etcd_quote(registry)}')
         if not registry_info:
             log.error('Unknown registry: "{0}"', registry)
             continue
         coros.append(
             self._rescan_images_single_registry(registry, registry_info,
                                                 reporter))
     await asyncio.gather(*coros)
Beispiel #2
0
def unquote(cli_ctx, value):
    '''
    Unquote the given string used as a URL piece in etcd keys.
    '''
    print(etcd_unquote(value))
Beispiel #3
0
 async def _scan_reverse_aliases(self):
     aliases = await self.etcd.get_prefix('images/_aliases')
     result = defaultdict(list)
     for key, value in aliases.items():
         result[value].append(etcd_unquote(key))
     return result
Beispiel #4
0
 async def _scan_reverse_aliases(self) -> Mapping[str, List[str]]:
     aliases = await self.etcd.get_prefix('images/_aliases')
     result: DefaultDict[str, List[str]] = defaultdict(list)
     for key, value in aliases.items():
         result[value].append(etcd_unquote(key))
     return dict(result)
Beispiel #5
0
def unquote(cli_ctx: CLIContext, value) -> None:
    '''
    Unquote the given string used as a URL piece in etcd keys.
    '''
    print(etcd_unquote(value))