X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=rwmon%2Fplugins%2Fvala%2Frwmon.vala;fp=rwmon%2Fplugins%2Fvala%2Frwmon.vala;h=560a5eca4b783d43d311bde0b18583797e30d70e;hb=6f07e6f33f751ab4ffe624f6037f887b243bece2;hp=0000000000000000000000000000000000000000;hpb=72a563886272088feb7cb52e4aafbe6d2c580ff9;p=osm%2FSO.git diff --git a/rwmon/plugins/vala/rwmon.vala b/rwmon/plugins/vala/rwmon.vala new file mode 100644 index 00000000..560a5eca --- /dev/null +++ b/rwmon/plugins/vala/rwmon.vala @@ -0,0 +1,149 @@ +namespace RwMon { + public interface Monitoring: GLib.Object { + /** + * Init routine + * + * @param log_ctx - [in] the log context to use + * + * @return RwStatus + */ + public abstract RwTypes.RwStatus init(RwLog.Ctx log_ctx); + + /** + * nfvi_metrics + * + * Returns the NFVI metrics for a particular VM + * + * @param account - [in] the account details of the owner of the VM + * @param vm_id - [in] the ID of the VM to retrieve the metrics from + * @param metrics - [out] An NfviMetrics object + * + * @return RwStatus + */ + public abstract RwTypes.RwStatus nfvi_metrics( + Rwcal.CloudAccount account, + string vm_id, + out Rwmon.NfviMetrics metrics); + + /** + * nfvi_vcpu_metrics + * + * Returns the VCPU metrics for a particular VM + * + * @param account - [in] the account details of the owner of the VM + * @param vm_id - [in] the ID of the VM to retrieve the metrics from + * @param metrics - [out] An NfviMetrics_Vcpu object + * + * @return RwStatus + */ + public abstract RwTypes.RwStatus nfvi_vcpu_metrics( + Rwcal.CloudAccount account, + string vm_id, + out Rwmon.NfviMetrics_Vcpu metrics); + + /** + * nfvi_memory_metrics + * + * Returns the memory metrics for a particular VM + * + * @param account - [in] the account details of the owner of the VM + * @param vm_id - [in] the ID of the VM to retrieve the metrics from + * @param metrics - [out] An NfviMetrics_Memory object + * + * @return RwStatus + */ + public abstract RwTypes.RwStatus nfvi_memory_metrics( + Rwcal.CloudAccount account, + string vm_id, + out Rwmon.NfviMetrics_Memory metrics); + + /** + * nfvi_storage_metrics + * + * Returns the storage metrics for a particular VM + * + * @param account - [in] the account details of the owner of the VM + * @param vm_id - [in] the ID of the VM to retrieve the metrics from + * @param metrics - [out] An NfviMetrics_Storage object + * + * @return RwStatus + */ + public abstract RwTypes.RwStatus nfvi_storage_metrics( + Rwcal.CloudAccount account, + string vm_id, + out Rwmon.NfviMetrics_Storage metrics); + + /** + * nfvi_metrics_available + * + * Checks whether ceilometer exists for this account and is + * providing NFVI metrics + * + * @param account - [in] the account details of the owner of the VM + * @param present - [out] True if ceilometer exists, False otherwise + * + * @return RwStatus + */ + public abstract RwTypes.RwStatus nfvi_metrics_available( + Rwcal.CloudAccount account, + out bool present); + + /** + * alarm_create + * + * @param account - [in] the credentials required to update the alarm. + * @param vim_id - [in] the identifier assigned by a VIM to the VDU that + * the alarm is associated with. + * @param alarm - [ref] an alarm structure defining the alarm. Note that + * the underlying implmentation will fill in the alarm_id + * attribute, which is required for modifying or deleting + * an alarm. + * + * @return RwStatus + */ + public abstract RwTypes.RwStatus alarm_create( + Rwcal.CloudAccount account, + string vim_id, + ref Rwmon.Alarm alarm); + + /** + * alarm_update + * + * @param account - [in] the credentials required to update the alarm. + * @param alarm - [in] the complete alarm structure defining the alarm. + * This means that the alarm structure must contain a + * valid alarm_id, and any attribute of the structure that + * differs from the actual alarm will be updated to match + * the provided data. + * + * @return RwStatus + */ + public abstract RwTypes.RwStatus alarm_update( + Rwcal.CloudAccount account, + Rwmon.Alarm alarm); + + /** + * alarm_delete + * + * @param account - [in] the credentials required to delete the alarm. + * @param alarm_id - [in] the identifier of the alarm to delete + * + * @return RwStatus + */ + public abstract RwTypes.RwStatus alarm_delete( + Rwcal.CloudAccount account, + string alarm_id); + + /** + * alarm_list + * + * @param account - [in] the credentials required to list the alarms. + * @param alarms - [out] a list of alarms + * + * @return RwStatus + */ + public abstract RwTypes.RwStatus alarm_list( + Rwcal.CloudAccount account, + out Rwmon.Alarm[] alarms); + } +}