def main(): # get vlan auto resource model resource_context = helpers.get_resource_context_details() resource_model_parser = ResourceModelParser() vlan_auto_resource_model = resource_model_parser.convert_to_resource_model(resource_context) # get reservation details reservation_context = helpers.get_reservation_context_details() # Start api session api = helpers.get_api_session() vlan_service_provider = VlanResolverProvider(vlan_resource_model=vlan_auto_resource_model, pool_id=reservation_context.domain, reservation_id=reservation_context.id, owner_id=resource_context.name, api=api) if not vlan_service_provider.is_vlan_resolved(): # resolve vlan id vlan_id = vlan_service_provider.resolve_vlan_auto() vlan_id = str(vlan_id) # set resolved vlan id to virtual network attribute api.SetServiceAttributesValues(reservation_context.id, resource_context.name, [AttributeNameValue( vlan_auto_resource_model.virtual_network_attribute, vlan_id)]) _logger.info("{0} resolved vlan id {1} successfully".format(resource_context.name, vlan_id)) else: vlan_id = str(vlan_auto_resource_model.virtual_network) _logger.info("{0} already has a resolved vlan id: {1}".format(resource_context.name, vlan_id)) # command result for programmatic use set_command_result(vlan_id)
def deploy_from_template(self): # get command parameters from the environment deployment_params = self.qualipy_helpers.get_user_param('DEPLOY_DATA') data = self.serializer.decode(deployment_params) data_holder = DeployDataHolder(data) # prepare for execute command connection_details = self.connection_retriever.connection_details() # execute command result = self.command_wrapper.execute_command_with_connection( connection_details, self.deployFromTemplateCommand.execute_deploy_from_template, data_holder) set_command_result(result=result, unpicklable=False)
def deploy_from_template(self): # get command parameters from the environment deployment_params = self.qualipy_helpers.get_user_param('DEPLOY_DATA') data = self.serializer.decode(deployment_params) data_holder = DeployDataHolder(data) # prepare for execute command connection_details = self.connection_retriever.connection_details() # execute command result = self.command_wrapper.execute_command_with_connection( connection_details, self.deployFromTemplateCommand.execute_deploy_from_template, data_holder) set_command_result(result=result, unpicklable=False)
def test_get_result_from_command_output_with_result_unpickable_false(self): connection_result = ConnectionResult(mac_address='AA', vm_uuid='BB', network_name='CC') output_result = set_command_result(result=[connection_result], unpicklable=False) results = get_result_from_command_output(output_result) self.assertEqual(results[0]['mac_address'], 'AA') self.assertEqual(results[0]['vm_uuid'], 'BB') self.assertEqual(results[0]['network_name'], 'CC')
def test_get_result_from_command_output_with_result_unpickable_true(self): connection_result = ConnectionResult(mac_address='AA', vm_uuid='BB', network_name='CC') output_result = set_command_result(result=connection_result, unpicklable=True) result = get_result_from_command_output(output_result) self.assertEqual(result.mac_address, 'AA') self.assertEqual(result.vm_uuid, 'BB') self.assertEqual(result.network_name, 'CC')
def test_get_result_from_command_output_with_result_unpickable_false(self): connection_result = ConnectionResult(mac_address='AA', vm_uuid='BB', network_name='CC') output_result = set_command_result(result=[connection_result], unpicklable=False) results = get_result_from_command_output(output_result) self.assertEqual(results[0]['mac_address'], 'AA') self.assertEqual(results[0]['vm_uuid'], 'BB') self.assertEqual(results[0]['network_name'], 'CC')
def test_get_result_from_command_output_with_result_unpickable_true(self): connection_result = ConnectionResult(mac_address='AA', vm_uuid='BB', network_name='CC') output_result = set_command_result(result=connection_result, unpicklable=True) result = get_result_from_command_output(output_result) self.assertEqual(result.mac_address, 'AA') self.assertEqual(result.vm_uuid, 'BB') self.assertEqual(result.network_name, 'CC')
def main(): # get vlan auto resource model resource_context = helpers.get_resource_context_details() resource_model_parser = ResourceModelParser() vlan_auto_resource_model = resource_model_parser.convert_to_resource_model( resource_context) # get reservation details reservation_context = helpers.get_reservation_context_details() # Start api session api = helpers.get_api_session() vlan_service_provider = VlanResolverProvider( vlan_resource_model=vlan_auto_resource_model, pool_id=reservation_context.domain, reservation_id=reservation_context.id, owner_id=resource_context.name, api=api) if not vlan_service_provider.is_vlan_resolved(): # resolve vlan id vlan_id = vlan_service_provider.resolve_vlan_auto() vlan_id = str(vlan_id) # set resolved vlan id to virtual network attribute api.SetServiceAttributesValues( reservation_context.id, resource_context.name, [ AttributeNameValue( vlan_auto_resource_model.virtual_network_attribute, vlan_id) ]) _logger.info("{0} resolved vlan id {1} successfully".format( resource_context.name, vlan_id)) else: vlan_id = str(vlan_auto_resource_model.virtual_network) _logger.info("{0} already has a resolved vlan id: {1}".format( resource_context.name, vlan_id)) # command result for programmatic use set_command_result(vlan_id)
def connect(self): # get command parameters from the environment uuid = self.qualipy_helpers.get_user_param('VM_UUID') vlan_id = self.qualipy_helpers.get_user_param('VLAN_ID') vlan_spec_type = self.qualipy_helpers.get_user_param('VLAN_SPEC_TYPE') if not uuid: raise ValueError('VM_UUID is missing') if not vlan_id: raise ValueError('VLAN_ID is missing') if not vlan_spec_type: raise ValueError('VLAN_SPEC_TYPE is missing') # load default params dv_switch_path = self.vcenter_resource_model.default_dvswitch_path dv_switch_name = self.vcenter_resource_model.default_dvswitch_name port_group_path = self.vcenter_resource_model.default_port_group_path default_network = self.vcenter_resource_model.default_network vnic_to_network = VmNetworkMapping() vnic_to_network.dv_switch_path = dv_switch_path vnic_to_network.dv_switch_name = dv_switch_name vnic_to_network.port_group_path = port_group_path vnic_to_network.vlan_id = vlan_id vnic_to_network.vlan_spec = vlan_spec_type # prepare for execute command connection_details = self.connection_retriever.connection_details() # execute command connection_results = self.command_wrapper.execute_command_with_connection(connection_details, self.virtual_switch_connect_command.connect_to_networks, uuid, [vnic_to_network], default_network) set_command_result(result=connection_results, unpicklable=False)
def connect(self): # get command parameters from the environment uuid = self.qualipy_helpers.get_user_param('VM_UUID') vlan_id = self.qualipy_helpers.get_user_param('VLAN_ID') vlan_spec_type = self.qualipy_helpers.get_user_param('VLAN_SPEC_TYPE') if not uuid: raise ValueError('VM_UUID is missing') if not vlan_id: raise ValueError('VLAN_ID is missing') if not vlan_spec_type: raise ValueError('VLAN_SPEC_TYPE is missing') # load default params dv_switch_path = self.vcenter_resource_model.default_dvswitch_path dv_switch_name = self.vcenter_resource_model.default_dvswitch_name port_group_path = self.vcenter_resource_model.default_port_group_path default_network = self.vcenter_resource_model.default_network vnic_to_network = VmNetworkMapping() vnic_to_network.dv_switch_path = dv_switch_path vnic_to_network.dv_switch_name = dv_switch_name vnic_to_network.port_group_path = port_group_path vnic_to_network.vlan_id = vlan_id vnic_to_network.vlan_spec = vlan_spec_type # prepare for execute command connection_details = self.connection_retriever.connection_details() # execute command connection_results = self.command_wrapper.execute_command_with_connection( connection_details, self.virtual_switch_connect_command.connect_to_networks, uuid, [vnic_to_network], default_network) set_command_result(result=connection_results, unpicklable=False)