This is something I am 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 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 |
---|
title | You need to be running Mac OS X or have an adventurous spirit in porting code. |
---|
|
I have only tested the code on Mac OS X for now. To get the code working on windows will require refactoring the code to handle directory separators the way windows does them \ instead of / characters. Windows support will come after a few more iterations. |
Expand |
---|
title | Create 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/src/main/ |
Expand |
---|
title | 'll need 10.1.81 or newer - this video shows how the converter is meant to run |
---|
|
converter.mp4 |
Expand |
---|
title | STEP 1: Add Iguana 6 Channel Importer to IguanaX using + Component |
---|
|
Clickthe Iguana 6 Channel Importer and ADD. Image Added |
Expand |
---|
title | STEP 2: Edit the custom GitRepo component property to point to a channel export from Iguana 6 |
---|
|
The default for this is currently Code Block |
---|
git@github.com:interfaceware/iguana-tools.git |
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. Another interesting repo to try is: Code Block |
---|
git@bitbucket.org:interfaceware/export.git |
|
Expand |
---|
title | Run it once to get the _Import URL |
---|
|
After the first run it will create a repo called _Import. |
Expand |
---|
title | Run it a second time to create components |
---|
|
We need the source repo _Import before we can iterate through and create Iguana X components for all the parts of an Iguana 6 Channel. |
Expand |
---|
title | Run it a third time to copy the code and establish connections |
---|
|
The components representing the translators in the channel cannot be populated until they exist. In this phase the translator code should be copied. |
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 AddedTip! To get your git repository link from Bitbucket, click clone and copy the SSH link provided. Image Added |
Expand |
---|
title | STEP 3: Run the component to import and convert all the Iguana 6 channels into components. |
---|
|
It should generate and link a number of components corresponding to 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 |
---|
title | From 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 IguanaX. |
Expand |
---|
I am title | Expect a lot of things not to work at this stage |
---|
|
This is a work in progress. Some of the pieces I am working on are: Get channel connections done From HTTP(S) channels don’t work - we haven’t got the backwardly compatible APIs yet DBS conversion is a work in progress. LLP and File components are partly converted - the Iguana X equivalent components are much simpler Plugin components are converted with placeholder components - contact me directly if you are wondering how about how to deal with plugins
|
Expand |
---|
title | Where 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 |
---|
title | How 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 |
---|
title | How 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 |
---|
title | Evolving 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. |