def create_routers_bind_ports(self, router_create_args=None, router_connection_method=None, networks_per_router=None, network_create_args=None, port_create_args=None, ports_per_network=None, port_bind_args=None): # Create routers and logical networks, and connect them lrouters = self._create_routers(router_create_args) num_router = int(router_create_args.get("amount", 0)) num_networks = int(networks_per_router) * num_router lnetworks = self._create_networks(network_create_args, num_networks) self._connect_networks_to_routers(lnetworks, lrouters, networks_per_router) # Create ports on the logical networks sandboxes = self.context["sandboxes"] if not sandboxes: # when there is no sandbox specified, bind on all sandboxes. sandboxes = utils.get_sandboxes(self.task["deployment_uuid"]) lports = self._create_lports(lnetworks, port_create_args, ports_per_network) if (len(lports) < len(sandboxes)): LOG.warn("Number of ports less than chassis: random binding\n") self._bind_ports_and_wait(lports, sandboxes, port_bind_args)
def create_and_bind_ports(self, network_create_args=None, port_create_args=None, ports_per_network=None, port_bind_args=None, internal_ports_cleanup=True): sandboxes = self.context["sandboxes"] if not sandboxes: # when there is no sandbox specified, bind on all sandboxes. sandboxes = utils.get_sandboxes(self.task["deployment_uuid"]) use_existing_networks = port_create_args. \ get("use_existing_networks", False) if not use_existing_networks: lswitches = self._create_networks(network_create_args) else: lswitches = self._list_lswitches() num_switches = len(lswitches) start_cidr = network_create_args.get("start_cidr", "") if start_cidr: start_cidr = netaddr.IPNetwork(start_cidr) for i in range(num_switches): if start_cidr: lswitches[i]["cidr"] = start_cidr.next(i) lports = self._create_lports(lswitches, port_create_args, ports_per_network) self._bind_ports_and_wait(lports, sandboxes, port_bind_args) if internal_ports_cleanup: self._cleanup_ovs_internal_ports(sandboxes)
def _get_sandbox(self, farm="", tag=""): if "sandboxes" in self.context: ret = self.context["sandboxes"] else: ret = utils.get_sandboxes(self.task["deployment_uuid"], farm, tag) return ret
def create_routers_bind_ports(self, router_create_args=None, router_connection_method=None, networks_per_router=None, network_create_args=None, port_create_args=None, ports_per_network=None, port_bind_args=None): # Create routers and logical networks, and connect them lrouters = self._create_routers(router_create_args) num_router = int(router_create_args.get("amount", 0)) num_networks = int(networks_per_router) * num_router lnetworks = self._create_networks(network_create_args, num_networks) self._connect_networks_to_routers(lnetworks, lrouters, networks_per_router) # Create ports on the logical networks sandboxes = self.context["sandboxes"] if not sandboxes: # when there is no sandbox specified, bind on all sandboxes. sandboxes = utils.get_sandboxes(self.task["deployment_uuid"]) for network in lnetworks: lports = self._create_lports(network, port_create_args, ports_per_network) if (len(lports) < len(sandboxes)): LOG.warn("Number of ports less than chassis: random binding\n") self._bind_ports_and_wait(lports, sandboxes, port_bind_args)
def delete_sandbox(self, sandbox_delete_args=None): """Delete sandboxes specified by farm and/or tag. :param sandbox_delete_args: dict, contains below values: =========== ======== key desc =========== ======== farm str, the name of farm node tag str, a tag used to identify a set of sandboxes graceful bool, exit processes gracefully, cleanup records in southbound DB =========== ======== """ farm = sandbox_delete_args.get("farm", "") tag = sandbox_delete_args.get("tag", "") graceful = sandbox_delete_args.get("graceful", False) sandboxes = utils.get_sandboxes(self.task["deployment_uuid"], farm, tag) self._delete_sandbox(sandboxes, graceful)
def list_oflow_count_for_sandboxes(self, sandbox_args={}): sandboxes = self.context["sandboxes"] if not sandboxes: # when there is no sandbox specified, get all sandboxes. sandboxes = utils.get_sandboxes(self.task["deployment_uuid"]) self._list_oflow_count_for_sandboxes(sandboxes, sandbox_args)