openbaton / generic-vnfm Goto Github PK
View Code? Open in Web Editor NEWRepository containing the source code of the generic VNFM
License: Apache License 2.0
Repository containing the source code of the generic VNFM
License: Apache License 2.0
If in the modify there is a script with underscore but without any relation type (just a script to be executed) it is not executed because:
however i don't know if we want to forbid the execution of a script without relation in the modify
When the VNFD name has a capital letter in it the machine is allocated properly. Then ems communication is established and the command is sent to save the scripts. However the scripts are never saved on the newly created box and it never proceeds beyond that.
I have used OpenStack Kilo and Liberty.
First, I have tried generic-vnfm with OpenStack Kilo. Then, I have created instances successfully.
But, I have tried generic-vnfm with OpenStack Liberty and the process failed. It cannot assign floating IP.
Which is the latest version of OpenStack that generic-vnfm support? (Kilo or Liberty)
Please implememnt that the user-data.sh script can be loaded from an external file. currently the generic-vnfm needs to be recompiled when the script is changed.
This is about saveLogToFile function of LogUtils.java.
I think "Not able to create log file" isn't outputted as an error log, in case of failing to create new log file by createNewFile function.
Because, if something error like a permission of directory happend at createNewFile function, thrown to IOException and end.
This is a tiny bug, but it occured problem while debug.
I will pull request soon later.
I used the bootstrap method to install the dev-environment. The config file for the generic-vnfm was placed at:
/etc/openbaton/openbaton-vnfm-generic.properties
The start script searched for:
/etc/openbaton/generic-vnfm.properties
As an interim solution I used an symbolic link
sudo ln -s /etc/openbaton/openbaton-vnfm-generic.properties /etc/openbaton/generic-vnfm.properties
user-data.sh
env EMS_VERSION is blank,
so "apt-get install -y --force-yes ems-$EMS_VERSION" equivalent "apt-get install -y --force-yes ems-"
this will not installed, right ?
The gradle-wrapper.properties file contains unresolved merge conflict markers.
What is this branch? there are changes not merged into develop. can i remove it?
In the develop branch, commit 7ebdb5b broke the EMS installation. In line 35, you grep for "ems" which matches on lots of packages including for example the description "filesystems". This leads to the EMS never being installed and all deployments failing.
If the NFVO is not running, the Generic VNFM waits 2.5 seconds and the tries again to register. if this happens, during the waiting time it is not possible to stop the generic vnfm via simple ctrl-c
I have dependencies issues when compiling generic-vnfm. I could not resolve commons-codec because the URL isn't good. In which file can I change it ?
Thank you in advance.
Using release 4.0.0 it seems that the generic VNFM uses the rabbitmqIP which is set in the nfvo properties file, not the one set in the generic vnfm properties. Should be checked for upcoming release whether this is still the case.
I think there are some parameters which may not be necessary. It would be good to restructure (meaning organise parameters in sections) and cleanup (meaning removing parameters not needed) the properties file (https://github.com/openbaton/generic-vnfm/blob/develop/src/main/resources/application.properties)
Ubuntu 16.04 introduced upgrades by default via a systemd timer. This may cause problems installing the EMS if the apt lock is occupied by another process. A simple way to fix this would be to wait for running apt-get processes to finish.
Can the generic VNFM integrated with any other NFVO?
If yes, Can you please guide which interface/APIs can be used to integrate with other NFVO.
Using a customized Xenial dist of Ubuntu Cloud I got connection error through EMS with my instance. Checking the logs I find the following line:
[ 17.330490] cloud-init[1227]: EMS is already installed
What's of course not possible. Reviewing the script I see that it check for EMS with the following command:
dpkg -l | grep "ems" | wc -l
What in my distribution is not null given that the command dpkg -l | grep "ems"
prints the following:
ii dosfstools 3.0.28-2ubuntu0.1 amd64 utilities for making and checking MS-DOS FAT filesyst
ems
ii init-system-helpers 1.29ubuntu4 all helper tools for all init syst
ems
ii irqbalance 1.1.0-2ubuntu1 amd64 Daemon to balance interrupts for SMP syst
ems
ii libbsd0:amd64 0.8.2-1 amd64 utility functions from BSD syst
ems - shared library
ii mount 2.27.1-6ubuntu3.3 amd64 tools for mounting and manipulating filesyst
ems
ii squashfs-tools 1:4.3-3ubuntu2 amd64 Tool to create and append to squashfs filesyst
ems
ii zerofree 1.0.3-1 amd64 zero free blocks from ext2, ext3 and ext4 file-syst
ems`
As it's not null the GVNFM thinks that EMS is already installed and it's never done.
My workaround so far is to install ems-0.20 manually for my customized dist.
The EMS agent should be downloaded from a local repo. An approach would be to make the agent available via a REST API offered by the Generic-VNFM.
In some cases the hostname which is assigned to the VM when launching differs from the actual hostname at runtime. Since the EMS uses this internal hostname, it causes problems.
Use Case:
Load VIM (OpenStack Generic Driver)
Load NSD (I can provide this if you need it but it launches 1 VM and 2 dependent VMs)
Launch NSD
OpenStack Launches the VMs
If we click the VM and examine the syslog, we see it start to do a series of yum installs for Perl
Meanwhile, openbaton-generic prints a looped series of messages about waiting for hostnames...
All of a sudden, the generic log begins printing the following exception in a loop (which fills up my log and my root file system if I am not paying attention to it).
ainer.java:1119)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.openbaton.common.vnfm_sdk.exception.BadFormatException: Hostname does not fit the expected format. Must fit: '.*-[1-9]+$'
at org.openbaton.vnfm.generic.core.ElementManagementSystem.extractIdFromHostname(ElementManagementSystem.java:159)
at org.openbaton.vnfm.generic.core.ElementManagementSystem.unregisterFromMsg(ElementManagementSystem.java:105)
at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:269)
at org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter.invokeListenerMethod(MessageListenerAdapter.java:327)
... 12 common frames omitted
2017-09-15 19:00:43.136 DEBUG 7629 --- [SimpleAsyncTaskExecutor-1] o.o.v.g.core.ElementManagementSystem : EMSRegister received: {"hostname":"dsxprimary-8282333.novalocal"}
2017-09-15 19:00:43.136 DEBUG 7629 --- [SimpleAsyncTaskExecutor-1] o.o.v.g.core.ElementManagementSystem : extraIdFromHostname: Attempting to find id in hostname = dsxprimary-8282333.novalocal
2017-09-15 19:00:43.136 WARN 7629 --- [SimpleAsyncTaskExecutor-1] s.a.r.l.ConditionalRejectingErrorHandler : Execution of Rabbit message listener failed.
org.springframework.amqp.rabbit.listener.exception.ListenerExecutionFailedException: Listener method 'unregisterFromMsg' threw exception
at org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter.invokeListenerMethod(MessageListenerAdapter.java:335)
at org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter.onMessage(MessageListenerAdapter.java:253)
at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:756)
at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:679)
I have done the debugging to figure out why this is failing, as I explained on Gitter.
At least on my CentOS 7 VMs (uname below):
Linux 367-dfl2-cent7.localdomain 3.10.0-514.16.1.el7.x86_64 #1 SMP Wed Apr 12 15:04:24 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
In the script user-data.sh, the following code is being used to determine the release:
*yum install -y /lsb-release
OS_DISTRIBUTION_RELEASE_MAJOR=$( lsb_release -a | grep "Release:" | awk -F'\t' '{ print $2 }' | awk -F'.' '{ print $1 }' )
This package lsb-release I could not find in the yum repository (searching for lsb-release, lsb_release and lsb). When I tested it, the call failed. Therefore, a cascading effect occurs in which the release is not set, the ensuing repository call fails, and the calls to yum -y install zabbix zabbix-agent PARTLY fail.
The call to install zabbix works because there is a zabbix package in default repository. But this installs the server (which I am not sure is even necessary), and the version (at the moment) is always 2.2 of the server. The call to zabbix-agent - and the ensuing configuration of the conf fails - all fail.
Net effect is that the VM just has an instance of zabbix - unconfigured and not enabled or configured to start, which is probably a good thing because there could be (and should be) other zabbix servers. But the zabbix agent is never installed, never configured, and therefore never registers as an active host to the server, which of course causes everything depending on Zabbix to fail (monitoring, FM, ASE, Slicing, et al).
I will need to fix this in my testing and can fork off and propose a fix to this, if you'd like.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.