cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
80
Views
2
Helpful
4
Replies
Highlighted
Cisco Employee

Problem with id-allocator package (1.4.0)

 

Hi,

 

 

Has anyone used the id-allocator package that is found on stash ? v1.4.0 ?

 

 

I am trying to create a simple pool and and it fails:

 

 

admin@ncs(config)# resource-pools id-pool test range start 9 end 10

 

admin@ncs(config-id-pool-test)# top

 

admin@ncs(config)# commit

 

Commit complete.

 

admin@ncs(config)#

 

admin@ncs# show running-config resource-pools

 

resource-pools id-pool test

 

range start 9

 

range end 10

 

!

 

admin@ncs#

 

 

Everything seems to be fine but the ncs-java-vm.log throws an error:

 

 

<ERROR> 25-Feb-2017::01:38:04.545 RangeSet (id-allocator:Reactive fastmap id allocation)-Run-0: - Failed to setup RangeSet

 

  1. com.tailf.cdb.CdbException: already exists

 

            at com.tailf.cdb.CdbException.mk(CdbException.java:64)

 

            at com.tailf.cdb.CdbSession.create(CdbSession.java:1100)

 

            at com.tailf.pkg.idallocator.RangeSet.<init>(RangeSet.java:45)

 

            at com.tailf.pkg.idallocator.IdAllocator.createPool(IdAllocator.java:1118)

 

            at com.tailf.pkg.idallocator.IdAllocator.run(IdAllocator.java:295)

 

            at com.tailf.ncs.ctrl.ApplicationLifeCycle$1.run(ApplicationLifeCycle.java:72)

 

            at java.lang.Thread.run(Thread.java:745)

 

<ERROR> 25-Feb-2017::01:38:04.550 RangeSet (resource-manager:Reactive fastmap id allocation)-Run-2: - Could not add range {"start":9,"end":10}

 

  1. com.tailf.cdb.CdbException: already exists

 

            at com.tailf.cdb.CdbException.mk(CdbException.java:64)

 

            at com.tailf.cdb.CdbSession.create(CdbSession.java:1100)

 

            at com.tailf.cdb.CdbSession.create(CdbSession.java:1120)

 

            at com.tailf.pkg.idallocator.RangeSet.add(RangeSet.java:83)

 

            at com.tailf.pkg.idallocator.RangeSet.add(RangeSet.java:19)

 

            at com.tailf.pkg.idpool.IDPool.recalculateRanges(IDPool.java:221)

 

            at com.tailf.pkg.idpool.IDPool.setRange(IDPool.java:174)

 

            at com.tailf.pkg.idallocator.IdAllocator.createPool(IdAllocator.java:1136)

 

            at com.tailf.pkg.idallocator.IdAllocator.run(IdAllocator.java:295)

 

            at com.tailf.ncs.ctrl.ApplicationLifeCycle$1.run(ApplicationLifeCycle.java:72)

 

            at java.lang.Thread.run(Thread.java:745)

 

 

All packages (nso-util, resource-manager and id-allocator) are the latest version from stash (cloned):

 

 

git clone https://stash.tail-f.com/scm/pkg/resource-manager.git

 

git clone https://stash.tail-f.com/scm/pkg/nso-util.git

 

git clone https://stash.tail-f.com/scm/pkg/id-allocator.git

 

 

The installation is fresh 4.3.1 installation.

 

 

Any ideas ? Should I not be using those ? the package posted on developer.cisco.com is not the latest and is from July 2016.

 

 

Rgds,

 

Luis

 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Cisco Employee

 

Hi Luis,

 

 

Great feedback! I’m adding a review of the README.md in our issue tracker, could you find the information you needed in the documentation?

 

 

You do need to have resource manager as a required package. I think it’s part of the python package documentation.

 

 

BR,

 

Johan

 

 

View solution in original post

4 REPLIES 4
Highlighted
Cisco Employee

 

Hi Luis,

 

 

Please use the resource-manager package instead. Version 2.1.1 was released this Friday.

 

 

BR,

 

Johan

 

Highlighted
Cisco Employee

 

Thanks Johan,

 

 

I figured out yesterday that the resource-manager package now includes the id-allocator.py and ipaddress_allocator.py.

 

 

I think documentation in the README.md should include this details, explaining how to use it and everything, I would gladly write something and submit a Pull Request but I was not able to figure out how to get an account on Atlassian Bitbucket.

 

 

There is also a typo () in the example that can be found in both id_allocator.py and ipaddress_allocator.py:

 

 

(default-py2) [lurueda resource_manager:develop±]$ diff ipaddress_allocator.py.bak ipaddress_allocator.py

 

21c21

 

<     import reource_manager.ipaddress_allocator as ip_allocator

 

---

 

>     import resource_manager.ipaddress_allocator as ip_allocator

 

(default-py2) [lurueda resource_manager:develop±]$ diff id_allocator.py.bak id_allocator.py

 

14c14

 

<     import reource_manager.id_allocator as id_allocator

 

---

 

>     import resource_manager.id_allocator as id_allocator

 

 

And there is something else, which I do not know if should also be part of the instructions. I had to add the resource-manager package as a pre-requisite in the package-meta-data.xml for the package I am using which is importing the resource_manager.id_allocator package

 

 

(default-py2) [lurueda l2vpn:master]$ grep -C1 resource-manager package-meta-data.xml

 

  <required-package>

 

    <name>resource-manager</name>

 

  </required-package>

 

 

Can you confirm this is required, I could not get it to work without it. I kept getting the following error:

 

2017-02-25 22:31:23 - l2vpn :: Traceback (most recent call last):

 

  File "/opt/cisco/nso/4.3.1/src/ncs/pyapi/ncs_pyvm/startup.py", line 227, in start_components

 

2017-02-25 22:31:23 - l2vpn ::     pname=pname, cname=cname, main_q=self.msg_sink)

 

  File "/opt/cisco/nso/4.3.1/src/ncs/pyapi/ncs_pyvm/ncsthreads.py", line 152, in __init__

 

2017-02-25 22:31:23 - l2vpn ::     mod = __import__(modname)

 

  File "/private/tmp/nso-python-examples/state/packages-in-use/1/l2vpn/python/l2vpn/main.py", line 6, in <module>

 

2017-02-25 22:31:23 - l2vpn ::     import resource_manager.id_allocator as id_allocator

 

ImportError: No module named resource_manager.id_allocator

 

 

Rgds,

 

Luis

 

 

Highlighted
Cisco Employee

 

Hi Luis,

 

 

Great feedback! I’m adding a review of the README.md in our issue tracker, could you find the information you needed in the documentation?

 

 

You do need to have resource manager as a required package. I think it’s part of the python package documentation.

 

 

BR,

 

Johan

 

 

View solution in original post

Highlighted
Cisco Employee

 

Thanks Johan,

 

 

The README.md is kind of misleading because it does mention that is not a standalone package when in reality I think that this version is quite the opposite. It is a standalone package now in this version.

 

 

Resource manager is NOT a standalone package. You will need an 'implementation' package, e.g. id-allocator or ipaddress-allocator.

 

The easiest way is to download and use the 'Resource Manager Bundle' which you should find in the same place where you found this package.

 

The id-allocator and ipaddress-allocator should also be available at the same place.

 

 

The other thing is that we should have in the README.md an example of how to use resource allocation on a package the reader wants to build (examples for both Java and Python).

 

 

Rgds,

 

Luis

 

Content for Community-Ad
Cisco Community August2020 Spotlight Award Winners