def boot_services(self, node: CoreNode) -> None: """ Start all services on a node. :param node: node to start services on :return: nothing """ boot_paths = ServiceDependencies(node.services).boot_paths() funcs = [] for boot_path in boot_paths: args = (node, boot_path) funcs.append((self._start_boot_paths, args, {})) result, exceptions = utils.threadpool(funcs) if exceptions: raise ServiceBootError(*exceptions)
def create_nodes(session, node_protos): """ Create nodes using a thread pool and wait for completion. :param core.emulator.session.Session session: session to create nodes in :param list[core_pb2.Node] node_protos: node proto messages :return: results and exceptions for created nodes :rtype: tuple """ funcs = [] for node_proto in node_protos: _type, _id, options = add_node_data(node_proto) args = (_type, _id, options) funcs.append((session.add_node, args, {})) start = time.monotonic() results, exceptions = utils.threadpool(funcs) total = time.monotonic() - start logging.debug("grpc created nodes time: %s", total) return results, exceptions
def create_nodes( session: Session, node_protos: List[core_pb2.Node] ) -> Tuple[List[NodeBase], List[Exception]]: """ Create nodes using a thread pool and wait for completion. :param session: session to create nodes in :param node_protos: node proto messages :return: results and exceptions for created nodes """ funcs = [] for node_proto in node_protos: _type, _id, options = add_node_data(node_proto) _class = session.get_node_class(_type) args = (_class, _id, options) funcs.append((session.add_node, args, {})) start = time.monotonic() results, exceptions = utils.threadpool(funcs) total = time.monotonic() - start logging.debug("grpc created nodes time: %s", total) return results, exceptions
def edit_links( session: Session, link_protos: List[core_pb2.Link] ) -> Tuple[List[None], List[Exception]]: """ Edit links using a thread pool and wait for completion. :param session: session to create nodes in :param link_protos: link proto messages :return: results and exceptions for created links """ funcs = [] for link_proto in link_protos: node1_id = link_proto.node1_id node2_id = link_proto.node2_id iface1, iface2, options, link_type = add_link_data(link_proto) args = (node1_id, node2_id, iface1.id, iface2.id, options, link_type) funcs.append((session.update_link, args, {})) start = time.monotonic() results, exceptions = utils.threadpool(funcs) total = time.monotonic() - start logging.debug("grpc edit links time: %s", total) return results, exceptions
def edit_links(session, link_protos): """ Edit links using a thread pool and wait for completion. :param core.emulator.session.Session session: session to create nodes in :param list[core_pb2.Link] link_protos: link proto messages :return: results and exceptions for created links :rtype: tuple """ funcs = [] for link_proto in link_protos: node_one_id = link_proto.node_one_id node_two_id = link_proto.node_two_id interface_one, interface_two, options = add_link_data(link_proto) args = (node_one_id, node_two_id, interface_one.id, interface_two.id, options) funcs.append((session.update_link, args, {})) start = time.monotonic() results, exceptions = utils.threadpool(funcs) total = time.monotonic() - start logging.debug("grpc edit links time: %s", total) return results, exceptions
def create_links( session: Session, link_protos: List[core_pb2.Link] ) -> Tuple[List[NodeBase], List[Exception]]: """ Create links using a thread pool and wait for completion. :param session: session to create nodes in :param link_protos: link proto messages :return: results and exceptions for created links """ funcs = [] for link_proto in link_protos: node_one_id = link_proto.node_one_id node_two_id = link_proto.node_two_id interface_one, interface_two, options = add_link_data(link_proto) args = (node_one_id, node_two_id, interface_one, interface_two, options) funcs.append((session.add_link, args, {})) start = time.monotonic() results, exceptions = utils.threadpool(funcs) total = time.monotonic() - start logging.debug("grpc created links time: %s", total) return results, exceptions