module smo-vm-pool {
yang-version 1.1;
namespace "http://metaswitch.com/yang/tas-vm-build/smo-vm-pool";
prefix "smo-vm-pool";
import ietf-inet-types {
prefix "ietf-inet";
}
import vm-types {
prefix "vmt";
revision-date 2019-11-29;
}
import extensions {
prefix "yangdoc";
revision-date 2020-12-02;
}
organization "Metaswitch Networks";
contact "rvt-schemas@metaswitch.com";
description "SMO VM pool configuration schema.";
revision 2019-11-29 {
description
"Initial revision";
reference
"Metaswitch Deployment Definition Guide";
}
grouping smo-virtual-machine-pool {
leaf deployment-id {
type vmt:deployment-id-type;
mandatory true;
description "The deployment identifier. Used to form a unique VM identifier within the
VM host.";
}
leaf site-id {
type vmt:site-id-type;
mandatory true;
description "Site ID for the site that this VM pool is a part of.";
}
leaf node-type-suffix {
type vmt:node-type-suffix-type;
default "";
description "Suffix to add to the node type when deriving the group identifier. Should
normally be left blank.";
}
leaf sentinel-ipsmgw-enabled {
type boolean;
description "Sentinel-IPMSGW will be installed and enabled on SMO nodes.";
}
list cassandra-contact-points {
key "management.ipv4 signaling.ipv4";
uses vmt:cassandra-contact-point-interfaces;
description "A list of Cassandra contact points. These should normally not be specified
as this option is intended for testing and/or special use cases.";
yangdoc:change-impact "converges";
}
leaf cluster-dns-name {
type ietf-inet:domain-name;
description "Deprecated. Now set in product-options.rvt.smo.smo-vnf and
product-options.rvt.smo.ims-domain-name in SDF file.";
}
list additional-rhino-jvm-options {
when "../sentinel-ipsmgw-enabled = 'true'";
key "name";
leaf "name" {
type string;
description "Name of the JVM option. Do not include '-D'.";
}
leaf "value" {
type string;
mandatory true;
description "Value for the JVM option.";
}
description "Additional JVM options to use when running Rhino.
Should normally be left blank.";
}
list rhino-auth {
when "../sentinel-ipsmgw-enabled = 'true'";
key "username";
min-elements 1;
uses vmt:rhino-auth-grouping;
description "List of Rhino users and their plain text passwords.";
yangdoc:change-impact "converges";
}
list virtual-machines {
key "vm-id";
leaf vm-id {
type string;
mandatory true;
description "The unique virtual machine identifier.";
}
uses vmt:rvt-vm-grouping {
refine rhino-node-id {
description "Rhino node identifier.
If sentinel-ipsmgw-enabled is set to false, specify an arbitrary
placeholder value here.";
}
}
unique per-node-diameter-ro/diameter-ro-origin-host;
container per-node-diameter-ro {
when "../../../sentinel-ipsmgw/charging-options/diameter-ro";
description "Configuration for Diameter Ro.";
leaf diameter-ro-origin-host {
type ietf-inet:domain-name;
mandatory true;
description "The Diameter Ro origin host.
If sentinel-ipsmgw-enabled is set to false, specify an arbitrary
placeholder value here.";
yangdoc:change-impact "restart";
}
}
unique sip-local-uri;
leaf sip-local-uri {
type vmt:sip-uri-type;
mandatory true;
description "SIP URI for this node.
If sentinel-ipsmgw-enabled is set to false, specify an arbitrary
placeholder value here.";
yangdoc:change-impact "converges";
}
description "Configured virtual machines.";
}
description "SMO virtual machine pool.";
}
}