Overview
...
To create, modify and delete HA Groups, use the following commands:
hzn exchange hagroup create <name> --nodeId node1 --nodeId node2 [ --nodeId node3 ]
hzn exchange hagroup update <name> --nodeId node1 --nodeId node2 [ --nodeId node3 ]
hzn exchange hagroup delete <name>
hzn exchange hagroup list [ <name> ]
To check if a service will be deployed to all nodes in an HA Group, we need a new flag on the command. This flag will cause the command to retrieve the list of nodes in the HA group and compare them all against the policy inputs:
hzn deploycheck --checkHA
...
The HA Group object schema:
{
"name": "hagroup name",
"members": [ "node1234", ... ],
}
...
"updated": <update time stamp>
}
Create a new node group. The caller must have permission to modify all the nodes listed in the body (shown above). The Exchange will set a reference to this object onto all the node resources listed in the body. The Exchange will return an error (409) if one of the nodes is already in an hagroup. To remove a node from a group, use the PUT API to provide the list of nodes that should be in the group.
POST /org/<org>/hagrouphagroups
Modify the group membership of an existing group. All the desired members of the group MUST be listed in the body. This API behaves like a full replace.
PUT /org/<org>/hagrouphagroups
List all the hagroups.
GET /org/<org>/hagrouphagroups
List all members of an hagroup.
GET /org/<org>/hagrouphagroups/<name>
Delete an hagroup.
DELETE /org/<org>/hagroup/<name>hagroups/<name>
Node Resource:
In addition to the new hagroup resource, the node resource is also extended with a new field called "ha_group" that contains a reference to the HA group in which this node is a member. This field is updated for all nodes in an HA group when a new HA group is created, updated or deleted. Updates to this field are atomic with updates to the hagroup resource.
Agbot APIs
To tell the Agbot that the node is ready to upgrade the agent.
...