Example #1
0
def _init_driver(params):
    driver_cls = registry.get_driver(params['driver'])

    args = params.get('args') or {}  # driver may have no arguments
    if args:
        jsonschema.validate(args, driver_cls.CONFIG_SCHEMA)
    return driver_cls(args)
Example #2
0
    def run(self):
        drv_name = self.arguments[0]

        driver = registry.get_driver(drv_name)
        types = ', '.join(class_.__name__ for class_ in driver.__bases__)
        doc = '\n'.join(docstrings.prepare_docstring(driver.__doc__))

        subcat = utils.subcategory('{} [{}]'.format(drv_name, types))
        subcat.extend(utils.parse_text(doc))
        return [subcat]
Example #3
0
    def run(self):
        drv_name = self.arguments[0]

        driver = registry.get_driver(drv_name)
        types = ', '.join(class_.__name__ for class_ in driver.__bases__)
        services = sorted(driver.list_supported_services())
        doc = '\n'.join(docstrings.prepare_docstring(driver.__doc__))

        subcat = utils.subcategory('{} [{}]'.format(drv_name, types))
        subcat.extend(utils.parse_text(doc))
        subcat.extend(utils.parse_text('**Default services:**'))
        subcat.extend(utils.rstlist(services))
        return [subcat]
    def get_service(self, name):
        """Get service with specified name

        :param name: name of the service
        :return: Service
        """
        if name not in self.services:
            raise error.ServiceError(
                '{} driver does not support {!r} service'.format(
                    self.NAME.title(), name))

        config = self.services[name]
        klazz = registry.get_driver(config["driver"])
        return klazz(node_cls=self.NODE_CLS, cloud_management=self,
                     service_name=name, config=config["args"],
                     hosts=config.get('hosts'))
    def get_container(self, name):
        """Get container with specified name

        :param name: name of the container
        :return: Container
        """
        if name not in self.containers:
            raise error.ContainerError(
                '{} driver does not support {!r} container'.format(
                    self.NAME.title(), name))

        config = self.containers[name]
        klazz = registry.get_driver(config["driver"])
        return klazz(node_cls=self.NODE_CLS, cloud_management=self,
                     container_name=name, config=config["args"],
                     hosts=config.get('hosts'))
Example #6
0
def _init_driver(params):
    driver_cls = registry.get_driver(params['driver'])
    jsonschema.validate(params['args'], driver_cls.CONFIG_SCHEMA)
    return driver_cls(params['args'])
Example #7
0
 def validate_containers(self):
     for container_name, container_conf in self.containers.items():
         container_cls = registry.get_driver(container_conf["driver"])
         jsonschema.validate(container_conf['args'],
                             container_cls.CONFIG_SCHEMA)
Example #8
0
 def validate_services(self):
     for service_name, serive_conf in self.services.items():
         serive_cls = registry.get_driver(serive_conf["driver"])
         jsonschema.validate(serive_conf['args'], serive_cls.CONFIG_SCHEMA)