Merge branch 'fog' 60/7460/2
authortierno <alfonso.tiernosepulveda@telefonica.com>
Tue, 14 May 2019 11:22:45 +0000 (11:22 +0000)
committertierno <alfonso.tiernosepulveda@telefonica.com>
Tue, 14 May 2019 11:50:23 +0000 (11:50 +0000)
Change-Id: I22026c17fd94e7a1bb22c0fb87035c4f9bff12ff
Signed-off-by: tierno <alfonso.tiernosepulveda@telefonica.com>
1  2 
Dockerfile
docker/Dockerfile-local
osm_ro/vim_thread.py
scripts/install-openmano.sh

diff --combined Dockerfile
@@@ -33,6 -33,6 +33,7 @@@ RUN  apt-get update && 
    DEBIAN_FRONTEND=noninteractive apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get -y install python-novaclient python-keystoneclient python-glanceclient python-cinderclient python-neutronclient python-networking-l2gw && \
    DEBIAN_FRONTEND=noninteractive pip install -U progressbar pyvmomi pyvcloud==19.1.1 && \
++  DEBIAN_FRONTEND=noninteractive pip install -U fog05rest && \
    DEBIAN_FRONTEND=noninteractive apt-get -y install python-argcomplete python-bottle python-cffi python-packaging python-paramiko python-pkgconfig libmysqlclient-dev libssl-dev libffi-dev python-mysqldb && \
    DEBIAN_FRONTEND=noninteractive apt-get -y install python-logutils python-openstackclient python-openstacksdk && \
    DEBIAN_FRONTEND=noninteractive pip install untangle && \
diff --combined docker/Dockerfile-local
@@@ -10,6 -10,6 +10,8 @@@ RUN apt-get update && 
      DEBIAN_FRONTEND=noninteractive apt-get -y install wget tox && \
      DEBIAN_FRONTEND=noninteractive pip2 install pip==9.0.3 && \
      DEBIAN_FRONTEND=noninteractive pip2 install -U progressbar pyvmomi pyvcloud==19.1.1 && \
++    DEBIAN_FRONTEND=noninteractive pip2 install -U fog05rest && \
++    DEBIAN_FRONTEND=noninteractive apt-get -y install python-requests && \
      DEBIAN_FRONTEND=noninteractive apt-get -y install python-novaclient python-keystoneclient python-glanceclient python-cinderclient python-neutronclient python-networking-l2gw && \
      DEBIAN_FRONTEND=noninteractive apt-get -y install python-cffi libmysqlclient-dev libssl-dev libffi-dev python-mysqldb && \
      DEBIAN_FRONTEND=noninteractive apt-get -y install python-openstacksdk python-openstackclient && \
  
  COPY . /root/RO
  
 -RUN apt-get -y install python-requests && \
 -    mkdir -p /root/fos && \
 -    cd  /root/fos && \
 -    git clone https://github.com/eclipse/fog05 && \
 -    cd fog05/src/api/python/rest_api/ && \
 -    python setup.py install && \
 -    cd ~ && \
 -    /root/RO/scripts/install-osm-im.sh --develop && \
 +RUN /root/RO/scripts/install-osm-im.sh --develop && \
      /root/RO/scripts/install-lib-osm-openvim.sh --develop && \
      make -C /root/RO prepare && \
      mkdir -p /var/log/osm && \
diff --combined osm_ro/vim_thread.py
@@@ -63,7 -63,7 +63,7 @@@ The task content is (M: stored at memor
              vim_status: VIM status of the element. Stored also at database in the instance_XXX
              vim_info:   Detailed information of a vm/net from the VIM. Stored at database in the instance_XXX but not at
                          vim_wim_actions
 -    M   depends:    dict with task_index(from depends_on) to vim_id
 +    M   depends:    dict with task_index(from depends_on) to dependency task
      M   params:     same as extra[params]
      MD  error_msg:  descriptive text upon an error.Stored also at database instance_XXX
      MD  created_at: task creation time. The task of creation must be the oldest
@@@ -86,6 -86,7 +86,7 @@@ import vimconn_aw
  import vimconn_opennebula
  import vimconn_openstack
  import vimconn_vmware
+ import vimconn_fos
  import yaml
  from db_base import db_base_Exception
  from lib_osm_openvim.ovim import ovimException
@@@ -100,6 -101,7 +101,7 @@@ vim_module = 
      "opennebula": vimconn_opennebula,
      "openstack": vimconn_openstack,
      "vmware": vimconn_vmware,
+     "fos": vimconn_fos
  }
  
  
@@@ -532,8 -534,9 +534,8 @@@ class vim_thread(threading.Thread)
                                  task_dependency["instance_action_id"], task_dependency["task_index"],
                                  task_dependency["action"], task_dependency["item"], task_dependency.get("error_msg")))
  
 -                    task["depends"]["TASK-"+str(task_index)] = task_dependency["vim_id"]
 -                    task["depends"]["TASK-{}.{}".format(task["instance_action_id"], task_index)] =\
 -                        task_dependency["vim_id"]
 +                    task["depends"]["TASK-"+str(task_index)] = task_dependency
 +                    task["depends"]["TASK-{}.{}".format(task["instance_action_id"], task_index)] = task_dependency
                  if dependency_not_completed:
                      # Move this task to the time dependency is going to be modified plus 10 seconds.
                      self.db.update_rows("vim_wim_actions", modified_time=dependency_modified_at + 10,
              net_list = params[5]
              for net in net_list:
                  if "net_id" in net and is_task_id(net["net_id"]):  # change task_id into network_id
 -                    network_id = task["depends"][net["net_id"]]
 +                    network_id = task["depends"][net["net_id"]].get("vim_id")
                      if not network_id:
                          raise VimThreadException(
                              "Cannot create VM because depends on a network not created or found: " +
              dep_id = "TASK-" + str(task["extra"]["depends_on"][0])
              task_id = task["instance_action_id"] + "." + str(task["task_index"])
              error_text = ""
 -            interfaces = task.get("depends").get(dep_id).get("extra").get("interfaces")
 +            interfaces = task["depends"][dep_id]["extra"].get("interfaces")
 +
              ingress_interface_id = task.get("extra").get("params").get("ingress_interface_id")
              egress_interface_id = task.get("extra").get("params").get("egress_interface_id")
              ingress_vim_interface_id = None
@@@ -262,6 -262,6 +262,9 @@@ the
      [ "$_DISTRO" == "Ubuntu" ] && install_packages "genisoimage"
      [ "$_DISTRO" == "CentOS" -o "$_DISTRO" == "Red" ] && install_packages "genisoimage"
  
++    # required for fog connector
++    pip2 install fog05rest || exit 1
++
      # required for OpenNebula connector
      pip2 install untangle || exit 1
      pip2 install -e git+https://github.com/python-oca/python-oca#egg=oca || exit 1