Comments (12)
I think this could be broadened a bit to allow dynamic selection of any workflow.
DeployStudio does this by assigning each workflow a UUID, so you can have a workflow item which selects other (optionally hidden) workflows by running a script which outputs the UUID.
This could be useful for additional conditionals, and even optionally skipping imaging if you can test a volume to see if it is clean.
from imagr.
Assigning a UUID to each workflow also has the benefit of allowing third party tools to manage each workflow in imagr_config.plist
independently of each other.
I do this server side in imagr-server to manage and store workflows as separate files.
Adding UUIDs to imagr_config.plist would be a good change, but it will probably break compatibility with current versions.
from imagr.
Adding new keys to a plist should not affect older software that is not expecting those keys; they would just be ignored.
from imagr.
I'm not too bothered about breaking existing functionality - the admin should update their NBI before implementing new features in their config plist. Anyway, I'm open to ideas about this. I'm not able to work on Imagr for the next month or so, but I'll happily merge in a PR that implements this.
from imagr.
Now included workflows are in, the next step is to extend that to allow for a script to determine the workflow name.
from imagr.
@grahamgilbert I see that a default workflow key was added in #114. The key uses the workflow name, making the requirement that names must be unique. It's not a problem, but also not ideal.
Before workflows-in-workflows are a stable release, would it be possible to make workflow reference other workflows use a UUID rather than a name?
from imagr.
UUIDs aren't going to happen. The requirement always has been that workflow names are unique. I see no benefit of introducing this additional complexity when you can just make workflow names unique. Why is it not ideal?
from imagr.
Even if names are unique, renaming a workflow will require changing the name everywhere it is referenced.
UUID's are a better solution because they allow for additional tooling and make references to other workflows/objects easier to write.
from imagr.
Even if names are unique, renaming a workflow will require changing the name everywhere it is referenced.
Search and replace in a text editor?
UUID's are a better solution because they allow for additional tooling and make references to other workflows/objects easier to write.
What? How? Convince me! This is significant work, so I'm not going to do it unless I'm convinced.
from imagr.
UUIDs would actually make things harder for people manually creating/editing their workflow plists as UUIDs aren't terribly human-friendly. I only need to know your name is "Victor", I don't need to know your Social Security Number as well in order to refer to you here.
With a dedicated workflow plist editor, separating the "human-readable name" from a "unique identifier" would have benefits, but I definitely understand Graham's reluctance to implement them without more convincing of the need.
from imagr.
I agree that if someone will be editing the imagr_config.plist file by hand, then using names is more user friendly.
Where I see UUIDs as important is supporting tools and addons on top of imagr - like a workflow editor.
It's not so hard to imagine given Imagr's quick adoption in the community, that someone will want to create a GUI or WebUI on top of editing workflows.
I agree that it's a lot of upfront work to do. I also see this as an inevitable change that someone will have to make in the future. Unfortunately, I don't have the bandwidth to create a PR for the UUID feature right now, so I'll stop arguing for it, but maybe someone else is interested.
from imagr.
We've got this now with the ability to select an included workflow based on the output of a script. WIN
from imagr.
Related Issues (20)
- imagr open behind select language pane in macOS Sierra HOT 3
- Imagr crashes if reporting server unavailable HOT 2
- Imagr crashes if timeapi.org returns unexpected data HOT 1
- Description text box for the workflows is not scrollable HOT 1
- Imagr logs a crash if a volume is unmounted HOT 2
- Setting time with http fails to respect timezone HOT 4
- Bug: first-boot items are not installed in order in macOS High Sierra
- validateplist doesn't append query string to background_image check
- Packages/DMGs with spaces will fail if using gurl HOT 2
- Feature request: Prevent Mac from sleeping while Imagr app is running a workflow HOT 1
- first-boot infinite loop if exit code non-zero HOT 7
- After APFS to HFS Conversion via script will casue Imagr to hang HOT 9
- Does not work with macOS 10.13.4 Installer HOT 4
- 10.11 NBI workflow start crash HOT 1
- Workflow doesn't recognize volume format change HOT 4
- Auto key of computer_name component ignored when part of included workflow HOT 2
- com.apple.osinstall error -3 on OS X 10.13.4 if workflow writes to formatted target before startosinstall HOT 2
- first_boot LaunchDaemon does not get created when startosinstall is called via included_workflow HOT 1
- Imagr (High Sierra) preventing reboot during install workflow HOT 1
- first-boot fails to start after Mojave install HOT 13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from imagr.