Plugin Type Ideas

We are rapidly expanding Plugins to support more capabilities into the product and would love to hear from people as to what types of expansions you would like to see next in the product!

Hey David, yes, task plugins could support output chaining like the native tasks do. I couldnā€™t see how to do that - maybe I missed it. Be great to pass the plugin task output down through the workflow.

1 Like

You should be able to do this. Variables sent to the response data object on the ServiceResponse class can be used as chained variables. Set the Result Type to ā€œJSONā€ when using a task like this and this should allow objects to be parsed off the data object.

1 Like

I was mistaken. A flag was necessary on TaskProviderā€™s interface.

Boolean hasResults() { return true }

This will be added to morpheus-plugin-api:0.12.5 for Morpheus 5.4.6 Release in May. Thanks for pointing this out!

1 Like

Great stuff, thank you!

Iā€™m interested in seeing some plugin action on the load balancer parts. Is the framework rework completed to allow this type of plugins?

Hello,

We have unfortunately not yet gotten to making load balancers pluggable. We are doing clouds and backups as we speak. Load balancers will be a fast follower.

1 Like

Plugin for a pollicy would be useful.

1 Like

Hello Morpheus! Hope you are well. With 5.5.0 and the 0.12.5 plugin framework my task plugin is able to chain result output to subsequent tasks in the workflow. Thank you!

I can read results from previous tasks, but how do I access the morpheus context/vars in the groovy task API. Should we be able to access it?

Should be able to via the morpheus context. If you extend from AbstractTaskService you get some helper methods to access those variables as such

	@Override
	TaskResult executeLocalTask(Task task, Map opts, Container container, ComputeServer server, Instance instance) {
		TaskConfig config = buildLocalTaskConfig([:], task, [], opts).blockingGet()
		if(instance) {
			config = buildInstanceTaskConfig(instance, [:], task, [], opts).blockingGet()
		}
		if(container) {
			config = buildContainerTaskConfig(container, [:], task, [], opts).blockingGet()
		}
	
		executeTask(task, config)
	}
1 Like

Thanks David, will look at that!

We would love to see a Netbox plugin for IPAM

1 Like

For Backup plugin: It will be good if we can make the table for Backups more customizable.
Currently, if a backup creation encounters an error, the error is displayed under the ā€œDurationā€ column.
It will be good to add a separate column for Errors and also another column for ā€œBackup Typeā€ if possible

Would be nice to see a network source of truth plugin ie: Nautobot

An option to create your own plugins that can interact with the system defined set of policies. Iā€™d envision it to work similar to the ServiceNow integration where the provision/reconfigure/deprovision approval policy allows you to select between ā€˜Internalā€™ or any of the available ServiceNow integrations configured in the system. This could enable any of the policies to trigger custom code in a policy plugin to be run.

For example the "Max CPUā€™ policy for a user could then use a custom plugin to query some external source to see if the user is allowed to provision more VMs taking into account other parameters and more complex functions than what the Morpheus internal routine would use.