Exemplo n.º 1
0
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)
Exemplo n.º 3
0
    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')
Exemplo n.º 6
0
    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')
Exemplo n.º 7
0
    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')
Exemplo n.º 8
0
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)
Exemplo n.º 10
0
    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)