Loading .classpath +2 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> <attributes> <attribute name="maven.pomderived" value="true"/> <attribute name="optional" value="true"/> </attributes> </classpathentry> <classpathentry kind="src" output="target/test-classes" path="src/test/java"> Loading @@ -22,6 +23,7 @@ <attributes> <attribute name="maven.pomderived" value="true"/> <attribute name="test" value="true"/> <attribute name="optional" value="true"/> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"> Loading .settings/org.eclipse.core.resources.prefs +2 −2 Original line number Diff line number Diff line eclipse.preferences.version=1 encoding//src/main/java=utf-8 encoding//src/main/resources=utf-8 encoding//src/main/resources=UTF-8 encoding//src/test/java=utf-8 encoding//src/test/resources=utf-8 encoding//src/test/resources=UTF-8 encoding/<project>=UTF-8 src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesCRDV1.java +2 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; import org.etsi.osl.tmf.ri639.model.ResourceCreate; import org.etsi.osl.tmf.ri639.model.ResourceAdministrativeStateType; import org.etsi.osl.tmf.ri639.model.ResourceOperationalStateType; import org.etsi.osl.tmf.ri639.model.ResourceStatusType; import org.etsi.osl.tmf.ri639.model.ResourceUpdate; Loading Loading @@ -185,6 +186,7 @@ public class KubernetesCRDV1 extends DomainModelDefinition .description( this.description ) .resourceStatus( ResourceStatusType.AVAILABLE ) .operationalState( ResourceOperationalStateType.ENABLE ) .administrativeState( ResourceAdministrativeStateType.UNLOCKED ) .resourceSpecification( rSpecRef ) .resourceVersion( this.version); Loading src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesCRV1.java +53 −1 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; import org.etsi.osl.tmf.ri639.model.ResourceCreate; import org.etsi.osl.tmf.ri639.model.ResourceAdministrativeStateType; import org.etsi.osl.tmf.ri639.model.ResourceOperationalStateType; import org.etsi.osl.tmf.ri639.model.ResourceStatusType; import org.etsi.osl.tmf.ri639.model.ResourceUpdate; Loading @@ -28,6 +29,9 @@ public class KubernetesCRV1 extends DomainModelDefinition implements ITMFRCM634_ModelTransformer, ITMFRI639_ModelTransformer { public static final String OSL_KUBCRV1_RSPEC_NAME = "kubernetes-cr-v1.openslice.io"; /** Label stamped by the cridge watcher when the CR is deleted from the cluster. */ public static final String OSL_LABEL_DELETED = "org.etsi.osl.deleted"; public static final String OSL_KUBCRV1_RSPEC_VERSION = "0.0.4"; public static final String OSL_KUBCRV1_RSPEC_CATEGORY = "KubernetesCRV1-apiextensions.k8s.io/v1"; public static final String OSL_KUBCRV1_RSPEC_TYPE = "LogicalResourceSpecification"; Loading Loading @@ -166,7 +170,6 @@ public class KubernetesCRV1 extends DomainModelDefinition .resourceStatus( ResourceStatusType.RESERVED ) .operationalState( ResourceOperationalStateType.ENABLE ) .resourceSpecification( rSpecRef ) .resourceVersion( this.version); Loading @@ -193,6 +196,7 @@ public class KubernetesCRV1 extends DomainModelDefinition rs.addResourceCharacteristicItemShort("_CR_CHECKVAL_SUSPENDED", this.statusCheckValueSuspended, EValueType.TEXT.getValue()); rs.resourceStatus( this.statusValue ); applyHealth( rs ); if (this.properties != null) this.properties.forEach((kPropName, vProVal) -> { Loading @@ -211,6 +215,54 @@ public class KubernetesCRV1 extends DomainModelDefinition return rs; } /** * Declares the CR's health with the ITU-T X.731 state attributes, derived from the same status * label the operator already configures through {@code org.etsi.osl.statusCheckValue*}. * * <p>These attributes — not {@code resourceStatus}, which is inventory/pool bookkeeping — are what * {@code Service.findNextStateBasedOnResourceList} folds into the supported service's state. A CR * whose status has not been recognised yet is left with both attributes unset: that reads as * "pending", which neither promotes nor demotes the service. */ private void applyHealth(ResourceCreate rs) { // A CR the watcher saw disappear is gone, whatever its last observed status said. if (this.properties != null && this.properties.get(OSL_LABEL_DELETED) != null) { rs.operationalState(ResourceOperationalStateType.DISABLE) .administrativeState(ResourceAdministrativeStateType.SHUTDOWN); return; } if (this.statusValue == null) { return; } switch (this.statusValue) { case AVAILABLE: rs.operationalState(ResourceOperationalStateType.ENABLE) .administrativeState(ResourceAdministrativeStateType.UNLOCKED); break; case RESERVED: case STANDBY: // Not yet released for use by the service that ordered it. rs.operationalState(ResourceOperationalStateType.DISABLE) .administrativeState(ResourceAdministrativeStateType.LOCKED); break; case ALARM: // In service, but not working. rs.operationalState(ResourceOperationalStateType.DISABLE) .administrativeState(ResourceAdministrativeStateType.UNLOCKED); break; case SUSPENDED: rs.operationalState(ResourceOperationalStateType.DISABLE) .administrativeState(ResourceAdministrativeStateType.SHUTDOWN); break; default: // UNKNOWN, or a status this mapping does not recognise: say nothing about health. break; } } @Override public ResourceUpdate toResourceUpdate() { Loading src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesConfigMap.java +2 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; import org.etsi.osl.tmf.ri639.model.ResourceCreate; import org.etsi.osl.tmf.ri639.model.ResourceAdministrativeStateType; import org.etsi.osl.tmf.ri639.model.ResourceOperationalStateType; import org.etsi.osl.tmf.ri639.model.ResourceStatusType; import org.etsi.osl.tmf.ri639.model.ResourceUpdate; Loading Loading @@ -166,6 +167,7 @@ public class KubernetesConfigMap extends DomainModelDefinition .description( this.description ) .resourceStatus( ResourceStatusType.AVAILABLE ) .operationalState( ResourceOperationalStateType.ENABLE ) .administrativeState( ResourceAdministrativeStateType.UNLOCKED ) .resourceSpecification( rSpecRef ) .resourceVersion( this.version); Loading Loading
.classpath +2 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> <attributes> <attribute name="maven.pomderived" value="true"/> <attribute name="optional" value="true"/> </attributes> </classpathentry> <classpathentry kind="src" output="target/test-classes" path="src/test/java"> Loading @@ -22,6 +23,7 @@ <attributes> <attribute name="maven.pomderived" value="true"/> <attribute name="test" value="true"/> <attribute name="optional" value="true"/> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"> Loading
.settings/org.eclipse.core.resources.prefs +2 −2 Original line number Diff line number Diff line eclipse.preferences.version=1 encoding//src/main/java=utf-8 encoding//src/main/resources=utf-8 encoding//src/main/resources=UTF-8 encoding//src/test/java=utf-8 encoding//src/test/resources=utf-8 encoding//src/test/resources=UTF-8 encoding/<project>=UTF-8
src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesCRDV1.java +2 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; import org.etsi.osl.tmf.ri639.model.ResourceCreate; import org.etsi.osl.tmf.ri639.model.ResourceAdministrativeStateType; import org.etsi.osl.tmf.ri639.model.ResourceOperationalStateType; import org.etsi.osl.tmf.ri639.model.ResourceStatusType; import org.etsi.osl.tmf.ri639.model.ResourceUpdate; Loading Loading @@ -185,6 +186,7 @@ public class KubernetesCRDV1 extends DomainModelDefinition .description( this.description ) .resourceStatus( ResourceStatusType.AVAILABLE ) .operationalState( ResourceOperationalStateType.ENABLE ) .administrativeState( ResourceAdministrativeStateType.UNLOCKED ) .resourceSpecification( rSpecRef ) .resourceVersion( this.version); Loading
src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesCRV1.java +53 −1 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; import org.etsi.osl.tmf.ri639.model.ResourceCreate; import org.etsi.osl.tmf.ri639.model.ResourceAdministrativeStateType; import org.etsi.osl.tmf.ri639.model.ResourceOperationalStateType; import org.etsi.osl.tmf.ri639.model.ResourceStatusType; import org.etsi.osl.tmf.ri639.model.ResourceUpdate; Loading @@ -28,6 +29,9 @@ public class KubernetesCRV1 extends DomainModelDefinition implements ITMFRCM634_ModelTransformer, ITMFRI639_ModelTransformer { public static final String OSL_KUBCRV1_RSPEC_NAME = "kubernetes-cr-v1.openslice.io"; /** Label stamped by the cridge watcher when the CR is deleted from the cluster. */ public static final String OSL_LABEL_DELETED = "org.etsi.osl.deleted"; public static final String OSL_KUBCRV1_RSPEC_VERSION = "0.0.4"; public static final String OSL_KUBCRV1_RSPEC_CATEGORY = "KubernetesCRV1-apiextensions.k8s.io/v1"; public static final String OSL_KUBCRV1_RSPEC_TYPE = "LogicalResourceSpecification"; Loading Loading @@ -166,7 +170,6 @@ public class KubernetesCRV1 extends DomainModelDefinition .resourceStatus( ResourceStatusType.RESERVED ) .operationalState( ResourceOperationalStateType.ENABLE ) .resourceSpecification( rSpecRef ) .resourceVersion( this.version); Loading @@ -193,6 +196,7 @@ public class KubernetesCRV1 extends DomainModelDefinition rs.addResourceCharacteristicItemShort("_CR_CHECKVAL_SUSPENDED", this.statusCheckValueSuspended, EValueType.TEXT.getValue()); rs.resourceStatus( this.statusValue ); applyHealth( rs ); if (this.properties != null) this.properties.forEach((kPropName, vProVal) -> { Loading @@ -211,6 +215,54 @@ public class KubernetesCRV1 extends DomainModelDefinition return rs; } /** * Declares the CR's health with the ITU-T X.731 state attributes, derived from the same status * label the operator already configures through {@code org.etsi.osl.statusCheckValue*}. * * <p>These attributes — not {@code resourceStatus}, which is inventory/pool bookkeeping — are what * {@code Service.findNextStateBasedOnResourceList} folds into the supported service's state. A CR * whose status has not been recognised yet is left with both attributes unset: that reads as * "pending", which neither promotes nor demotes the service. */ private void applyHealth(ResourceCreate rs) { // A CR the watcher saw disappear is gone, whatever its last observed status said. if (this.properties != null && this.properties.get(OSL_LABEL_DELETED) != null) { rs.operationalState(ResourceOperationalStateType.DISABLE) .administrativeState(ResourceAdministrativeStateType.SHUTDOWN); return; } if (this.statusValue == null) { return; } switch (this.statusValue) { case AVAILABLE: rs.operationalState(ResourceOperationalStateType.ENABLE) .administrativeState(ResourceAdministrativeStateType.UNLOCKED); break; case RESERVED: case STANDBY: // Not yet released for use by the service that ordered it. rs.operationalState(ResourceOperationalStateType.DISABLE) .administrativeState(ResourceAdministrativeStateType.LOCKED); break; case ALARM: // In service, but not working. rs.operationalState(ResourceOperationalStateType.DISABLE) .administrativeState(ResourceAdministrativeStateType.UNLOCKED); break; case SUSPENDED: rs.operationalState(ResourceOperationalStateType.DISABLE) .administrativeState(ResourceAdministrativeStateType.SHUTDOWN); break; default: // UNKNOWN, or a status this mapping does not recognise: say nothing about health. break; } } @Override public ResourceUpdate toResourceUpdate() { Loading
src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesConfigMap.java +2 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; import org.etsi.osl.tmf.ri639.model.ResourceCreate; import org.etsi.osl.tmf.ri639.model.ResourceAdministrativeStateType; import org.etsi.osl.tmf.ri639.model.ResourceOperationalStateType; import org.etsi.osl.tmf.ri639.model.ResourceStatusType; import org.etsi.osl.tmf.ri639.model.ResourceUpdate; Loading Loading @@ -166,6 +167,7 @@ public class KubernetesConfigMap extends DomainModelDefinition .description( this.description ) .resourceStatus( ResourceStatusType.AVAILABLE ) .operationalState( ResourceOperationalStateType.ENABLE ) .administrativeState( ResourceAdministrativeStateType.UNLOCKED ) .resourceSpecification( rSpecRef ) .resourceVersion( this.version); Loading