Example #1
0
    def run(self, remote_sites={}, local_sites={}):
        if not remote_sites:
            sites = self.api.GetSites({'peer_id': None})
            for site in sites:
                remote_sites[site['site_id']] = site
        

        if not local_sites:
            from core.models import Site
            sites = Site.objects.all()
            for site in sites:
                local_sites[site.login_base] = site            

        db_slices = Slice.objects.all()
        for db_slice in db_slices:
            self.local_slices[db_slice.name] = db_slice
        print "%s local slices" % len(db_slices)

        slices = self.api.GetSlices({'peer_id': None})
        print "%s remote slices" % len(slices)
        count = 0 
        for slice in slices:
            self.remote_slices[slice['slice_id']] = slice
            if slice['name'] not in self.local_slices:
                site = local_sites[remote_sites[slice['site_id']]['login_base']]
                new_slice = Slice(name=slice['name'],
                                   omf_friendly = False,
                                   description = slice['description'],
                                   slice_url = slice['url'],
                                   site = site)
                new_slice.save()
                count += 1
                self.local_slices[new_slice.name] = new_slice
        print "Imported %s slices" % count
Example #2
0
    def run(self, remote_sites={}, local_sites={}):
        if not remote_sites:
            sites = self.api.GetSites({'peer_id': None})
            for site in sites:
                remote_sites[site['site_id']] = site

        if not local_sites:
            from core.models import Site
            sites = Site.objects.all()
            for site in sites:
                local_sites[site.login_base] = site

        db_slices = Slice.objects.all()
        for db_slice in db_slices:
            self.local_slices[db_slice.name] = db_slice
        print "%s local slices" % len(db_slices)

        slices = self.api.GetSlices({'peer_id': None})
        print "%s remote slices" % len(slices)
        count = 0
        for slice in slices:
            self.remote_slices[slice['slice_id']] = slice
            if slice['name'] not in self.local_slices:
                site = local_sites[remote_sites[slice['site_id']]
                                   ['login_base']]
                new_slice = Slice(name=slice['name'],
                                  omf_friendly=False,
                                  description=slice['description'],
                                  slice_url=slice['url'],
                                  site=site)
                new_slice.save()
                count += 1
                self.local_slices[new_slice.name] = new_slice
        print "Imported %s slices" % count
Example #3
0
    def create(self):
        nodetemplate = self.nodetemplate
        sliceName = nodetemplate.name

        xos_args = self.get_xos_args()
        slice = Slice(**xos_args)
        slice.caller = self.user
        slice.save()

        self.postprocess(slice)

        self.info("Created Slice '%s' on Site '%s'" % (str(slice), str(slice.site)))
Example #4
0
File: slice.py Project: xuys50/xos
    def create(self):
        nodetemplate = self.nodetemplate
        sliceName = nodetemplate.name

        xos_args = self.get_xos_args()
        slice = Slice(**xos_args)
        slice.caller = self.user
        slice.save()

        self.postprocess(slice)

        self.info("Created Slice '%s' on Site '%s'" % (str(slice), str(slice.site)))
Example #5
0
File: slices.py Project: xuys50/xos
def add_slice(auth, fields):
    user = authenticate(username=auth.get('username'),
                        password=auth.get('password'))
    auth['tenant'] = user.site.login_base

    login_base = fields['name'][:fields['name'].find('_')]
    sites = _get_sites(login_base)
    if sites: fields['site'] = sites[0]
    slice = Slice(**fields)
    slice.os_manager = OpenStackManager(auth=auth, caller=user)
    slice.save()
    return slice
Example #6
0
 def select_by_user(user):
     if user.is_admin:
         qs = NetworkSlice.objects.all()
     else:
         slice_ids = [s.id for s in Slice.select_by_user(user)]
         qs = NetworkSlice.objects.filter(id__in=slice_ids)
     return qs
Example #7
0
 def select_by_user(user):
     if user.is_admin:
         qs = Sliver.objects.all()
     else:
         slices = Slice.select_by_user(user)
         qs = Sliver.objects.filter(slice__in=slices)
     return qs
Example #8
0
 def select_by_user(user):
     if user.is_admin:
         qs = NetworkSlice.objects.all()
     else:
         slice_ids = [s.id for s in Slice.select_by_user(user)]
         qs = NetworkSlice.objects.filter(id__in=slice_ids)
     return qs
Example #9
0
 def select_by_user(user):
     if user.is_admin:
         qs = Instance.objects.all()
     else:
         slices = Slice.select_by_user(user)
         qs = Instance.objects.filter(slice__in=slices)
     return qs
Example #10
0
    def test_nat_net(self):
        slice3Name = self.make_slice_name()
        slice3 = Slice(name = slice3Name,
                       omf_friendly=True,
                       site=self.testSite,
                       creator=self.testUser)
        slice3=self.save_and_wait_for_enacted(slice3, nonempty_fields=["tenant_id"])

        network3 = Network(name = slice3Name + "-nat",
                           template = self.get_network_template("private-nat"),
                           owner = slice3)
        # note that router_id will not be filled in for nat-net, since nat-net has no routers
        network3=self.save_and_wait_for_enacted(network3, nonempty_fields=["network_id", "subnet_id", "subnet"])

        network3_slice3 = NetworkSlice(network=network3, slice=slice3)
        network3_slice3.save() # does not need to be enacted

        sliver3_1 = Sliver(image = self.testImage,
                         creator=self.testUser,
                         slice=slice3,
                         node=self.testNode,
                         deploymentNetwork=self.testDeployment)
        sliver3_1=self.save_and_wait_for_enacted(sliver3_1, nonempty_fields=["instance_id", "ip"])

        ports = self.wait_for_ports(sliver3_1, count=2)
        self.verify_network_names(ports, [slice3.name, "nat-net"])
Example #11
0
    def test_slice2(self):
        slice2Name = self.make_slice_name()
        slice2 = Slice(name = slice2Name,
                       omf_friendly=True,
                       site=self.testSite,
                       creator=self.testUser)
        slice2=self.save_and_wait_for_enacted(slice2, nonempty_fields=["tenant_id"])

        network2 = Network(name = slice2Name + "-pvt",
                           template = self.get_network_template("private"),
                           owner = slice2)
        network2=self.save_and_wait_for_enacted(network2, nonempty_fields=["network_id", "subnet_id", "router_id", "subnet"])

        network2_slice2 = NetworkSlice(network=network2, slice=slice2)
        network2_slice2.save() # does not need to be enacted

        sliver2_1 = Sliver(image = self.testImage,
                         creator=self.testUser,
                         slice=slice2,
                         node=self.testNode,
                         deploymentNetwork=self.testDeployment)
        sliver2_1=self.save_and_wait_for_enacted(sliver2_1, nonempty_fields=["instance_id", "ip"])

        ports = self.wait_for_ports(sliver2_1, count=2)
        self.verify_network_names(ports, [slice2.name, network2.name])

        self.slice2 = slice2
        self.network2 = network2
Example #12
0
 def select_by_user(user):
     if user.is_admin:
         qs = ControllerNetwork.objects.all()
     else:
         slices = Slice.select_by_user(user)
         networks = Network.objects.filter(owner__in=slices)
         qs = ControllerNetwork.objects.filter(network__in=networks)
     return qs
Example #13
0
 def select_by_user(user):
     if user.is_admin:
         qs = ControllerNetwork.objects.all()
     else:
         slices = Slice.select_by_user(user)
         networks = Network.objects.filter(owner__in=slices)
         qs = ControllerNetwork.objects.filter(network__in=networks)
     return qs
Example #14
0
 def select_by_user(user):
     if user.is_admin:
         qs = NetworkSlice.objects.all()
     else:
         slice_ids = [s.id for s in Slice.select_by_user(user)]
         network_ids = [network.id for network in Network.select_by_user(user)]
         qs = NetworkSlice.objects.filter(Q(slice__in=slice_ids) | Q(network__in=network_ids))
     return qs
Example #15
0
 def select_by_user(user):
     if user.is_admin:
         qs = NetworkSlice.objects.all()
     else:
         slice_ids = [s.id for s in Slice.select_by_user(user)]
         network_ids = [
             network.id for network in Network.select_by_user(user)
         ]
         qs = NetworkSlice.objects.filter(
             Q(slice__in=slice_ids) | Q(network__in=network_ids))
     return qs
Example #16
0
    def run_instance1(self):
        slice1Name = self.make_slice_name()
        slice1 = Slice(name = slice1Name,
                       omf_friendly=True,
                       site=self.testSite,
                       creator=self.testUser)
        slice1=self.save_and_wait_for_enacted(slice1, nonempty_fields=["tenant_id"])

        instance1 = Instance(image = self.testImage,
                         creator=self.testUser,
                         slice=slice1,
                         node=self.testNode,
                         deploymentNetwork=self.testDeployment)
        instance1=self.save_and_wait_for_enacted(instance1, nonempty_fields=["instance_id", "ip"])
Example #17
0
    def test_slice1(self):
        slice1Name = self.make_slice_name()
        slice1 = Slice(name=slice1Name,
                       omf_friendly=True,
                       site=self.testSite,
                       creator=self.testUser)
        slice1 = self.save_and_wait_for_enacted(slice1,
                                                nonempty_fields=["tenant_id"])

        instance1 = Instance(image=self.testImage,
                             creator=self.testUser,
                             slice=slice1,
                             node=self.testNode,
                             deploymentNetwork=self.testDeployment)
        instance1 = self.save_and_wait_for_enacted(
            instance1, nonempty_fields=["instance_id", "ip"])

        # instance1 should have only one port, its private network
        ports = self.wait_for_ports(instance1, count=1)
        self.verify_network_names(ports, [slice1.name])

        network1 = Network(name=slice1Name + "-pvt",
                           template=self.get_network_template("private"),
                           owner=slice1)
        network1 = self.save_and_wait_for_enacted(
            network1,
            nonempty_fields=["network_id", "subnet_id", "router_id", "subnet"])

        network1_slice1 = NetworkSlice(network=network1, slice=slice1)
        network1_slice1.save()  # does not need to be enacted

        instance1_2 = Instance(image=self.testImage,
                               creator=self.testUser,
                               slice=slice1,
                               node=self.testNode,
                               deploymentNetwork=self.testDeployment)
        instance1_2 = self.save_and_wait_for_enacted(
            instance1_2, nonempty_fields=["instance_id", "ip"])

        ports = self.wait_for_ports(instance1_2, count=2)
        self.verify_network_names(ports, [slice1.name, network1.name])

        self.slice1 = slice1
        self.network1 = network1