summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/HeatStackAudit.java8
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateAAIInventory.java1
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java1
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/ContrailSubnet.java4
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/ContrailSubnetHostRoutes.java6
-rw-r--r--adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/network/ContrailSubnetHostRoutesTest.java4
-rw-r--r--docs/Developer_Info.rst1
-rw-r--r--docs/architecture/architecture.rst8
-rw-r--r--docs/developer_info/BBUnderstanding.rst7
-rw-r--r--docs/developer_info/FAQs.rst102
-rw-r--r--docs/developer_info/SOMCIntegrate.rst142
-rw-r--r--docs/images/SO_VNFM_Adapter_Architecture_Dublin.pngbin0 -> 105391 bytes
-rw-r--r--docs/images/SO_VNFM_Adapter_Runtime_Components.pngbin0 -> 98900 bytes
13 files changed, 271 insertions, 13 deletions
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/HeatStackAudit.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/HeatStackAudit.java
index 627f6a276c..889f6fe860 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/HeatStackAudit.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/HeatStackAudit.java
@@ -54,7 +54,7 @@ public class HeatStackAudit {
protected static final Logger logger = LoggerFactory.getLogger(HeatStackAudit.class);
- private static final String exceptionMsg = "Error finding Path from Self Link";
+ private static final String EXCEPTION_MSG = "Error finding Path from Self Link";
@Autowired
protected MsoHeatUtils heat;
@@ -112,10 +112,10 @@ public class HeatStackAudit {
processNestedResourceGroup(cloudRegion, tenantId, vServersWithLInterface,
nestedResourceGroupResources);
} else
- throw new Exception(exceptionMsg);
+ throw new Exception(EXCEPTION_MSG);
} catch (Exception e) {
logger.error("Error Parsing Link to obtain Path", e);
- throw new Exception(exceptionMsg);
+ throw new Exception(EXCEPTION_MSG);
}
}
}
@@ -145,7 +145,7 @@ public class HeatStackAudit {
addSubInterfaceToVserver(vServersWithLInterface, subinterfaceStack, subinterfaceResources);
}
} else
- throw new Exception(exceptionMsg);
+ throw new Exception(EXCEPTION_MSG);
}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateAAIInventory.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateAAIInventory.java
index 4453071e06..608832f49f 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateAAIInventory.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateAAIInventory.java
@@ -22,7 +22,6 @@ package org.onap.so.adapters.inventory.create;
import java.util.Optional;
import java.util.stream.Stream;
-import org.onap.aai.domain.yang.LInterface;
import org.onap.so.adapters.audit.AAIObjectAudit;
import org.onap.so.adapters.audit.AAIObjectAuditList;
import org.onap.so.client.aai.AAIObjectType;
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java
index add3aac74d..8d0c2bdfc1 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java
@@ -30,7 +30,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/ContrailSubnet.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/ContrailSubnet.java
index 0c55bd6945..25667efc71 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/ContrailSubnet.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/ContrailSubnet.java
@@ -66,7 +66,7 @@ public class ContrailSubnet {
private List<ContrailSubnetPool> allocationPools = new ArrayList<>();
@JsonProperty("network_ipam_refs_data_ipam_subnets_host_routes")
- private final ContrailSubnetHostRoutes host_routes = new ContrailSubnetHostRoutes();
+ private final ContrailSubnetHostRoutes hostRoutes = new ContrailSubnetHostRoutes();
public ContrailSubnet() {
super();
@@ -173,7 +173,7 @@ public class ContrailSubnet {
}
}
if (inputSubnet.getHostRoutes() != null) {
- List<ContrailSubnetHostRoute> hrList = host_routes.getHost_routes();
+ List<ContrailSubnetHostRoute> hrList = hostRoutes.getHostRoutes();
for (HostRoute hr : inputSubnet.getHostRoutes()) {
if (!msoCommonUtils.isNullOrEmpty(hr.getPrefix())
|| !msoCommonUtils.isNullOrEmpty(hr.getNextHop())) {
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/ContrailSubnetHostRoutes.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/ContrailSubnetHostRoutes.java
index b1908d9541..0802194b4a 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/ContrailSubnetHostRoutes.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/ContrailSubnetHostRoutes.java
@@ -33,12 +33,12 @@ public class ContrailSubnetHostRoutes {
public ContrailSubnetHostRoutes() {}
- public List<ContrailSubnetHostRoute> getHost_routes() {
+ public List<ContrailSubnetHostRoute> getHostRoutes() {
return hostRoutes;
}
- public void setHost_routes(List<ContrailSubnetHostRoute> host_routes) {
- this.hostRoutes = host_routes;
+ public void setHostRoutes(List<ContrailSubnetHostRoute> hostRoutes) {
+ this.hostRoutes = hostRoutes;
}
@Override
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/network/ContrailSubnetHostRoutesTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/network/ContrailSubnetHostRoutesTest.java
index eb8912f56d..830d94cf85 100644
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/network/ContrailSubnetHostRoutesTest.java
+++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/network/ContrailSubnetHostRoutesTest.java
@@ -27,8 +27,8 @@ public class ContrailSubnetHostRoutesTest {
@Test
public void testContrailSubnetHostRoutes() {
- cshr.setHost_routes(host_routes);
- assertEquals(cshr.getHost_routes(), host_routes);
+ cshr.setHostRoutes(host_routes);
+ assertEquals(cshr.getHostRoutes(), host_routes);
assert (cshr.toString() != null);
}
}
diff --git a/docs/Developer_Info.rst b/docs/Developer_Info.rst
index 579a12d77f..59dc9d6f1c 100644
--- a/docs/Developer_Info.rst
+++ b/docs/Developer_Info.rst
@@ -10,4 +10,5 @@ Developer Information
Install_Configure_SO.rst
architecture.rst
+ FAQs.rst
\ No newline at end of file
diff --git a/docs/architecture/architecture.rst b/docs/architecture/architecture.rst
index 681e9dbfe5..52eb38cfe4 100644
--- a/docs/architecture/architecture.rst
+++ b/docs/architecture/architecture.rst
@@ -101,6 +101,14 @@ SO Sub-Components
* Service statistic
* Service Process Instance Rendering and Detail
+**SO VNFM Adapter**
+
+ Support external SVNFMs through SOL003 APIs
+ * Create, Instantiate, Terminate and Delete VNF, including Granting, Subscription and Lifecycle Notifications
+ * Tracking capability which VNFM instance has handled with which VNF instance
+ * BPMN Building Block workflows and Java-based recipes for VNF LCM
+ * VNFM Simulator for validating SO VNFM Adapter NBI and SBI for integration testing
+
Third Party and Open Source
---------------------------
diff --git a/docs/developer_info/BBUnderstanding.rst b/docs/developer_info/BBUnderstanding.rst
new file mode 100644
index 0000000000..2aa7097ad9
--- /dev/null
+++ b/docs/developer_info/BBUnderstanding.rst
@@ -0,0 +1,7 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 Huawei Technologies Co., Ltd.
+
+Building Block Understanding
+============================
+
diff --git a/docs/developer_info/FAQs.rst b/docs/developer_info/FAQs.rst
new file mode 100644
index 0000000000..cd6784071c
--- /dev/null
+++ b/docs/developer_info/FAQs.rst
@@ -0,0 +1,102 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 Huawei Technologies Co., Ltd.
+
+Frequently Asked Questions SO
+=============================
+
+Casablanca Release throws java.sql.SQLDataException: (conn:85) Data too long for column 'RESOURCE_INPUT' at row 1
+-----------------------------------------------------------------------------------------------------------------
+
+ This issue could be solved either using the SO-1.3.7 release or through a manual patch to update the lenght of the column 'RESOURCE_INPUT'.
+
+ Following are the sql statements to update length of resource_input:
+
+ use catalogdb;
+
+ ALTER TABLE vnf_resource_customization
+ MODIFY IF EXISTS RESOURCE_INPUT varchar(20000);
+
+ ALTER TABLE network_resource_customization
+ MODIFY IF EXISTS RESOURCE_INPUT varchar(20000);
+
+ ALTER TABLE allotted_resource_customization
+ MODIFY IF EXISTS RESOURCE_INPUT varchar(20000);
+
+ in so mariadb pod (username/password root/password)
+
+Integrate SO with MultiCloud
+----------------------------
+.. toctree::
+ :maxdepth: 1
+
+ SOMCIntegrate.rst
+
+Building Block Understanding
+----------------------------
+.. toctree::
+ :maxdepth: 1
+
+ BBUnderstanding.rst
+
+How to Build software without unit tests
+----------------------------------------
+
+.. code-block:: bash
+
+ cd $HOME/onap/workspace/SO/libs
+
+ $HOME/onap/apache-maven-3.3.9/bin/mvn -s $HOME/onap/.m2/settings.xml -DskipTests -Dmaven.test.skip=true clean install
+
+ cd $HOME/onap/workspace/SO/so
+
+ $HOME/onap/apache-maven-3.3.9/bin/mvn -s $HOME/onap/.m2/settings.xml -DskipTests -Dmaven.test.skip=true clean install
+
+How to Build docker images
+--------------------------
+
+SO docker images are built using the "docker" maven profile.
+
+During the build, the chef-repo and so-docker repositories are cloned from gerrit into the "so" directory structure. Extra definitions are required in the build environment to make this happen. You may need to adjust the definition of mso.chef.git.url.prefix to match the way you authenticate yourself when performing git clone.
+
+If you are behind a corporate firewall, you can specify proxy definitions for the constructed docker images.
+
+**Remove existing docker containers and images**
+
+.. code-block:: bash
+
+ docker stop $(docker ps -qa)
+
+ docker rm $(docker ps -aq)
+
+ docker rmi -f $(docker images -q)
+
+**Build docker images (without proxy definition):**
+
+.. code-block:: bash
+
+ cd $HOME/onap/workspace/SO/so/packages
+
+ $HOME/onap/apache-maven-3.3.9/bin/mvn -s $HOME/onap/.m2/settings.xml clean install -P docker
+ -Dmso.chef.git.url.prefix=ssh://$USER@gerrit.onap.org:29418 -Dmso.chef.git.branchname=master
+ -Dmso.chef.git.url.suffix.chef.repo=so/chef-repo -Dmso.chef.git.url.suffix.chef.config=so/so-config
+ -Ddocker.buildArg.http_proxy=http://one.proxy.att.com:8080
+ -Ddocker.buildArg.https_proxy=http://one.proxy.att.com:8080
+
+**Build docker images (with proxy definition):**
+
+.. code-block:: bash
+
+ cd $HOME/onap/workspace/SO/so/packages
+
+ $HOME/onap/apache-maven-3.3.9/bin/mvn -s $HOME/onap/.m2/settings.xml clean install -P docker
+ -Dmso.chef.git.url.prefix=ssh://$USER@gerrit.onap.org:29418 -Dmso.chef.git.branchname=master
+ -Dmso.chef.git.url.suffix.chef.repo=so/chef-repo -Dmso.chef.git.url.suffix.chef.config=so/so-config
+ -Ddocker.buildArg.http_proxy=http://proxyhost:port -Ddocker.buildArg.https_proxy=http://proxyhost:port
+
+How to Build with Integration Tests
+-----------------------------------
+
+This is done exactly as described for building docker images, except that the maven profile to use is "with-integration-tests" instead of "docker". Integration tests are executed inside docker containers constructed by the build.
+
+
diff --git a/docs/developer_info/SOMCIntegrate.rst b/docs/developer_info/SOMCIntegrate.rst
new file mode 100644
index 0000000000..cae2d54f41
--- /dev/null
+++ b/docs/developer_info/SOMCIntegrate.rst
@@ -0,0 +1,142 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 Huawei Technologies Co., Ltd.
+
+Integrate SO with MultiCloud
+=============================
+
+There are 2 SO tables that you need to modify if you want to use Multicloud. They are in the MariaDB container in the dev-so service. Here are the credentials to access the DB (through mysql command line): cataloguser/catalog123. The table you need to use is called catalogdb.
+
+
+
+The 2 tables are cloud_sites and identity_services. cloud_sites contains information about the cloud (region name and keystone for example). The keystone name (IDENTITY_SERVICE_ID) is the key of identity_services table, which contains specific information about cloud authentication. In the example below, you can see my configuration for a cloud region called RegionTwo, in which SO uses Multicoud for talking to the underlying cloud platfrorm. Note indeed that the IDENTITY_URL in identity_services redirects to Multicloud. In practice, SO reads cloud and authentication information from this two tables, and uses the provided keystone authentication given an identity URL.
+
+
+
+MariaDB [catalogdb]> select * from cloud_sites;
+
++-------------------+-----------+---------------------+---------------+-----------+-------------+----------+--------------+-----------------+---------------------+---------------------+
+
+| ID | REGION_ID | IDENTITY_SERVICE_ID | CLOUD_VERSION | CLLI | CLOUDIFY_ID | PLATFORM | ORCHESTRATOR | LAST_UPDATED_BY | CREATION_TIMESTAMP | UPDATE_TIMESTAMP |
+
++-------------------+-----------+---------------------+---------------+-----------+-------------+----------+--------------+-----------------+---------------------+---------------------+
+
+| Chicago | ORD | RAX_KEYSTONE | 2.5 | ORD | NULL | NULL | NULL | FLYWAY | 2018-12-28 22:58:34 | 2018-12-28 22:58:34 |
+
+| Dallas | DFW | RAX_KEYSTONE | 2.5 | DFW | NULL | NULL | NULL | FLYWAY | 2018-12-28 22:58:34 | 2018-12-28 22:58:34 |
+
+| DEFAULT | RegionOne | DEFAULT_KEYSTONE | 2.5 | RegionOne | NULL | NULL | NULL | FLYWAY | 2018-12-28 22:58:34 | 2018-12-28 22:58:34 |
+
+| Northern Virginia | IAD | RAX_KEYSTONE | 2.5 | IAD | NULL | NULL | NULL | FLYWAY | 2018-12-28 22:58:34 | 2018-12-28 22:58:34 |
+
+| RegionOne | RegionOne | DEFAULT_KEYSTONE | 2.5 | RegionOne | NULL | NULL | NULL | FLYWAY | 2018-12-28 22:58:34 | 2018-12-28 22:58:34 |
+
+| RegionTwo | RegionTwo | KEYSTONE_REGION_TWO | 2.5 | RegionTwo | NULL | NULL | NULL | FLYWAY | 2019-01-02 20:07:28 | 2019-01-02 20:07:28 |
+
++-------------------+-----------+---------------------+---------------+-----------+-------------+----------+--------------+-----------------+---------------------+---------------------+
+
+
+
+
+
+MariaDB [catalogdb]> select * from identity_services;
+
++---------------------+--------------------------------------------------------------------------------+----------------------+----------------------------------+--------------+-------------+-----------------+----------------------+------------------------------+-----------------+---------------------+---------------------+
+
+| ID | IDENTITY_URL | MSO_ID | MSO_PASS | ADMIN_TENANT | MEMBER_ROLE | TENANT_METADATA | IDENTITY_SERVER_TYPE | IDENTITY_AUTHENTICATION_TYPE | LAST_UPDATED_BY | CREATION_TIMESTAMP | UPDATE_TIMESTAMP |
+
++---------------------+--------------------------------------------------------------------------------+----------------------+----------------------------------+--------------+-------------+-----------------+----------------------+------------------------------+-----------------+---------------------+---------------------+
+
+| DEFAULT_KEYSTONE | http://135.197.225.10:5000/v2.0 | admin | a83e2b8446193c5ac450d84f0f1dc711 | service | admin | 1 | KEYSTONE | USERNAME_PASSWORD | FLYWAY | 2018-12-28 22:58:34 | 2018-12-28 22:58:34 |
+
+| KEYSTONE_REGION_TWO | http://10.43.117.142:9001/api/multicloud/v0/CloudOwner_RegionTwo/identity/v2.0 | username | <encrypted pwd> | service | admin | 1 | KEYSTONE | USERNAME_PASSWORD | FLYWAY | 2019-01-02 20:03:26 | 2019-01-02 20:03:26 |
+
+| RAX_KEYSTONE | https://identity.api.rackspacecloud.com/v2.0 | RACKSPACE_ACCOUNT_ID | RACKSPACE_ACCOUNT_APIKEY | service | admin | 1 | KEYSTONE | RACKSPACE_APIKEY | FLYWAY | 2018-12-28 22:58:34 | 2018-12-28 22:58:34 |
+
++---------------------+--------------------------------------------------------------------------------+----------------------+----------------------------------+--------------+-------------+-----------------+----------------------+------------------------------+-----------------+---------------------+---------------------+
+
+
+
+One thing to know is that the actual IP 10.43.117.142:9001 is the MSB (iag) container. Multicloud registers with MSB, so you can use MSB to fetch the Multicloud endpoint (I think you can use the K8S cluster IP and MSB node port for that instead of the actual MSB container IP and port).
+
+
+
+One final thing: you may need to add identity URL to the AAI cloud region as well, like this:
+
+
+
+curl -X PUT \
+
+ https://135.197.220.117:30233/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionTwo \
+
+ -H 'Accept: application/json' \
+
+ -H 'Content-Type: application/json' \
+
+ -H 'Postman-Token: b05ff02d-78c7-4e1e-9457-d9fa9cc5da65' \
+
+ -H 'X-FromAppId: AAI' \
+
+ -H 'X-TransactionId: get_aai_subscr' \
+
+ -H 'cache-control: no-cache' \
+
+ -d '{
+
+ "cloud-owner": "CloudOwner",
+
+ "cloud-region-id": "RegionTwo",
+
+ "cloud-type": "openstack",
+
+ "cloud-region-version": "v2.5",
+
+ "identity-url": "http://10.43.111.6/api/multicloud/v0/CloudOwner_RegionTwo/identity/v2.0/tokens",
+
+ "cloud-zone": "bm-2",
+
+ "complex-name": "complex-2",
+
+ "tenants": {
+
+ "tenant": [{
+
+ "tenant-id": "c236140a3dff4911bb4c7c86940616cc",
+
+ "tenant-name": "ONAP_Casablanca"
+
+ }]
+
+ },
+
+ "esr-system-info-list": {
+
+ "esr-system-info": [{
+
+ "esr-system-info-id": "1",
+
+ "system-name": "OpenStack-2",
+
+ "type": "vim",
+
+ "service-url": "http://XXX:5000/v3",
+
+ "user-name": "username",
+
+ "password": "password",
+
+ "system-type": "VIM",
+
+ "ssl-insecure": true,
+
+ "cloud-domain": "default",
+
+ "default-tenant": "ONAP_Casablanca"
+
+ }]
+
+ }
+
+}'
+
+ \ No newline at end of file
diff --git a/docs/images/SO_VNFM_Adapter_Architecture_Dublin.png b/docs/images/SO_VNFM_Adapter_Architecture_Dublin.png
new file mode 100644
index 0000000000..cb1a812678
--- /dev/null
+++ b/docs/images/SO_VNFM_Adapter_Architecture_Dublin.png
Binary files differ
diff --git a/docs/images/SO_VNFM_Adapter_Runtime_Components.png b/docs/images/SO_VNFM_Adapter_Runtime_Components.png
new file mode 100644
index 0000000000..0878f70761
--- /dev/null
+++ b/docs/images/SO_VNFM_Adapter_Runtime_Components.png
Binary files differ