Code Monkey home page Code Monkey logo

nstat's People

Contributors

anastop avatar konstantinos-papadopoulos avatar panageo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nstat's Issues

Multinet test cases errors

Hi, i was trying to launch test cases with using multinet, but got some errors, with mtcbench everything is alright.
selection_069
i was trying to change the version of requests and another dependencies, but it still didnt work. I open 6653,3300,3333,5555 port for multinet master worker.
boron_sb_active_scalability_multinet.txt

build handler in travis (Controller refactorization)

In the frame of Controller refactorization the build handler is wrapped
via class methon build().

This implementation runs successfully in jenkins, however it fails in travis

There is a paradox issue here, which may concerns a limitation in travis ci:
the build handler is executed successfully when it is called as a bash script:
- sudo bash ./controllers/odl_beryllium_pb/build.sh
However, it fails when it (the same script) is called within python wrapper class method:

Controller.py


    def build(self):
        """ Wrapper to the controller build handler
        """
        logging.info('[Controller] Building')
        self.status = 'BUILDING'

        exit_status = util.netutil.ssh_run_command(self._ssh_conn,
                                    ' '.join([self.build_hnd]),
                                    '[controller.build_handler]')[0]
        if exit_status == 0:
            self.status = 'BUILT'
            logging.info("[Controller] Successful building")
        else:
            self.status = 'NOT BUILT'
            logging.error("[Controller] Failure during building")
            raise Exception('[Controller] Failure during building')

Obsolete keys removal

Keys

  • controller_node_spec
  • nb_generator_node_spec
  • xx_xx_node_spec
  • xx_host_ip

should be removed from all json files since they are not supported by the NSTAT code.

Vagrantfile multiple VMs

At the moment each NSTAT node is deployed by a separate Vagrantfile each one located under $NSTAT_SRC/vagrant folder. Since every Vagrantfile creates a separate Host-only network, NSTAT nodes when deployed belong to different Host-only networks and therefore ssh communication between them is not feasible.

The issue has been verified for provider: virtualbox. It might apply for provider: libvirt as well.

Solution: Use of one Vagrantfile ie. packaged_multi to deploy all necessary NSTAT nodes, so that all of them belong o the same Host-only network. @panageo , @anastop

self.status attribute in Class Controller

While adding the new getcontroller() method I checked that the self.status is defined within the Controller constructor and

  • set within wrapper method cleanup()
  • set within wrapper method restart()
  • set within wrapper method start()
  • set within wrapper method stop()

Where is the self.status read. Should we remove it from everywhere? What is the meaning of setting/maintaining this attribute?

error during test

Hi, The proble is, when im using my local pc as controller, it`s going well until trying take load average
And idk why i got such error
karaf.log
error.log

Error plots generate

When im running any tests i couldnt get any plots, and i cant understand what is wrong with my configuration, and which configuration i should change, actually, i was trying to work with plot_utils.py, but nothing changes
selection_006

Error on deploying docker image

Hello, I have an issue during deploying docker images. Somehow, I could not create NSTAT image in dir: ..nstat/deploy/docker/no_proxy with docker-compose. Then I realized, command : "docker compose -t" is not valid for docker compose anymore. I appreciate any help and update. Thank you.

Remote branch v1.0 not found in upstream origin

Hi,
I think there should by an error on your installation recipe.
Step 1
git clone --branch v1.0 https://github.com/intracom-telecom-sdn/nstat-cperf.git nstat-cperf.

This is the output I get when doing it:

Cloning into 'nstat-cperf'...
fatal: Remote branch v1.0 not found in upstream origin.

Let me know if I am wrong.

Thanks a lot.

git clone operation not available within NSTAT nodes

NSTAT nodes deployed under packaged/multi Vagrantfile are not able to perform git clone operations (from https). apt-get operations are possible.

NSTAT project is assumed to be present on all nodes at the moment.

Run Vagrant script under /packaged_multi with no_proxy running environment to ensure that git clone operations are possible.

If not we should consider if NSTAT orchestrator will prepare in the future all necessary workspace for all NSTAT (i.e existence of handlers etc) nodes, @anastop , @panageo .

Correct netutil.py unit tests

test_netutil.py calls ssh_connect* methods having the named tuple as an argument. Unit tests should be updated with ip, username, password, port. See i.e methods

def ssh_connection_open(ip, ssh_port, username, password):

and

def test01_ssh_connection_open(self):

in test_netutil.py. Testing of

  • test_file.py
  • test_netutil.py
  • test_html.py
  • test_sysstats.py
  • test_process.py

removed temporarily from tracis ci. Do not forget to restore it after correcting the unit test

Error on start nstat

I would like to try nstat, but can I start it with a controller that is not on docker?
If I try to start nstat by setting up a remote controller, i have this error:

2018-05-14 09:47:21,083 INFO ] [open_ssh_connection] Initiating SSH session with ODL node.
[2018-05-14 09:47:21,083 INFO ] [utils.netutils.ssh_connect_or_return] Trying to connect to 155.185.49.81:6633 (1/10)
[2018-05-14 09:49:28,322 ERROR ] Fail to establish ssh connection with controller node. :::::::::: Exception :::::::::::
[2018-05-14 09:49:28,323 ERROR ] Fail to establish ssh connection with controller node.
[2018-05-14 09:49:28,324 ERROR ] Error number:1
[2018-05-14 09:49:28,324 ERROR ] Fail to establish ssh connection with controller node. - ODL Exception: <class 'stress_test.controller_exceptions.CtrlNodeConnectionError'>, 132
Traceback (most recent call last):
File "/opt/nstat/stress_test/controller.py", line 125, in init_ssh
self.ssh_pass, 10)
File "/opt/nstat/util/netutil.py", line 246, in ssh_connect_or_return
password=password)
File "/usr/lib/python3.4/site-packages/paramiko/client.py", line 251, in connect
retry_on_signal(lambda: sock.connect(addr))
File "/usr/lib/python3.4/site-packages/paramiko/util.py", line 270, in retry_on_signal
return function()
File "/usr/lib/python3.4/site-packages/paramiko/client.py", line 251, in
retry_on_signal(lambda: sock.connect(addr))
TimeoutError: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/opt/nstat/stress_test/controller.py", line 132, in init_ssh
raise(stress_test.controller_exceptions.
stress_test.controller_exceptions.CtrlNodeConnectionError: Fail to establish ssh connection with controller node.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/opt/nstat/stress_test/nstat.py", line 104, in
main()
File "/opt/nstat/stress_test/nstat.py", line 101, in main
nstat_test.test_selector(args)
File "/opt/nstat/stress_test/test_type.py", line 99, in test_selector
nstat_test_type_run)
File "/opt/nstat/stress_test/test_run.py", line 44, in init
json_conf)
File "/opt/nstat/stress_test/controller.py", line 77, in new
return ODL(ctrl_base_dir, test_config)
File "/opt/nstat/stress_test/controller.py", line 554, in init
self.init_ssh()
File "/opt/nstat/stress_test/controller.py", line 135, in init_ssh
self._error_handling(e.err_msg, e.err_code)
File "/opt/nstat/stress_test/controller.py", line 105, in _error_handling
raise(stress_test.controller_exceptions.CtrlError)
stress_test.controller_exceptions.CtrlError: Controller generic exception
[2018-05-14 09:49:28,362 INFO ] Run controller stop.
[2018-05-14 09:51:35,682 ERROR ] [ssh_connection_open] error: check connection object
[2018-05-14 09:51:35,682 ERROR ] Controller stop failure. :::::::::: Exception :::::::::::
[2018-05-14 09:51:35,683 ERROR ] Controller stop failure.
[2018-05-14 09:51:35,683 ERROR ] Error number:1
[2018-05-14 09:51:35,683 ERROR ] Controller stop failure. - ODL Exception: <class 'stress_test.controller_exceptions.CtrlStopError'>, 353
[2018-05-14 09:51:35,683 INFO ] Fail stopping Controller during cleanup. Exception message: Controller generic exception
[2018-05-14 09:51:35,683 INFO ] Run controller cleanup.
[2018-05-14 09:51:35,683 INFO ] [Controller] Cleaning up

Bridged interface with vagrant and libvirt

Deployment of VM with kvm hypervisor having a bridged interface with the host seems to be problematic. NSTAT needs to support this feature if NSTAT components are deployed on individual nodes (VMs) which are hosted on separate hosts. If all nodes are deployed within one single host, there is no need for bridged interfaces and therefore no need to worry for this issue @panageo , @anastop .

Vagrant files under https://github.com/intracom-telecom-sdn/nstat/tree/master/vagrant need to be updated accordingly if a solution is proposed

topology_rest_server_stop handler

To be consistent with Multinet a conf key "topology_rest_server_stop" has been added which is not used at the moment when mininet is used as a generator. However, the mininet rest server stop takes place through stop_mininet_server() under mininet_utils.py. In Multinet this action is done by cleanup handler under /bin. I think we should be consistent in both cases since NSTAT treats both mininet and multinet as southbound generators. @panageo What do you think?

Python34 paramiko installation

paramiko library for python3.4 is not installed
Check common provision.sh again and retest both with Dockerfile/Vagrantfile

sudo apt-get install build-essential libssl-dev libffi-dev python-dev
sudo pip --proxy http://172.28.40.9:3128 install cffi
sudo pip --proxy http://172.28.40.9:3128 install cryptography

Controller name key in json configuration

In controller.py, in new() method we check for the controller's name

if (name == 'odl')
   ....

where name is stored in the test_config dict which takes its value from the input json configuration file. I propose to keep one name in the JSON conf file (ie ODL) which is later on used in the plot configuration section (faster find/replace operations in json files).

Therefore the full version of the controller (ie ODL (Boron)) can be specified in the JSON file.
To resolve this, the name can be set

  1. either as a result of a reg expression searching for ODL
  2. the if expression should be updated whenever a new controller version is launched
  • see also for emulator.py (l.57)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.