Example #1
0
 def test_avi_obj_cmp_empty_list(self):
     obj = {'name': 'testpool', 'health_monitor_refs': [], 'enabled': True}
     existing_obj = {
         'lb_algorithm': 'LB_ALGORITHM_LEAST_CONNECTIONS',
         'use_service_port': False,
         'server_auto_scale': False,
         'host_check_enabled': False,
         'enabled': True,
         'capacity_estimation': False,
         'fewest_tasks_feedback_delay': 10,
         '_last_modified': '1471377748747040',
         'cloud_ref':
         'https://192.0.2.42/api/cloud/cloud-afe8bf2c-9821-4272-9bc6-67634c84bec9',
         'vrf_ref':
         'https://192.0.2.42/api/vrfcontext/vrfcontext-0e8ce760-fed2-4650-9397-5b3e4966376e',
         'inline_health_monitor': True,
         'default_server_port': 80,
         'request_queue_depth': 128,
         'graceful_disable_timeout': 1,
         'server_count': 0,
         'sni_enabled': True,
         'request_queue_enabled': False,
         'name': 'testpool',
         'max_concurrent_connections_per_server': 0,
         'url':
         'https://192.0.2.42/api/pool/pool-20084ee1-872e-4103-98e1-899103e2242a',
         'tenant_ref': 'https://192.0.2.42/api/tenant/admin',
         'uuid': 'pool-20084ee1-872e-4103-98e1-899103e2242a',
         'connection_ramp_duration': 10
     }
     diff = avi_obj_cmp(obj, existing_obj)
     assert diff
Example #2
0
    def test_avi_list_update(self):
        existing_obj = {
            'services': [{
                "enable_ssl": False,
                "port_range_end": 80,
                "port": 80
            }, {
                "enable_ssl": False,
                "port_range_end": 443,
                "port": 443
            }],
            "name":
            "vs-health-test",
            "url":
            "https://192.0.2.42/api/virtualservice/virtualservice-526c55c2-df89-40b9-9de6-e45a472290aa",
        }

        obj = {
            'services': [{
                "enable_ssl": False,
                "port_range_end": 80,
                "port": 80
            }]
        }

        diff = avi_obj_cmp(obj, existing_obj)
        assert not diff

        obj = {
            'services': [{
                "enable_ssl": False,
                "port_range_end": 80,
                "port": 80
            }, {
                "enable_ssl": False,
                "port_range_end": 443,
                "port": 80
            }],
            "name":
            "vs-health-test",
            "url":
            "https://192.0.2.42/api/virtualservice/virtualservice-526c55c2-df89-40b9-9de6-e45a472290aa",
        }

        diff = avi_obj_cmp(obj, existing_obj)
        assert not diff
Example #3
0
    def testhttppolicy(self):
        existing_obj = {
            "http_request_policy": {
                "rules": [{
                    "enable": True,
                    "index": 0,
                    "match": {
                        "path": {
                            "match_case": "INSENSITIVE",
                            "match_criteria": "CONTAINS",
                            "match_str": ["xvz", "rst"]
                        }
                    },
                    "name": "blah",
                    "switching_action": {
                        "action": "HTTP_SWITCHING_SELECT_POOL",
                        "pool_ref":
                        "https://12.97.16.202/api/pool/pool-d7f6f5e7-bd26-49ad-aeed-965719eb140b#abc",
                        "status_code": "HTTP_LOCAL_RESPONSE_STATUS_CODE_200"
                    }
                }]
            },
            "is_internal_policy": False,
            "name": "blah",
            "tenant_ref":
            "https://12.97.16.202/api/tenant/tenant-f52f7a3e-6876-4bb9-b8f7-3cab636dadf2#Sales",
            "url":
            "https://12.97.16.202/api/httppolicyset/httppolicyset-ffd8354b-671b-48d5-92cc-69a9057aad0c#blah",
            "uuid": "httppolicyset-ffd8354b-671b-48d5-92cc-69a9057aad0c"
        }

        obj = {
            "http_request_policy": {
                "rules": [{
                    "enable": True,
                    "index": "0",
                    "match": {
                        "path": {
                            "match_case": "INSENSITIVE",
                            "match_criteria": "CONTAINS",
                            "match_str": ["xvz", "rst"]
                        }
                    },
                    "name": "blah",
                    "switching_action": {
                        "action": "HTTP_SWITCHING_SELECT_POOL",
                        "pool_ref": "/api/pool?name=abc",
                        "status_code": "HTTP_LOCAL_RESPONSE_STATUS_CODE_200"
                    }
                }]
            },
            "is_internal_policy": False,
            "tenant": "Sales"
        }
        diff = avi_obj_cmp(obj, existing_obj)
        assert diff
Example #4
0
    def testNoneParams(self):
        objwnone = {
            'name': 'testpool',
            'scalar_field': None,
            'list_fields': {
                'y': None,
                'z': 'zz'
            }
        }
        obj = {'name': 'testpool', 'list_fields': {'z': 'zz'}}

        result = avi_obj_cmp(objwnone, obj)
        assert result
Example #5
0
 def testGSLB(self):
     obj = {
         'domain_names': ['cloud5.avi.com', 'cloud6.avi.com'],
         'health_monitor_scope':
         'GSLB_SERVICE_HEALTH_MONITOR_ALL_MEMBERS',
         'groups': [{
             'priority':
             20,
             'members': [{
                 'ip': {
                     'type': 'V4',
                     'addr': '198.51.100.1'
                 },
                 'enabled': True,
                 'ratio': 1
             }, {
                 'ip': {
                     'type': 'V4',
                     'addr': '198.51.100.10'
                 },
                 'enabled': True,
                 'ratio': 1
             }],
             'algorithm':
             'GSLB_ALGORITHM_CONSISTENT_HASH',
             'name':
             'sc'
         }, {
             'priority':
             14,
             'members': [{
                 'ip': {
                     'type': 'V4',
                     'addr': '198.51.100.2'
                 },
                 'enabled': True,
                 'ratio': 1
             }],
             'algorithm':
             'GSLB_ALGORITHM_ROUND_ROBIN',
             'name':
             'cn'
         }, {
             'priority':
             15,
             'members': [{
                 'ip': {
                     'type': 'V4',
                     'addr': '198.51.100.3'
                 },
                 'enabled': True,
                 'ratio': 1
             }],
             'algorithm':
             'GSLB_ALGORITHM_ROUND_ROBIN',
             'name':
             'in'
         }],
         'name':
         'gs-3',
         'num_dns_ip':
         2
     }
     existing_obj = {
         u'controller_health_status_enabled':
         True,
         u'uuid':
         u'gslbservice-ab9b36bd-3e95-4c2e-80f8-92905c2eccb2',
         u'wildcard_match':
         False,
         u'url':
         u'https://192.0.2.42/api/gslbservice/gslbservice-ab9b36bd-3e95-4c2e-80f8-92905c2eccb2#gs-3',
         u'tenant_ref':
         u'https://192.0.2.42/api/tenant/admin#admin',
         u'enabled':
         True,
         u'domain_names': [u'cloud5.avi.com', u'cloud6.avi.com'],
         u'use_edns_client_subnet':
         True,
         u'groups': [{
             u'priority':
             20,
             u'members': [{
                 u'ip': {
                     u'type': u'V4',
                     u'addr': u'198.51.100.1'
                 },
                 u'ratio': 1,
                 u'enabled': True
             }, {
                 u'ip': {
                     u'type': u'V4',
                     u'addr': u'198.51.100.10'
                 },
                 u'ratio': 1,
                 u'enabled': True
             }],
             u'name':
             u'sc',
             u'algorithm':
             u'GSLB_ALGORITHM_CONSISTENT_HASH'
         }, {
             u'priority':
             14,
             u'members': [{
                 u'ip': {
                     u'type': u'V4',
                     u'addr': u'198.51.100.2'
                 },
                 u'ratio': 1,
                 u'enabled': True
             }],
             u'name':
             u'cn',
             u'algorithm':
             u'GSLB_ALGORITHM_ROUND_ROBIN'
         }, {
             u'priority':
             15,
             u'members': [{
                 u'ip': {
                     u'type': u'V4',
                     u'addr': u'198.51.100.3'
                 },
                 u'ratio': 1,
                 u'enabled': True
             }],
             u'name':
             u'in',
             u'algorithm':
             u'GSLB_ALGORITHM_ROUND_ROBIN'
         }],
         u'num_dns_ip':
         2,
         u'health_monitor_scope':
         u'GSLB_SERVICE_HEALTH_MONITOR_ALL_MEMBERS',
         u'name':
         u'gs-3'
     }
     diff = avi_obj_cmp(obj, existing_obj)
     assert diff
Example #6
0
    def testAWSVs(self):
        existing_obj = {
            'network_profile_ref':
            'https://12.97.16.202/api/networkprofile/networkprofile-9a0a9896-6876-44c8-a3ee-512a968905f2#System-TCP-Proxy',
            'port_uuid': 'eni-4144e73c',
            'weight': 1,
            'availability_zone': 'us-west-2a',
            'enabled': True,
            'flow_dist': 'LOAD_AWARE',
            'subnet_uuid': 'subnet-91f0b6f4',
            'delay_fairness': False,
            'avi_allocated_vip': True,
            'vrf_context_ref':
            'https://12.97.16.202/api/vrfcontext/vrfcontext-722b280d-b555-4d82-9b35-af9442c0cb86#global',
            'subnet': {
                'ip_addr': {
                    'type': 'V4',
                    'addr': '198.51.100.0'
                },
                'mask': 24
            },
            'cloud_type': 'CLOUD_AWS',
            'uuid': 'virtualservice-a5f49b99-22c8-42e6-aa65-3ca5f1e36b9e',
            'network_ref': 'https://12.97.16.202/api/network/subnet-91f0b6f4',
            'cloud_ref':
            'https://12.97.16.202/api/cloud/cloud-49829414-c704-43ca-9dff-05b9e8474dcb#AWS Cloud',
            'avi_allocated_fip': False,
            'se_group_ref':
            'https://12.97.16.202/api/serviceenginegroup/serviceenginegroup-3bef6320-5a2d-4801-85c4-ef4f9841f235#Default-Group',
            'scaleout_ecmp': False,
            'max_cps_per_client': 0,
            'type': 'VS_TYPE_NORMAL',
            'analytics_profile_ref':
            'https://12.97.16.202/api/analyticsprofile/analyticsprofile-70f8b06f-7b6a-4500-b829-c869bbca2009#System-Analytics-Profile',
            'use_bridge_ip_as_vip': False,
            'application_profile_ref':
            'https://12.97.16.202/api/applicationprofile/applicationprofile-103cbc31-cac5-46ab-8e66-bbbb2c8f551f#System-HTTP',
            'auto_allocate_floating_ip': False,
            'services': [{
                'enable_ssl': False,
                'port_range_end': 80,
                'port': 80
            }],
            'active_standby_se_tag': 'ACTIVE_STANDBY_SE_1',
            'ip_address': {
                'type': 'V4',
                'addr': '198.51.100.33'
            },
            'ign_pool_net_reach': False,
            'east_west_placement': False,
            'limit_doser': False,
            'name': 'wwwawssit.ebiz.verizon.com',
            'url':
            'https://12.97.16.202/api/virtualservice/virtualservice-a5f49b99-22c8-42e6-aa65-3ca5f1e36b9e#wwwawssit.ebiz.verizon.com',
            'ssl_sess_cache_avg_size': 1024,
            'enable_autogw': True,
            'auto_allocate_ip': True,
            'tenant_ref':
            'https://12.97.16.202/api/tenant/tenant-f52f7a3e-6876-4bb9-b8f7-3cab636dadf2#Sales',
            'remove_listening_port_on_vs_down': False
        }
        obj = {
            'auto_allocate_ip': True,
            'subnet_uuid': 'subnet-91f0b6f4',
            'cloud_ref': '/api/cloud?name=AWS Cloud',
            'services': [{
                'port': 80
            }],
            'name': 'wwwawssit.ebiz.verizon.com'
        }

        diff = avi_obj_cmp(obj, existing_obj)
        assert diff
Example #7
0
    def test_complex_obj(self):

        obj = {
            'lb_algorithm':
            'LB_ALGORITHM_ROUND_ROBIN',
            'use_service_port':
            False,
            'server_auto_scale':
            False,
            'host_check_enabled':
            False,
            'tenant_ref':
            'https://192.0.2.42/api/tenant/admin#admin',
            'capacity_estimation':
            False,
            'servers': [{
                'hostname':
                'grastogi-server6',
                'ratio':
                1,
                'ip': {
                    'type': 'V4',
                    'addr': '198.51.100.62'
                },
                'discovered_networks': [{
                    'subnet': [{
                        'ip_addr': {
                            'type': 'V4',
                            'addr': '198.51.100.0'
                        },
                        'mask': 24
                    }],
                    'network_ref':
                    'https://192.0.2.42/api/network/dvportgroup-53975-10.10.2.10#PG-964'
                }],
                'enabled':
                True,
                'nw_ref':
                'https://192.0.2.42/api/vimgrnwruntime/dvportgroup-53975-10.10.2.10#PG-964',
                'verify_network':
                False,
                'static':
                False,
                'resolve_server_by_dns':
                False,
                'external_uuid':
                'vm-4230615e-bc0b-3d33-3929-1c7328575993',
                'vm_ref':
                'https://192.0.2.42/api/vimgrvmruntime/vm-4230615e-bc0b-3d33-3929-1c7328575993#grastogi-server6'
            }, {
                'hostname':
                'grastogi-server6',
                'ratio':
                1,
                'ip': {
                    'type': 'V4',
                    'addr': '198.51.100.61'
                },
                'discovered_networks': [{
                    'subnet': [{
                        'ip_addr': {
                            'type': 'V4',
                            'addr': '198.51.100.0'
                        },
                        'mask': 24
                    }],
                    'network_ref':
                    'https://192.0.2.42/api/network/dvportgroup-53975-10.10.2.10#PG-964'
                }],
                'enabled':
                True,
                'nw_ref':
                'https://192.0.2.42/api/vimgrnwruntime/dvportgroup-53975-10.10.2.10#PG-964',
                'verify_network':
                False,
                'static':
                False,
                'resolve_server_by_dns':
                False,
                'external_uuid':
                'vm-4230615e-bc0b-3d33-3929-1c7328575993',
                'vm_ref':
                'https://192.0.2.42/api/vimgrvmruntime/vm-4230615e-bc0b-3d33-3929-1c7328575993#grastogi-server6'
            }, {
                'hostname':
                'grastogi-server6',
                'ratio':
                1,
                'ip': {
                    'type': 'V4',
                    'addr': '198.51.100.65'
                },
                'discovered_networks': [{
                    'subnet': [{
                        'ip_addr': {
                            'type': 'V4',
                            'addr': '198.51.100.0'
                        },
                        'mask': 24
                    }],
                    'network_ref':
                    'https://192.0.2.42/api/network/dvportgroup-53975-10.10.2.10#PG-964'
                }],
                'enabled':
                True,
                'verify_network':
                False,
                'static':
                False,
                'resolve_server_by_dns':
                False
            }],
            'fewest_tasks_feedback_delay':
            10,
            '_last_modified':
            '1473292763246107',
            'cloud_ref':
            'https://192.0.2.42/api/cloud/cloud-e0696a58-8b72-4026-923c-9a87c38a2489#Default-Cloud',
            'vrf_ref':
            'https://192.0.2.42/api/vrfcontext/vrfcontext-33dfbcd7-867c-4e3e-acf7-96bf679d5a0d#global',
            'inline_health_monitor':
            True,
            'default_server_port':
            8000,
            'request_queue_depth':
            128,
            'graceful_disable_timeout':
            1,
            'sni_enabled':
            True,
            'server_count':
            3,
            'uuid':
            'pool-09201181-747e-41ea-872d-e9a7df71b726',
            'request_queue_enabled':
            False,
            'name':
            'p1',
            'max_concurrent_connections_per_server':
            0,
            'url':
            'https://192.0.2.42/api/pool/pool-09201181-747e-41ea-872d-e9a7df71b726#p1',
            'enabled':
            True,
            'connection_ramp_duration':
            10
        }

        existing_obj = {
            'lb_algorithm':
            'LB_ALGORITHM_ROUND_ROBIN',
            'use_service_port':
            False,
            'server_auto_scale':
            False,
            'host_check_enabled':
            False,
            'tenant_ref':
            'https://192.0.2.42/api/tenant/admin',
            'capacity_estimation':
            False,
            'servers': [{
                'hostname':
                'grastogi-server6',
                'ratio':
                1,
                'ip': {
                    'type': 'V4',
                    'addr': '198.51.100.62'
                },
                'discovered_networks': [{
                    'subnet': [{
                        'mask': 24,
                        'ip_addr': {
                            'type': 'V4',
                            'addr': '198.51.100.0'
                        }
                    }],
                    'network_ref':
                    'https://192.0.2.42/api/network/dvportgroup-53975-10.10.2.10'
                }],
                'enabled':
                True,
                'nw_ref':
                'https://192.0.2.42/api/vimgrnwruntime/dvportgroup-53975-10.10.2.10',
                'verify_network':
                False,
                'static':
                False,
                'resolve_server_by_dns':
                False,
                'external_uuid':
                'vm-4230615e-bc0b-3d33-3929-1c7328575993',
                'vm_ref':
                'https://192.0.2.42/api/vimgrvmruntime/vm-4230615e-bc0b-3d33-3929-1c7328575993'
            }, {
                'hostname':
                'grastogi-server6',
                'ratio':
                1,
                'ip': {
                    'type': 'V4',
                    'addr': '198.51.100.61'
                },
                'discovered_networks': [{
                    'subnet': [{
                        'mask': 24,
                        'ip_addr': {
                            'type': 'V4',
                            'addr': '198.51.100.0'
                        }
                    }],
                    'network_ref':
                    'https://192.0.2.42/api/network/dvportgroup-53975-10.10.2.10'
                }],
                'enabled':
                True,
                'nw_ref':
                'https://192.0.2.42/api/vimgrnwruntime/dvportgroup-53975-10.10.2.10',
                'verify_network':
                False,
                'static':
                False,
                'resolve_server_by_dns':
                False,
                'external_uuid':
                'vm-4230615e-bc0b-3d33-3929-1c7328575993',
                'vm_ref':
                'https://192.0.2.42/api/vimgrvmruntime/vm-4230615e-bc0b-3d33-3929-1c7328575993'
            }, {
                'hostname':
                'grastogi-server6',
                'ratio':
                1,
                'ip': {
                    'type': 'V4',
                    'addr': '198.51.100.65'
                },
                'discovered_networks': [{
                    'subnet': [{
                        'mask': 24,
                        'ip_addr': {
                            'type': 'V4',
                            'addr': '198.51.100.0'
                        }
                    }],
                    'network_ref':
                    'https://192.0.2.42/api/network/dvportgroup-53975-10.10.2.10'
                }],
                'enabled':
                True,
                'nw_ref':
                'https://192.0.2.42/api/vimgrnwruntime/dvportgroup-53975-10.10.2.10',
                'verify_network':
                False,
                'static':
                False,
                'resolve_server_by_dns':
                False,
                'external_uuid':
                'vm-4230615e-bc0b-3d33-3929-1c7328575993',
                'vm_ref':
                'https://192.0.2.42/api/vimgrvmruntime/vm-4230615e-bc0b-3d33-3929-1c7328575993'
            }],
            'fewest_tasks_feedback_delay':
            10,
            'cloud_ref':
            'https://192.0.2.42/api/cloud/cloud-e0696a58-8b72-4026-923c-9a87c38a2489',
            'vrf_ref':
            'https://192.0.2.42/api/vrfcontext/vrfcontext-33dfbcd7-867c-4e3e-acf7-96bf679d5a0d',
            'inline_health_monitor':
            True,
            'default_server_port':
            8000,
            'request_queue_depth':
            128,
            'graceful_disable_timeout':
            1,
            'sni_enabled':
            True,
            'server_count':
            3,
            'uuid':
            'pool-09201181-747e-41ea-872d-e9a7df71b726',
            'request_queue_enabled':
            False,
            'name':
            'p1',
            'max_concurrent_connections_per_server':
            0,
            'url':
            'https://192.0.2.42/api/pool/pool-09201181-747e-41ea-872d-e9a7df71b726',
            'enabled':
            True,
            'connection_ramp_duration':
            10
        }

        diff = avi_obj_cmp(obj, existing_obj)
        assert diff
Example #8
0
    def test_avi_obj_cmp_w_refs_n_name(self):
        existing_obj = {
            'use_service_port':
            False,
            'server_auto_scale':
            False,
            'host_check_enabled':
            False,
            'enabled':
            True,
            'capacity_estimation':
            False,
            'fewest_tasks_feedback_delay':
            10,
            '_last_modified':
            '1471377748747040',
            'cloud_ref':
            'https://192.0.2.42/api/cloud/cloud-afe8bf2c-9821-4272-9bc6-67634c84bec9',
            'vrf_ref':
            'https://192.0.2.42/api/vrfcontext/vrfcontext-0e8ce760-fed2-4650-9397-5b3e4966376e',
            'inline_health_monitor':
            True,
            'default_server_port':
            80,
            'request_queue_depth':
            128,
            'graceful_disable_timeout':
            1,
            'server_count':
            0,
            'sni_enabled':
            True,
            'request_queue_enabled':
            False,
            'name':
            'testpool',
            'max_concurrent_connections_per_server':
            0,
            'url':
            'https://192.0.2.42/api/pool/pool-20084ee1-872e-4103-98e1-899103e2242a',
            'tenant_ref':
            'https://192.0.2.42/api/tenant/admin',
            'uuid':
            'pool-20084ee1-872e-4103-98e1-899103e2242a',
            'connection_ramp_duration':
            10,
            'health_monitor_refs': [
                "https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc9#System-HTTP",
                "https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc8",
            ],
        }

        obj = {
            'name':
            'testpool',
            'health_monitor_refs': [
                'https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc9',
                "https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc8"
            ],
            'server_count':
            0
        }
        diff = avi_obj_cmp(obj, existing_obj)
        assert diff

        obj = {
            'name':
            'testpool',
            'health_monitor_refs': [
                'https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc9#System-HTTP',
                "https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc8"
            ],
            'server_count':
            0
        }
        diff = avi_obj_cmp(obj, existing_obj)
        assert diff

        obj = {
            'name':
            'testpool',
            'health_monitor_refs': [
                'https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc9#System-HTTP',
                "https://192.0.2.42/api/healthmonitor/healthmonitor-6d07b57f-126b-476c-baba-a8c8c8b06dc8#System-HTTP2"
            ],
            'server_count':
            0,
            'cloud_ref':
            'https://192.0.2.42/api/cloud/cloud-afe8bf2c-9821-4272-9bc6-67634c84bec9#Default-Cloud',
        }
        diff = avi_obj_cmp(obj, existing_obj)
        assert diff