summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
1ada8db)
Signed-off-by: KIRAN KASHALKAR <kiran.kashalkar@riftio.com>
- leaf-list dns-server {
- description "List of DNS Servers associated with IP Profile";
- type inet:ip-address;
+ list dns-server {
+ key "address";
+ leaf address {
+ description "List of DNS Servers associated with IP Profile";
+ type inet:ip-address;
+ }
}
container dhcp-params {
}
container dhcp-params {
# Copyright 2016 RIFT.IO Inc
#
# Licensed under the Apache License, Version 2.0 (the "License");
# Copyright 2016 RIFT.IO Inc
#
# Licensed under the Apache License, Version 2.0 (the "License");
except Exception as e:
self.log.error("Encountered exceptions during network creation. Exception: %s", str(e))
raise
except Exception as e:
self.log.error("Encountered exceptions during network creation. Exception: %s", str(e))
raise
kwargs = {'network_id' : network_id,
'dhcp_params': {'enable_dhcp': True},
'gateway_ip' : None,}
kwargs = {'network_id' : network_id,
'dhcp_params': {'enable_dhcp': True},
'gateway_ip' : None,}
if link_params.ip_profile_params.has_field('ip_version'):
kwargs['ip_version'] = 6 if link_params.ip_profile_params.ip_version == 'ipv6' else 4
else:
if link_params.ip_profile_params.has_field('ip_version'):
kwargs['ip_version'] = 6 if link_params.ip_profile_params.ip_version == 'ipv6' else 4
else:
link_params.ip_profile_params.subnet_prefix_pool,
link_params.name)
raise NeutronException.NotFound("SubnetPool with name %s not found"%(link_params.ip_profile_params.subnet_prefix_pool))
link_params.ip_profile_params.subnet_prefix_pool,
link_params.name)
raise NeutronException.NotFound("SubnetPool with name %s not found"%(link_params.ip_profile_params.subnet_prefix_pool))
kwargs['subnetpool_id'] = subnet_pool['id']
elif link_params.has_field('subnet'):
kwargs['cidr'] = link_params.subnet
kwargs['subnetpool_id'] = subnet_pool['id']
elif link_params.has_field('subnet'):
kwargs['cidr'] = link_params.subnet
kwargs['dhcp_params']['start_address'] = link_params.ip_profile_params.dhcp_params.start_address
if link_params.ip_profile_params.dhcp_params.has_field('count'):
kwargs['dhcp_params']['count'] = link_params.ip_profile_params.dhcp_params.count
kwargs['dhcp_params']['start_address'] = link_params.ip_profile_params.dhcp_params.start_address
if link_params.ip_profile_params.dhcp_params.has_field('count'):
kwargs['dhcp_params']['count'] = link_params.ip_profile_params.dhcp_params.count
if link_params.ip_profile_params.has_field('dns_server'):
kwargs['dns_server'] = []
for server in link_params.ip_profile_params.dns_server:
if link_params.ip_profile_params.has_field('dns_server'):
kwargs['dns_server'] = []
for server in link_params.ip_profile_params.dns_server:
- kwargs['dns_server'].append(server)
+ kwargs['dns_server'].append(server.address)
if link_params.ip_profile_params.has_field('gateway_address'):
kwargs['gateway_ip'] = link_params.ip_profile_params.gateway_address
if link_params.ip_profile_params.has_field('gateway_address'):
kwargs['gateway_ip'] = link_params.ip_profile_params.gateway_address
drv.neutron_subnet_create(**kwargs)
drv.neutron_subnet_create(**kwargs)
elif available.has_field('pcie_device'):
self.log.debug("Rejecting available flavor because pcie_device not required but available")
return False
elif available.has_field('pcie_device'):
self.log.debug("Rejecting available flavor because pcie_device not required but available")
return False
if required.has_field('mempage_size'):
self.log.debug("Matching mempage_size")
if available.has_field('mempage_size') == False:
if required.has_field('mempage_size'):
self.log.debug("Matching mempage_size")
if available.has_field('mempage_size') == False:
elif available.has_field('mempage_size'):
self.log.debug("Rejecting available flavor because mempage_size not required but available")
return False
elif available.has_field('mempage_size'):
self.log.debug("Rejecting available flavor because mempage_size not required but available")
return False
if required.has_field('cpu_pinning_policy'):
self.log.debug("Matching cpu_pinning_policy")
if required.cpu_pinning_policy != 'ANY':
if required.has_field('cpu_pinning_policy'):
self.log.debug("Matching cpu_pinning_policy")
if required.cpu_pinning_policy != 'ANY':
elif available.has_field('cpu_pinning_policy'):
self.log.debug("Rejecting available flavor because cpu_pinning_policy not required but available")
return False
elif available.has_field('cpu_pinning_policy'):
self.log.debug("Rejecting available flavor because cpu_pinning_policy not required but available")
return False
if required.has_field('cpu_thread_pinning_policy'):
self.log.debug("Matching cpu_thread_pinning_policy")
if available.has_field('cpu_thread_pinning_policy') == False:
if required.has_field('cpu_thread_pinning_policy'):
self.log.debug("Matching cpu_thread_pinning_policy")
if available.has_field('cpu_thread_pinning_policy') == False:
elif available.has_field('trusted_execution'):
self.log.debug("Rejecting available flavor because trusted_execution not required but available")
return False
elif available.has_field('trusted_execution'):
self.log.debug("Rejecting available flavor because trusted_execution not required but available")
return False
if required.has_field('numa_node_policy'):
self.log.debug("Matching numa_node_policy")
if available.has_field('numa_node_policy') == False:
if required.has_field('numa_node_policy'):
self.log.debug("Matching numa_node_policy")
if available.has_field('numa_node_policy') == False:
elif available.numa_node_policy.has_field('node_cnt'):
self.log.debug("Rejecting available flavor because numa node count not required but available")
return False
elif available.numa_node_policy.has_field('node_cnt'):
self.log.debug("Rejecting available flavor because numa node count not required but available")
return False
if required.numa_node_policy.has_field('mem_policy'):
self.log.debug("Matching numa_node_policy mem_policy")
if available.numa_node_policy.has_field('mem_policy') == False:
if required.numa_node_policy.has_field('mem_policy'):
self.log.debug("Matching numa_node_policy mem_policy")
if available.numa_node_policy.has_field('mem_policy') == False:
elif available.has_field('cpu_model'):
self.log.debug("Rejecting available flavor because cpu_model not required but available")
return False
elif available.has_field('cpu_model'):
self.log.debug("Rejecting available flavor because cpu_model not required but available")
return False
if required.has_field('cpu_arch'):
self.log.debug("Matching CPU architecture")
if available.has_field('cpu_arch') == False:
if required.has_field('cpu_arch'):
self.log.debug("Matching CPU architecture")
if available.has_field('cpu_arch') == False:
elif available.has_field('cpu_arch'):
self.log.debug("Rejecting available flavor because cpu_arch not required but available")
return False
elif available.has_field('cpu_arch'):
self.log.debug("Rejecting available flavor because cpu_arch not required but available")
return False
if required.has_field('cpu_vendor'):
self.log.debug("Matching CPU vendor")
if available.has_field('cpu_vendor') == False:
if required.has_field('cpu_vendor'):
self.log.debug("Matching CPU vendor")
if available.has_field('cpu_vendor') == False:
elif available.has_field('cpu_socket_count'):
self.log.debug("Rejecting available flavor because cpu_socket_count not required but available")
return False
elif available.has_field('cpu_socket_count'):
self.log.debug("Rejecting available flavor because cpu_socket_count not required but available")
return False
if required.has_field('cpu_core_count'):
self.log.debug("Matching CPU core count")
if available.has_field('cpu_core_count') == False:
if required.has_field('cpu_core_count'):
self.log.debug("Matching CPU core count")
if available.has_field('cpu_core_count') == False:
elif available.has_field('cpu_core_count'):
self.log.debug("Rejecting available flavor because cpu_core_count not required but available")
return False
elif available.has_field('cpu_core_count'):
self.log.debug("Rejecting available flavor because cpu_core_count not required but available")
return False
if required.has_field('cpu_core_thread_count'):
self.log.debug("Matching CPU core thread count")
if available.has_field('cpu_core_thread_count') == False:
if required.has_field('cpu_core_thread_count'):
self.log.debug("Matching CPU core thread count")
if available.has_field('cpu_core_thread_count') == False:
elif available.has_field('cpu_core_thread_count'):
self.log.debug("Rejecting available flavor because cpu_core_thread_count not required but available")
return False
elif available.has_field('cpu_core_thread_count'):
self.log.debug("Rejecting available flavor because cpu_core_thread_count not required but available")
return False
if required.has_field('cpu_feature'):
self.log.debug("Matching CPU feature list")
if available.has_field('cpu_feature') == False:
if required.has_field('cpu_feature'):
self.log.debug("Matching CPU feature list")
if available.has_field('cpu_feature') == False:
elif available.has_field('cpu_feature'):
self.log.debug("Rejecting available flavor because cpu_feature not required but available")
return False
elif available.has_field('cpu_feature'):
self.log.debug("Rejecting available flavor because cpu_feature not required but available")
return False
- self.log.info("Successful match for Host EPA attributes")
+ self.log.info("Successful match for Host EPA attributes")
return True
def _match_placement_group_inputs(self, required, available):
self.log.info("Matching Host aggregate attributes")
return True
def _match_placement_group_inputs(self, required, available):
self.log.info("Matching Host aggregate attributes")
if not required and not available:
# Host aggregate not required and not available => success
self.log.info("Successful match for Host Aggregate attributes")
if not required and not available:
# Host aggregate not required and not available => success
self.log.info("Successful match for Host Aggregate attributes")
# - Host aggregate not required but available
self.log.debug("Rejecting available flavor because host Aggregate mismatch. Required: %s, Available: %s ", required, available)
return False
# - Host aggregate not required but available
self.log.debug("Rejecting available flavor because host Aggregate mismatch. Required: %s, Available: %s ", required, available)
return False
def match_epa_params(self, resource_info, request_params):
result = self._match_vm_flavor(getattr(request_params, 'vm_flavor'),
getattr(resource_info, 'vm_flavor'))
def match_epa_params(self, resource_info, request_params):
result = self._match_vm_flavor(getattr(request_params, 'vm_flavor'),
getattr(resource_info, 'vm_flavor'))
if result == False:
self.log.debug("Host Aggregate mismatched")
return False
if result == False:
self.log.debug("Host Aggregate mismatched")
return False
return True
def _select_resource_flavor(self, account, vdu_init):
return True
def _select_resource_flavor(self, account, vdu_init):
Select a existing flavor if it matches the request or create new flavor
"""
flavor = RwcalYang.FlavorInfoItem()
Select a existing flavor if it matches the request or create new flavor
"""
flavor = RwcalYang.FlavorInfoItem()
epa_types = ['vm_flavor', 'guest_epa', 'host_epa', 'host_aggregate', 'hypervisor_epa', 'vswitch_epa']
epa_dict = {k: v for k, v in vdu_init.as_dict().items() if k in epa_types}
flavor.from_dict(epa_dict)
epa_types = ['vm_flavor', 'guest_epa', 'host_epa', 'host_aggregate', 'hypervisor_epa', 'vswitch_epa']
epa_dict = {k: v for k, v in vdu_init.as_dict().items() if k in epa_types}
flavor.from_dict(epa_dict)
rc, response = self.do_get_flavor_list(account)
if rc != RwTypes.RwStatus.SUCCESS:
self.log.error("Get-flavor-info-list operation failed for cloud account: %s",
rc, response = self.do_get_flavor_list(account)
if rc != RwTypes.RwStatus.SUCCESS:
self.log.error("Get-flavor-info-list operation failed for cloud account: %s",
# Copyright 2016 RIFT.IO Inc
#
# Licensed under the Apache License, Version 2.0 (the "License");
# Copyright 2016 RIFT.IO Inc
#
# Licensed under the Apache License, Version 2.0 (the "License");
vdur_console = RwVnfrYang.YangData_RwVnfr_VnfrConsole_Vnfr_Vdur()
vdur_console.id = self._vdur_id
vdur_console.console_url = 'none'
vdur_console = RwVnfrYang.YangData_RwVnfr_VnfrConsole_Vnfr_Vdur()
vdur_console.id = self._vdur_id
vdur_console.console_url = 'none'
xact_info.respond_xpath(rsp_code=rwdts.XactRspCode.ACK,
xpath=self.vnfr_vdu_console_xpath,
msg=vdur_console)
xact_info.respond_xpath(rsp_code=rwdts.XactRspCode.ACK,
xpath=self.vnfr_vdu_console_xpath,
msg=vdur_console)
#raise VnfRecordError("Not supported operation %s" % action)
self._log.error("Not supported operation %s" % action)
xact_info.respond_xpath(rsp_code=rwdts.XactRspCode.ACK)
#raise VnfRecordError("Not supported operation %s" % action)
self._log.error("Not supported operation %s" % action)
xact_info.respond_xpath(rsp_code=rwdts.XactRspCode.ACK)
self._log.debug("Registering for VNFR VDU using xpath: %s",
self.vnfr_vdu_console_xpath)
self._log.debug("Registering for VNFR VDU using xpath: %s",
self.vnfr_vdu_console_xpath)
self._log.debug("Key pair NSD is %s",authorized_key)
key_pairs.append(authorized_key.key)
self._log.debug("Key pair NSD is %s",authorized_key)
key_pairs.append(authorized_key.key)
- if key_pairs:
- cloud_config["key-pairs"] = key_pairs
-
+ if key_pairs:
+ cloud_config["key-pairs"] = key_pairs
+
users = list()
for user_entry in self._nsr_config_msg.user:
self._log.debug("User present is %s",user_entry)
user = {}
users = list()
for user_entry in self._nsr_config_msg.user:
self._log.debug("User present is %s",user_entry)
user = {}
- user["name"] = user_entry.name
+ user["name"] = user_entry.name
user["key-pairs"] = list()
for ssh_key in user_entry.key_pair:
user["key-pairs"].append(ssh_key.key)
user["key-pairs"] = list()
for ssh_key in user_entry.key_pair:
user["key-pairs"].append(ssh_key.key)
for user_entry in self._nsd_msg.user:
self._log.debug("User present in NSD is %s",user_entry)
user = {}
for user_entry in self._nsd_msg.user:
self._log.debug("User present in NSD is %s",user_entry)
user = {}
- user["name"] = user_entry.name
+ user["name"] = user_entry.name
user["key-pairs"] = list()
for ssh_key in user_entry.key_pair:
user["key-pairs"].append(ssh_key.key)
user["key-pairs"] = list()
for ssh_key in user_entry.key_pair:
user["key-pairs"].append(ssh_key.key)
self._log.debug("Cloud config formed is %s",cloud_config)
return cloud_config
self._log.debug("Cloud config formed is %s",cloud_config)
return cloud_config
@property
def openmano_instance_create_yaml(self):
@property
def openmano_instance_create_yaml(self):
for vnfr in self._vnfrs:
if "om_datacenter" in vnfr.vnfr.vnfr_msg:
vnfr_name = vnfr.vnfr.vnfd.name + "__" + str(vnfr.vnfr.vnfr_msg.member_vnf_index_ref)
for vnfr in self._vnfrs:
if "om_datacenter" in vnfr.vnfr.vnfr_msg:
vnfr_name = vnfr.vnfr.vnfd.name + "__" + str(vnfr.vnfr.vnfr_msg.member_vnf_index_ref)
- openmano_instance_create["vnfs"][vnfr_name] = {"datacenter": vnfr.vnfr.vnfr_msg.om_datacenter}
+ openmano_instance_create["vnfs"][vnfr_name] = {"datacenter": vnfr.vnfr.vnfr_msg.om_datacenter}
openmano_instance_create["networks"] = {}
for vld_msg in self._nsd_msg.vld:
openmano_instance_create["networks"][vld_msg.name] = {}
openmano_instance_create["networks"] = {}
for vld_msg in self._nsd_msg.vld:
openmano_instance_create["networks"][vld_msg.name] = {}
if ip_profile_params.has_field('gateway_address'):
ip_profile['gateway-address'] = ip_profile_params.gateway_address
if ip_profile_params.has_field('dns_server') and len(ip_profile_params.dns_server) > 0:
if ip_profile_params.has_field('gateway_address'):
ip_profile['gateway-address'] = ip_profile_params.gateway_address
if ip_profile_params.has_field('dns_server') and len(ip_profile_params.dns_server) > 0:
- ip_profile['dns-address'] = ip_profile_params.dns_server[0]
+ ip_profile['dns-address'] = ip_profile_params.dns_server[0].address
if ip_profile_params.has_field('dhcp_params'):
ip_profile['dhcp'] = {}
ip_profile['dhcp']['enabled'] = ip_profile_params.dhcp_params.enabled
if ip_profile_params.has_field('dhcp_params'):
ip_profile['dhcp'] = {}
ip_profile['dhcp']['enabled'] = ip_profile_params.dhcp_params.enabled
elif "datacenter" in openmano_instance_create:
network["datacenter"] = openmano_instance_create["datacenter"]
if network:
elif "datacenter" in openmano_instance_create:
network["datacenter"] = openmano_instance_create["datacenter"]
if network:
- openmano_instance_create["networks"][vld_msg.name]["sites"].append(network)
+ openmano_instance_create["networks"][vld_msg.name]["sites"].append(network)
- openmano_instance_create["networks"][vld_msg.name]['ip-profile'] = ip_profile
-
-
+ openmano_instance_create["networks"][vld_msg.name]['ip-profile'] = ip_profile
+
+
return yaml.safe_dump(openmano_instance_create, default_flow_style=False)
@asyncio.coroutine
return yaml.safe_dump(openmano_instance_create, default_flow_style=False)
@asyncio.coroutine
for vm in vnf_status["vms"]:
if vm["uuid"] not in self._vdur_console_handler:
for vm in vnf_status["vms"]:
if vm["uuid"] not in self._vdur_console_handler:
- vdur_console_handler = VnfrConsoleOperdataDtsHandler(self._dts, self._log, self._loop,
+ vdur_console_handler = VnfrConsoleOperdataDtsHandler(self._dts, self._log, self._loop,
self, vnfr_msg.id,vm["uuid"],vm["name"])
yield from vdur_console_handler.register()
self._vdur_console_handler[vm["uuid"]] = vdur_console_handler
self, vnfr_msg.id,vm["uuid"],vm["name"])
yield from vdur_console_handler.register()
self._vdur_console_handler[vm["uuid"]] = vdur_console_handler
vdur_msg = vnfr_msg.vdur.add()
vdur_msg.vim_id = vm["vim_vm_id"]
vdur_msg.id = vm["uuid"]
vdur_msg = vnfr_msg.vdur.add()
vdur_msg.vim_id = vm["vim_vm_id"]
vdur_msg.id = vm["uuid"]
for _,handler in self._vdur_console_handler.items():
handler._regh.deregister()
for _,handler in self._vdur_console_handler.items():
handler._regh.deregister()
if self._nsr_uuid is None:
self._log.warning("Cannot terminate an un-instantiated nsr")
return
if self._nsr_uuid is None:
self._log.warning("Cannot terminate an un-instantiated nsr")
return