Something tells me that it may have to be even more generic.
In general, we might query information about provider-specific information like network spaces, storage tags (or other storage-related information), availability zones, security groups (OpenStack) and possibly other information that we haven't thought about yet:
This is a case of a distributed metadata storage and I can think of at least three ways of doing that:
1) manual sync - give a user manual control over that. Trade-off: manual work vs complexity of code;
2) polling - requery automatically in Juju with a subjective pre-defined policy. Trade-off: assumptions and policy maintenance;
3) watchers (event subscription) - subscribe to provider-specific events and update as soon as the new information is available. Trade-off: asynchronous code, providers do not support emission of events and client subscription to those in general (they would have to expose an interface like etcd, Zookeeper, consul etc.).
Realistically, I think it is right that we will go with the first approach. Could be something worth documenting though as people may have different expectations from Juju.
Something tells me that it may have to be even more generic.
In general, we might query information about provider-specific information like network spaces, storage tags (or other storage-related information), availability zones, security groups (OpenStack) and possibly other information that we haven't thought about yet:
https:/ /bugs.launchpad .net/juju/ +bug/1691825
---
This is a case of a distributed metadata storage and I can think of at least three ways of doing that:
1) manual sync - give a user manual control over that. Trade-off: manual work vs complexity of code;
2) polling - requery automatically in Juju with a subjective pre-defined policy. Trade-off: assumptions and policy maintenance;
3) watchers (event subscription) - subscribe to provider-specific events and update as soon as the new information is available. Trade-off: asynchronous code, providers do not support emission of events and client subscription to those in general (they would have to expose an interface like etcd, Zookeeper, consul etc.).
Realistically, I think it is right that we will go with the first approach. Could be something worth documenting though as people may have different expectations from Juju.