Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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 _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
Esempio n. 5
0
    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)
Esempio n. 6
0
    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)
Esempio n. 7
0
    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)
Esempio n. 8
0
 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)
Esempio n. 9
0
 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)