Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This is something we are building out incrementally starting with a few customers migrating to Iguana X. It’s not finished yet but is proving evolving and proving very helpful in helping us figure out how we can streamline the conversion process .

Expand
titleYou'll need 10.1.81 or newer - this video shows how the converter is meant to run
converter.mp4

...

titleSo far we are having success with the converter

through finding the key use case patterns and how they can be brought over in a smooth and safe fashion.

Reminder: Reach out to work with us - support@interfaceware.com. We’ve successfully helped a few customers use the converter. It’s been extremely helpful in quickly identifying issues we need to address to help them port over.

...

Expand
titleYou'll need 10.1.81 or newer - this video shows how the converter is meant to run
converter.mp4
Expand
titleCreate a component using +FROM URL - use git@bitbucket.org:interfaceware/iguanaconverter.git
Code Block
git@bitbucket.org:interfaceware/iguanaconverter.git

This the component repository:

https://bitbucket.org/interfaceware/iguanaconverter/

Image Removed
STEP 1: Add Iguana 6 Channel Importer to IguanaX using + Component

Clickthe Iguana 6 Channel Importer and ADD.

Image Added
Expand
titleSTEP 2: Edit the custom GitRepo component property to point to a channel export from Iguana 6

Another good repo to try is:

https://bitbucket.org/interfaceware/export

or in copy paste-able form:

Code Block
https://bitbucket.org/interfaceware/export

The default for this is currently:

https://github.com/interfaceware/iguana-tools

or copy paste-able:

Code Block
https://github.com/interfaceware/iguana-tools

Funnily enough most of the ‘tools’ in this repo no longer make sense in the context of Iguana X. But it’s a helpful starting point for my conversion prototype work.

Image Removed
Expand
title

You can test with the default repo included in the component OR you can import your own channels by using your own repository with Iguana 6.1 channels exported! SeeGetting Started for how to export your channels to your own repository.

Edit the GitRepo custom field with your Git repository link. Click the check mark to save your change.

Image Added

Tip! To get your git repository link from Bitbucket, click clone and copy the SSH link provided.

Image Added
Expand
titleSTEP 3: Run the component to import and convert all the Iguana 6 channels into components.

It should generate a and link a number of components corresponding to your channels.the channels in the repository.

All components imported with contain the #imported tag. Use this to filter your dashboard and view all imported components.

Info

Note: If the Importer is erroring with the message below it may be due to the repository privacy settings changing from public to private. To remediate the issue, refresh your Git Cache, wait for the refresh to complete, then rerun the Importer component.

Code Block
Stopping component with runtime error:
main.lua:18: Could not create _bitbucket-org:test-iguana6channels-git. fatal: could not read Username for 'https://bitbucket.org': terminal prompts disabled
Git url: git@bitbucket.org:test/iguana6channels.git

Inside the Channel Importer Tool:

Expand
titleFrom reading the code of the converter, how could a more detailed map of LLP server components be done?

You can see clearly how the channel structure is converted into IguanaX components in the CHAN library.

Go have a look at CHAN/CHANllpSource.lua. This code has the mapping of configuration information from Iguana 6 into Iguana XIguanaX.

I am
Expand
titleExpect a lot of things not to work at this stage

This is a work in progress. Some of the pieces we are working on are:

  • From HTTP(S) channels don’t work - we haven’t got the backwardly compatible APIs yet

  • LLP and File components are partly converted - the Iguana X equivalent components are much simpler

  • Plugin components are converted with placeholder components - see the next page for more discussion on plugins.

Expand
titleWhere is this going?
How does the iguana_shim module work?

The shim module in the CHAN library allows us to simulate API functions which don’t exist under IguanaX that used to be under Iguana 6.

This includes things like iguana.channelName() which don’t make sense for IguanaX which no longer has channels. See Shim functions.

Expand
titleHow can we deal with obsolete Iguana 6 APIs?

Since the shim module is designed to be a temporary solution during your migration, what are some strategies to deal with the missing obsolete Iguana 6 APIs in your new IguanaX environment?

Our team is experimenting with streamlining this with A library to recreate Iguana 6 APIs for easier porting of code.

Expand
titleHow do we convert legacy python based VMDs?

The Channel Importer tool uses our vmd_tool to convert legacy VMDs to an XML format IguanaX can ingest. If you are migrating any Iguana v6 legacy channels that use VMDs, you’ll need to ensure you have the Iguana 6.1.5 installed on the server as the vmd_tool is packaged within.

See How to convert legacy Python Based VMD channels.

Expand
titleEvolving the Channel Importer Tool

We are optimistic we can automate most of the work in converting Iguana 6 to Iguana X IguanaX code. Doing the conversion in this way is very powerful since it will give final control to each customer to go the last mile in terms of doing the conversion in manner which helps you each get the best conversion possible.

It makes it possible to customize the script to target specific problems that might only have an impact on your user use cases of Iguana. More to say about that later.

For now I am we are working with a few early adopters number of customers to use this script as a tool to speed up our accelerate the process of identifying and eliminating gaps and making IguanaX a practical platform to migrate to.

Scaling out channel conversion.