After being triggered by the ImplementationOrchestrator, an ImplementationFunction executes a specific configuration activity on one kind of the Elements that are managed within the domain.
It documents the result of the configuration attempt and the next step into the CurrentAlarms.
Managed Elements and associated ImplementationFunctions:
- ManagementDomainInterface
- Update Forwarding
- p1ReconstructManagementDomainInterface
- Update Forwarding
- LoadBalancer and Forwarding
- Create Forwarding
- p1ConstructForwarding
- Delete Forwarding
- p1DestructForwarding
- Update Forwarding
- p1ReconstructForwarding
- Create Forwarding
- Controller and MountPoint
- Update Controller
- p1ReconstructController
- Create MountPoint
- p1ConstructMountPoint
- Delete MountPoint
- p1DestructMountPoint
- Update MountPoint
- p1ReconstructMountPoint
- Update Controller
date-of-next-attempt-to-fix:
After attempting to transfer the target state from the RunningDS onto the Elements, the ImplementationFunctions have to document the outcome into the CurrentAlarms.
This includes determining when the next attempt should be made.
The two parameters for the minimum and maximum wait times (tmin and tmax) can be configured individually for each ImplementationFunction.
The formula for calculating the time for the next attempt is identical for all ImplementationFunctions:
Applications are managed by another domain.
The CDM's scope is limited to ensuring that the ManagementDomainInterface's configuration is aligned with address and authentication at LoadBalancer, respectively Controller.
So, implementation is limited to configuration of existing ManagementDomainInterfaces.
Is addressing the ApplicationDomainManager
- application-name
Name of the Application that holds the ManagementDomainInterface - management-domain
Name of the ManagementDomain
- The Application's TcpClient is adjusted with the TCP/IP address of either LoadBalancer or Controller
- The Application's HttpClient is adjusted with the user credentials at the Controllers
Callback$request.body#remote-ip-address:
- From [remote-ip-address] at LP identified by 'tcp-client' inside LTP identified by [management-domain] inside ControlConstruct identified by [application-name] in RunningDS
request.body#remote-port:
- From [remote-port] at LP identified by 'tcp-client' inside LTP identified by [management-domain] inside ControlConstruct identified by [application-name] in RunningDS
request.body#http-user-name:
- From [http-user-name] at LP identified by 'http-client' inside LTP identified by [management-domain] inside ControlConstruct identified by [application-name] in RunningDS
request.body#http-password:
- From [http-password] at LP identified by 'http-client' inside LTP identified by [management-domain] inside ControlConstruct identified by [application-name] in RunningDS
- date-of-attempt
- response-code
- date-of-next-attempt-to-fix
./.
The CDM encapsulates the LoadBalancer.
It manages the entire logical resource of the LoadBalancer, which is the Forwardings.
Is addressing the nginx server at its management API
- load-balancer-name
Name of the LoadBalancer at which the new Forwarding shall be created - management-domain
Name of the new Forwarding
- New Forwarding is created
- New Forwarding's TcpClients are created and adjusted with the TCP/IP addresses of the Controllers belonging to the ManagementDomain
Forwarding:
- Callback$request.body#nginx-api-specific-version-of-forwarding-name:
- From [p1ConstructForwarding$request.body#management-domain]
TcpClients:
-
request.body#nginx-api-specific-version-of-targets/target-name:
- From [local-id] at LP [*] inside LTP identified by [management-domain] inside ControlConstruct identified by [load-balancer-name] in RunningDS
-
request.body#nginx-api-specific-version-of-targets/remote-ip-address:
- From [remote-ip-address] at LP [*] inside LTP identified by [management-domain] inside ControlConstruct identified by [load-balancer-name] in RunningDS
-
request.body#nginx-api-specific-version-of-targets/remote-port:
- From [remote-port] at LP [*] inside LTP identified by [management-domain] inside ControlConstruct identified by [load-balancer-name] in RunningDS
If the Callback would return local-ip-address and local-port of the newly created Forwarding, it could be interpreted into the Operational DS; if not, this information would be measured.
- date-of-attempt
- response-code
- date-of-next-attempt-to-fix
./.
Is addressing the nginx server at its management API
- load-balancer-name
Name of the LoadBalancer at which the obsolete Forwarding shall be purged - management-domain
Name of the obsolete Forwarding
- Obsolete Forwarding is purged
- Callback$request.body#nginx-api-specific-version-of-forwarding-name:
- From [p1DestructForwarding$request.body#management-domain]
- date-of-attempt
- response-code
- date-of-next-attempt-to-fix
./.
Is addressing the nginx server at its management API
- load-balancer-name
Name of the LoadBalancer at which the Forwarding shall be updated - management-domain
Name of the Forwarding that shall be updated
- All Forwarding's TcpClients are adjusted with the TCP/IP addresses of the Controllers belonging to the ManagementDomain
Forwarding:
- Callback$request.body#nginx-api-specific-version-of-forwarding-name:
- From [p1ReconstructForwarding$request.body#management-domain]
TcpClients:
-
request.body#nginx-api-specific-version-of-targets/target-name:
- From [local-id] at LP [*] inside LTP identified by [management-domain] inside ControlConstruct identified by [load-balancer-name] in RunningDS
-
request.body#nginx-api-specific-version-of-targets/remote-ip-address:
- From [remote-ip-address] at LP [*] inside LTP identified by [management-domain] inside ControlConstruct identified by [load-balancer-name] in RunningDS
-
request.body#nginx-api-specific-version-of-targets/remote-port:
- From [remote-port] at LP [*] inside LTP identified by [management-domain] inside ControlConstruct identified by [load-balancer-name] in RunningDS
If the Callback would return local-ip-address and local-port of the newly created Forwarding, it could be interpreted into the Operational DS; if not, this information would be measured.
- date-of-attempt
- response-code
- date-of-next-attempt-to-fix
./.
The CDM encapsulates the Controller.
It manages the entire logical resource of the Controller, which is the MountPoints.
Is addressing the OpenDaylight controller
- controller-name
Name of the Controller that shall be updated
- User credentials are updated
- Callback$???:
- From [http-user-name] at LP[*] inside LTP identified by 'controller-manager' inside ControlConstruct identified by [controller-name] in RunningDS
- Callback$???:
- From [http-password] at LP[*] inside LTP identified by 'controller-manager' inside ControlConstruct identified by [controller-name] in RunningDS
- date-of-attempt
- response-code
- date-of-next-attempt-to-fix
./.
Is addressing the OpenDaylight controller
- controller-name
Name of the Controller at which the new MountPoint shall be created - device-name
Name of the new MountPoint
- New MountPoint is created
- Callback$request.body#network-topology:node/node-id:
- From [p1ConstructMountPoint$request.body#device-name]
- date-of-attempt
- response-code
- date-of-next-attempt-to-fix
./.
Is addressing the OpenDaylight controller
- controller-name
Name of the Controller at which the obsolete MountPoint shall be purged - device-name
Name of the obsolete MountPoint
- Obsolete MountPoint is purged
- Callback$request.parameters#mount-name:
- From [p1DestructMountPoint$request.body#device-name]
- date-of-attempt
- response-code
- date-of-next-attempt-to-fix
./.
Is addressing the OpenDaylight controller
- controller-name
Name of the Controller at which the MountPoint shall be updated - device-name
Name of the MountPoint that shall be updated
- All parameters at the MountPoint are updated
-
Callback$request.parameters#mount-name:
- From [p1DestructMountPoint$request.body#device-name]
-
request.body#network-topology:node/node-id:
- From [p1DestructMountPoint$request.body#device-name]
-
request.body#network-topology:node/netconf-node-topology:host:
- From [remote-ip-address] at LP identified by 'tcp-client' inside LTP identified by [device-name] inside ControlConstruct identified by [controller-name] in RunningDS
-
request.body#network-topology:node/netconf-node-topology:port:
- From [remote-port] at LP identified by 'tcp-client' inside LTP identified by [device-name] inside ControlConstruct identified by [controller-name] in RunningDS
-
request.body#network-topology:node/netconf-node-optional:notification/subscribe:
- From [notification-subscribe] at LP identified by 'netconf-client' inside LTP identified by [device-name] inside ControlConstruct identified by [controller-name] in RunningDS
-
request.body#network-topology:node/netconf-node-optional:notification/stream-name:
- From [notification-stream-name] at LP identified by 'netconf-client' inside LTP identified by [device-name] inside ControlConstruct identified by [controller-name] in RunningDS
-
request.body#network-topology:node/netconf-node-topology:username:
- From [netconf-user-name] at LP identified by 'netconf-client' inside LTP identified by [device-name] inside ControlConstruct identified by [controller-name] in RunningDS
-
request.body#network-topology:node/netconf-node-topology:password:
- From [netconf-password] at LP identified by 'netconf-client' inside LTP identified by [device-name] inside ControlConstruct identified by [controller-name] in RunningDS
-
request.body#network-topology:node/netconf-node-topology:sleep-factor:
- From [sleep-factor] at Profile (with category=='mountpoint') identified by mountPointTemplateName==[_template] from inside LTP identified by [device-name] inside ControlConstruct identified by [controller-name] in RunningDS
-
request.body#network-topology:node/netconf-node-topology:max-connection-attempts:
- From [max-connection-attempts] at Profile (with category=='mountpoint') identified by mountPointTemplateName==[_template] from inside LTP identified by [device-name] inside ControlConstruct identified by [controller-name] in RunningDS
-
request.body#network-topology:node/netconf-node-topology:default-request-timeout-millis:
- From [default-request-timeout-millis] at Profile (with category=='mountpoint') identified by mountPointTemplateName==[_template] from inside LTP identified by [device-name] inside ControlConstruct identified by [controller-name] in RunningDS
-
request.body#network-topology:node/netconf-node-topology:tcp-only:
- From [tcp-only] at Profile (with category=='mountpoint') identified by mountPointTemplateName==[_template] from inside LTP identified by [device-name] inside ControlConstruct identified by [controller-name] in RunningDS
-
request.body#network-topology:node/netconf-node-topology:concurrent-rpc-limit:
- From [concurrent-rpc-limit] at Profile (with category=='mountpoint') identified by mountPointTemplateName==[_template] from inside LTP identified by [device-name] inside ControlConstruct identified by [controller-name] in RunningDS
-
request.body#network-topology:node/netconf-node-topology:schema-cache-directory:
- From [schema-cache-directory] at Profile (with category=='mountpoint') identified by mountPointTemplateName==[_template] from inside LTP identified by [device-name] inside ControlConstruct identified by [controller-name] in RunningDS
-
request.body#network-topology:node/netconf-node-topology:between-attempts-timeout-millis:
- From [between-attempts-timeout-millis] at Profile (with category=='mountpoint') identified by mountPointTemplateName==[_template] from inside LTP identified by [device-name] inside ControlConstruct identified by [controller-name] in RunningDS
-
request.body#network-topology:node/netconf-node-topology:reconnect-on-changed-schema:
- From [reconnect-on-changed-schema] at Profile (with category=='mountpoint') identified by mountPointTemplateName==[_template] from inside LTP identified by [device-name] inside ControlConstruct identified by [controller-name] in RunningDS
-
request.body#network-topology:node/netconf-node-topology:keepalive-delay:
- From [keepalive-delay] at Profile (with category=='mountpoint') identified by mountPointTemplateName==[_template] from inside LTP identified by [device-name] inside ControlConstruct identified by [controller-name] in RunningDS
- date-of-attempt
- response-code
- date-of-next-attempt-to-fix
./.
