SOL006 patch for POL
[osm/POL.git] / osm_policy_module / tests / integration / test_policy_agent.py
index 1a9dd68..9fe5e2a 100644 (file)
@@ -53,43 +53,7 @@ nsr_record_mock = {
     "ssh-authorized-key": None,
     "name-ref": "cirros_ns",
     "nsd": {
-        "name": "cirros_vdu_scaling_ns",
         "_id": "d7c8bd3c-eb39-4514-8847-19f01345524f",
-        "vld": [
-            {
-                "id": "cirros_nsd_vld1",
-                "name": "cirros_nsd_vld1",
-                "type": "ELAN",
-                "mgmt-network": "true",
-                "vnfd-connection-point-ref": [
-                    {
-                        "vnfd-id-ref": "cirros_vdu_scaling_vnf",
-                        "member-vnf-index-ref": 1,
-                        "vnfd-connection-point-ref": "eth0"
-                    },
-                    {
-                        "vnfd-id-ref": "cirros_vdu_scaling_vnf",
-                        "member-vnf-index-ref": 2,
-                        "vnfd-connection-point-ref": "eth0"
-                    }
-                ]
-            }
-        ],
-        "vendor": "OSM",
-        "constituent-vnfd": [
-            {
-                "member-vnf-index": "1",
-                "vnfd-id-ref": "cirros_vdu_scaling_vnf"
-            },
-            {
-                "member-vnf-index": "2",
-                "vnfd-id-ref": "cirros_vdu_scaling_vnf"
-            }
-        ],
-        "version": "1.0",
-        "id": "cirros_vdu_scaling_ns",
-        "description": "Simple NS example with a cirros_vdu_scaling_vnf",
-        "logo": "osm.png",
         "_admin": {
             "created": 1535392246.499733,
             "userDefinedData": {
@@ -114,7 +78,40 @@ nsr_record_mock = {
                 "admin"
             ]
         },
-        "short-name": "cirros_vdu_scaling_ns"
+        "id": "cirros_vdu_scaling_ns",
+        "name": "cirros_vdu_scaling_ns",
+        "description": "Simple NS example with a cirros_vdu_scaling_vnf",
+        "designer": "OSM", "version": "1.0",
+        "vnfd-id": ["cirros_vdu_scaling_vnf"],
+        "df": [{
+            "id": "default-df",
+            "vnf-profile": [
+                {
+                    "id": "1",
+                    "vnfd-id": "cirros_vdu_scaling_vnf",
+                    "virtual-link-connectivity": [{
+                        "virtual-link-profile-id": "cirros_nsd_vld1",
+                        "constituent-cpd-id": [{
+                            "constituent-base-element-id": "1",
+                            "constituent-cpd-id": "eth0-ext"
+                        }]
+                    }]
+                }, {
+                    "id": "2",
+                    "vnfd-id": "cirros_vdu_scaling_vnf",
+                    "virtual-link-connectivity": [{
+                        "virtual-link-profile-id": "cirros_nsd_vld1",
+                        "constituent-cpd-id": [{
+                            "constituent-base-element-id": "2",
+                            "constituent-cpd-id": "eth0-ext"
+                        }]
+                    }]
+                }
+            ]
+        }],
+        "virtual-link-desc": [{
+            "id": "cirros_nsd_vld1", "mgmt-network": "true"
+        }]
     },
     "id": "87776f33-b67c-417a-8119-cb08e4098951",
     "config-status": "configured",
@@ -264,163 +261,171 @@ vnfr_record_mocks = [
             }
         ]}]
 
-nsd_record_mock = {'name': 'cirros_vdu_scaling_ns',
-                   'version': '1.0',
-                   'short-name': 'cirros_vdu_scaling_ns',
-                   'logo': 'osm.png',
-                   'id': 'cirros_vdu_scaling_ns',
-                   'description': 'Simple NS example with a cirros_vdu_scaling_vnf',
-                   'vendor': 'OSM',
-                   'vld': [
-                       {'name': 'cirros_nsd_vld1',
-                        'type': 'ELAN',
-                        'id': 'cirros_nsd_vld1',
-                        'mgmt-network': 'true',
-                        'vnfd-connection-point-ref': [
-                            {'vnfd-id-ref': 'cirros_vdu_scaling_vnf',
-                             'vnfd-connection-point-ref': 'eth0',
-                             'member-vnf-index-ref': 1},
-                            {'vnfd-id-ref': 'cirros_vdu_scaling_vnf',
-                             'vnfd-connection-point-ref': 'eth0',
-                             'member-vnf-index-ref': 2}]}],
-                   'constituent-vnfd': [{'vnfd-id-ref': 'cirros_vdu_scaling_vnf',
-                                         'member-vnf-index': '1'},
-                                        {'vnfd-id-ref': 'cirros_vdu_scaling_vnf',
-                                         'member-vnf-index': '2'}]}
+nsd_record_mock = {
+    'id': 'cirros_vdu_scaling_ns',
+    'name': 'cirros_vdu_scaling_ns',
+    'description': 'Simple NS example with a cirros_vdu_scaling_vnf',
+    'designer': 'OSM',
+    'version': '1.0',
+    'vnfd-id': ['cirros_vdu_scaling_vnf'],
+    'df': [{
+        'id': 'default-df',
+        'vnf-profile': [
+            {
+                'id': '1',
+                'vnfd-id': 'cirros_vdu_scaling_vnf',
+                'virtual-link-connectivity': [{
+                    'virtual-link-profile-id': 'cirros_nsd_vld1',
+                    'constituent-cpd-id': [{
+                        'constituent-base-element-id': '1',
+                        'constituent-cpd-id': 'eth0-ext'
+                    }]
+                }]
+            }, {
+                'id': '2',
+                'vnfd-id': 'cirros_vdu_scaling_vnf',
+                'virtual-link-connectivity': [{
+                    'virtual-link-profile-id': 'cirros_nsd_vld1',
+                    'constituent-cpd-id': [{
+                        'constituent-base-element-id': '2',
+                        'constituent-cpd-id': 'eth0-ext'
+                    }]
+                }]
+            }
+        ]
+    }],
+    'virtual-link-desc': [{
+        'id': 'cirros_nsd_vld1',
+        'mgmt-network': 'true'
+    }]
+}
+
 
 vnfd_record_mock = {
+    'id': 'cirros_vdu_scaling_vnf',
     "_id": "63f44c41-45ee-456b-b10d-5f08fb1796e0",
-    "name": "cirros_vdu_scaling_vnf",
-    "vendor": "OSM",
-    "vdu": [
-        {
-            "name": "cirros_vnfd-VM",
-            "monitoring-param": [
-                {
-                    "id": "cirros_vnfd-VM_memory_util",
-                    "nfvi-metric": "average_memory_utilization"
-                }
-            ],
-            "vm-flavor": {
-                "vcpu-count": 1,
-                "memory-mb": 256,
-                "storage-gb": 2
-            },
-            "description": "cirros_vnfd-VM",
-            "count": 1,
-            "id": "cirros_vnfd-VM",
-            "interface": [
-                {
-                    "name": "eth0",
-                    "external-connection-point-ref": "eth0",
-                    "type": "EXTERNAL",
-                    "virtual-interface": {
-                        "bandwidth": "0",
-                        "type": "VIRTIO",
-                        "vpci": "0000:00:0a.0"
-                    }
-                }
-            ],
-            "image": "cirros034",
-            "alarm": [
-                {
-                    "value": 20.0000,
-                    "actions": {
-                        "insufficient-data": [
-                            {
-                                "url": "localhost:9090"
-                            }
-                        ],
-                        "ok": [
-                            {
-                                "url": "localhost:9090"
-                            }
-                        ],
-                        "alarm": [
-                            {
-                                "url": "localhost:9090"
-                            }
-                        ]
-                    },
-                    "alarm-id": "alarm-1",
-                    "operation": "LT",
-                    "vnf-monitoring-param-ref": "cirros_vnf_memory_util"
-                }
-            ]
+    'product-name': 'cirros_vdu_scaling_vnf',
+    'description': 'Simple VNF example with a cirros and a scaling group descriptor',
+    'provider': 'OSM',
+    'version': '1.0',
+    'mgmt-cp': 'eth0-ext',
+    'virtual-storage-desc': [{
+        'id': 'cirros_vnfd-VM-storage',
+        'size-of-storage': 2
+    }],
+    'virtual-compute-desc': [{
+        'id': 'cirros_vnfd-VM-compute',
+        'virtual-cpu': {
+            'num-virtual-cpu': 1
+        },
+        'virtual-memory': {
+            'size': 0.25
         }
-    ],
-    "monitoring-param": [
-        {
-            "id": "cirros_vnf_memory_util",
-            "name": "cirros_vnf_memory_util",
-            "aggregation-type": "AVERAGE",
-            "vdu-monitoring-param": {
-                "vdu-monitoring-param-ref": "cirros_vnfd-VM_memory_util",
-                "vdu-ref": "cirros_vnfd-VM"
+    }],
+    'sw-image-desc': [{
+        'id': 'cirros034',
+        'name': 'cirros034',
+        'image': 'cirros034'
+    }],
+    'vdu': [{
+        'id': 'cirros_vnfd-VM',
+        'description': 'cirros_vnfd-VM',
+        'name': 'cirros_vnfd-VM',
+        'alarm': [{
+            'value': 20.0,
+            'actions': {
+                'insufficient-data': [{
+                    'url': 'localhost:9090'
+                }],
+                'ok': [{
+                    'url': 'localhost:9090'
+                }],
+                'alarm': [{
+                    'url': 'localhost:9090'
+                }]
+            },
+            'alarm-id': 'alarm-1',
+            'operation': 'LT',
+            'vnf-monitoring-param-ref': 'cirros_vnf_memory_util'
+        }],
+        'sw-image-desc': 'cirros034',
+        'virtual-compute-desc': 'cirros_vnfd-VM-compute',
+        'virtual-storage-desc': ['cirros_vnfd-VM-storage'],
+        'int-cpd': [{
+            'id': 'eth0-int',
+            'virtual-network-interface-requirement': [{
+                'name': 'eth0',
+                'virtual-interface': {
+                    'bandwidth': '0',
+                    'type': 'VIRTIO',
+                    'vpci': '0000:00:0a.0'}
+            }]
+        }],
+        'monitoring-parameter': [{
+            'id': 'cirros_vnf_memory_util',
+            'name': 'cirros_vnf_memory_util',
+            'performance-metric': 'average_memory_utilization'
+        }]
+    }],
+    'df': [{
+        'id': 'default-df',
+        'vdu-profile': [{
+            'id': 'cirros_vnfd-VM',
+            'min-number-of-instances': 1,
+            'max-number-of-instances': 10,
+            'vdu-configuration-id': 'cirros_vnfd-VM-vdu-configuration'
+        }],
+        'instantiation-level': [{
+            'id': 'default-instantiation-level',
+            'vdu-level': [{
+                'vdu-id': 'cirros_vnfd-VM',
+                'number-of-instances': 1}]
+        }],
+        'scaling-aspect': [{
+            'id': 'scale_cirros_vnfd-VM',
+            'name': 'scale_cirros_vnfd-VM',
+            'max-scale-level': 10,
+            'scaling-policy': [{
+                'name': 'auto_memory_util_above_threshold',
+                'scaling-type': 'automatic',
+                'cooldown-time': 60,
+                'threshold-time': 10,
+                'scaling-criteria': [{
+                    'name': 'group1_memory_util_above_threshold',
+                    'vnf-monitoring-param-ref': 'cirros_vnf_memory_util',
+                    'scale-out-threshold': 80,
+                    'scale-out-relational-operation': 'GT',
+                    'scale-in-relational-operation': 'LT',
+                    'scale-in-threshold': 20
+                }]
+            }],
+            'aspect-delta-details': {
+                'deltas': [{
+                    'id': 'scale_cirros_vnfd-VM-delta',
+                    'vdu-delta': [{
+                        'number-of-instances': 1,
+                        'id': 'cirros_vnfd-VM'}]
+                }]
             }
-        },
-        {
-            "id": "haproxy_users",
-            "name": "haproxy_users",
-            "aggregation-type": "AVERAGE",
-            "vnf-metric":
-                {"vnf-metric-name-ref": "users"}
+        }]
+    }],
+    'ext-cpd': [{
+        'id': 'eth0-ext',
+        'int-cpd': {
+            'vdu-id': 'cirros_vnfd-VM',
+            'cpd': 'eth0-int'
         }
-    ],
-    "vdu-configuration": {
-        "juju": {
-            "charm": "testmetrics",
-            "proxy": True
+    }],
+    'vdu-configuration': [{
+        'juju': {
+            'charm': 'testmetrics',
+            'proxy': True
         },
-        "metrics": {
-            "name": "users"
-        }
-    },
-    "description": "Simple VNF example with a cirros and a scaling group descriptor",
-    "id": "cirros_vdu_scaling_vnf",
-    "logo": "cirros-64.png",
-    "version": "1.0",
-    "connection-point": [
-        {
-            "name": "eth0",
-            "type": "VPORT"
-        }
-    ],
-    "mgmt-interface": {
-        "cp": "eth0"
-    },
-    "scaling-group-descriptor": [
-        {
-            "name": "scale_cirros_vnfd-VM",
-            "min-instance-count": 1,
-            "vdu": [
-                {
-                    "count": 1,
-                    "vdu-id-ref": "cirros_vnfd-VM"
-                }
-            ],
-            "max-instance-count": 10,
-            "scaling-policy": [
-                {
-                    "name": "auto_memory_util_above_threshold",
-                    "scaling-type": "automatic",
-                    "cooldown-time": 60,
-                    "threshold-time": 10,
-                    "scaling-criteria": [
-                        {
-                            "name": "group1_memory_util_above_threshold",
-                            "vnf-monitoring-param-ref": "cirros_vnf_memory_util",
-                            "scale-out-threshold": 80,
-                            "scale-out-relational-operation": "GT",
-                            "scale-in-relational-operation": "LT",
-                            "scale-in-threshold": 20
-                        }
-                    ]
-                }
-            ]
-        }
-    ],
-    "short-name": "cirros_vdu_scaling_vnf",
+        'metrics': [{
+            'name': 'users'
+        }],
+        'id': 'cirros_vnfd-VM-vdu-configuration'
+    }],
     "_admin": {
         "created": 1535392242.6281035,
         "modified": 1535392242.6281035,
@@ -500,28 +505,24 @@ class PolicyModuleAgentTest(unittest.TestCase):
         create_alarm.assert_any_call(metric_name='average_memory_utilization',
                                      ns_id='test_nsr_id',
                                      operation='GT',
-                                     statistic='AVERAGE',
                                      threshold=80,
                                      vdu_name='cirros_ns-1-cirros_vnfd-VM-1',
                                      vnf_member_index='1')
         create_alarm.assert_not_called_with(metric_name='average_memory_utilization',
                                             ns_id='test_nsr_id',
                                             operation='LT',
-                                            statistic='AVERAGE',
                                             threshold=20,
                                             vdu_name='cirros_ns-1-cirros_vnfd-VM-1',
                                             vnf_member_index='1')
         create_alarm.assert_any_call(metric_name='average_memory_utilization',
                                      ns_id='test_nsr_id',
                                      operation='GT',
-                                     statistic='AVERAGE',
                                      threshold=80,
                                      vdu_name='cirros_ns-2-cirros_vnfd-VM-1',
                                      vnf_member_index='2')
         create_alarm.assert_not_called_with(metric_name='average_memory_utilization',
                                             ns_id='test_nsr_id',
                                             operation='LT',
-                                            statistic='AVERAGE',
                                             threshold=20,
                                             vdu_name='cirros_ns-2-cirros_vnfd-VM-1',
                                             vnf_member_index='2')
@@ -558,15 +559,13 @@ class PolicyModuleAgentTest(unittest.TestCase):
                                      vdu_name='cirros_ns-1-cirros_vnfd-VM-1',
                                      vnf_member_index='1',
                                      threshold=20.0,
-                                     operation='LT',
-                                     statistic='AVERAGE')
+                                     operation='LT')
         create_alarm.assert_any_call(metric_name='average_memory_utilization',
                                      ns_id='test_nsr_id',
                                      vdu_name='cirros_ns-2-cirros_vnfd-VM-1',
                                      vnf_member_index='2',
                                      threshold=20.0,
-                                     operation='LT',
-                                     statistic='AVERAGE')
+                                     operation='LT')
 
 
 if __name__ == '__main__':