gitextract_55atar1w/ ├── .gitattributes ├── .gitignore ├── .gitmodules ├── .vscode/ │ └── launch.json ├── AzureEnhancedMonitor/ │ ├── README.md │ ├── bin/ │ │ ├── pack.sh │ │ └── setup.sh │ ├── clib/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── include/ │ │ │ └── azureperf.h │ │ ├── src/ │ │ │ ├── apmetric.c │ │ │ └── azureperf.c │ │ └── test/ │ │ ├── cases/ │ │ │ └── positive_case │ │ ├── codegen.py │ │ ├── counter_names │ │ └── runtest.c │ ├── ext/ │ │ ├── .gitignore │ │ ├── HandlerManifest.json │ │ ├── aem.py │ │ ├── handler.py │ │ ├── installer.py │ │ ├── references │ │ └── test/ │ │ ├── env.py │ │ ├── storage_metrics │ │ ├── test_aem.py │ │ └── test_installer.py │ ├── hvinfo/ │ │ ├── .gitignore │ │ ├── Makefile │ │ └── src/ │ │ └── hvinfo.c │ └── nodejs/ │ ├── package.json │ └── setaem.js ├── AzureMonitorAgent/ │ ├── .gitignore │ ├── HandlerManifest.json │ ├── README.md │ ├── agent.py │ ├── agent.version │ ├── ama_tst/ │ │ ├── AMA-Troubleshooting-Tool.md │ │ ├── __init__.py │ │ ├── ama_troubleshooter.sh │ │ └── modules/ │ │ ├── __init__.py │ │ ├── connect/ │ │ │ ├── __init__.py │ │ │ ├── check_endpts.py │ │ │ ├── check_imds.py │ │ │ └── connect.py │ │ ├── custom_logs/ │ │ │ ├── __init__.py │ │ │ ├── check_clconf.py │ │ │ └── custom_logs.py │ │ ├── error_codes.py │ │ ├── errors.py │ │ ├── general_health/ │ │ │ ├── __init__.py │ │ │ ├── check_status.py │ │ │ └── general_health.py │ │ ├── helpers.py │ │ ├── high_cpu_mem/ │ │ │ ├── __init__.py │ │ │ ├── check_logrot.py │ │ │ ├── check_usage.py │ │ │ └── high_cpu_mem.py │ │ ├── install/ │ │ │ ├── __init__.py │ │ │ ├── check_ama.py │ │ │ ├── check_os.py │ │ │ ├── check_pkgs.py │ │ │ ├── install.py │ │ │ └── supported_distros.py │ │ ├── logcollector.py │ │ ├── main.py │ │ ├── metrics_troubleshooter/ │ │ │ ├── __init__.py │ │ │ └── metrics_troubleshooter.py │ │ └── syslog_tst/ │ │ ├── __init__.py │ │ ├── check_conf.py │ │ ├── check_rsysng.py │ │ └── syslog.py │ ├── apply_version.sh │ ├── azuremonitoragentextension.logrotate │ ├── manifest.xml │ ├── packaging.sh │ ├── references │ ├── services/ │ │ ├── metrics-extension-cmv1.service │ │ ├── metrics-extension-cmv2.service │ │ └── metrics-extension-otlp.service │ ├── shim.sh │ └── update_version.sh ├── CODEOWNERS ├── Common/ │ ├── WALinuxAgent-2.0.14/ │ │ └── waagent │ ├── WALinuxAgent-2.0.16/ │ │ └── waagent │ ├── libpsutil/ │ │ ├── py2.6-glibc-2.12-pre/ │ │ │ └── psutil/ │ │ │ ├── __init__.py │ │ │ ├── _common.py │ │ │ ├── _compat.py │ │ │ ├── _psbsd.py │ │ │ ├── _pslinux.py │ │ │ ├── _psosx.py │ │ │ ├── _psposix.py │ │ │ ├── _pssunos.py │ │ │ └── _pswindows.py │ │ └── py2.7-glibc-2.12+/ │ │ └── psutil/ │ │ ├── __init__.py │ │ ├── _common.py │ │ ├── _compat.py │ │ ├── _psbsd.py │ │ ├── _pslinux.py │ │ ├── _psosx.py │ │ ├── _psposix.py │ │ ├── _pssunos.py │ │ └── _pswindows.py │ └── waagentloader.py ├── CustomScript/ │ ├── CHANGELOG.md │ ├── HandlerManifest.json │ ├── README.md │ ├── azure/ │ │ ├── __init__.py │ │ ├── azure.pyproj │ │ ├── http/ │ │ │ ├── __init__.py │ │ │ ├── batchclient.py │ │ │ ├── httpclient.py │ │ │ └── winhttp.py │ │ ├── servicebus/ │ │ │ ├── __init__.py │ │ │ └── servicebusservice.py │ │ ├── servicemanagement/ │ │ │ ├── __init__.py │ │ │ ├── servicebusmanagementservice.py │ │ │ ├── servicemanagementclient.py │ │ │ ├── servicemanagementservice.py │ │ │ ├── sqldatabasemanagementservice.py │ │ │ └── websitemanagementservice.py │ │ └── storage/ │ │ ├── __init__.py │ │ ├── blobservice.py │ │ ├── cloudstorageaccount.py │ │ ├── queueservice.py │ │ ├── sharedaccesssignature.py │ │ ├── storageclient.py │ │ └── tableservice.py │ ├── customscript.py │ ├── manifest.xml │ ├── references │ ├── shim.sh │ └── test/ │ ├── HandlerEnvironment.json │ ├── MockUtil.py │ ├── create_test_blob.py │ ├── env.py │ ├── run_all.sh │ ├── test_blob_download.py │ ├── test_file_download.py │ ├── test_preprocess_file.py │ ├── test_uri_utils.py │ └── timeout.sh ├── DSC/ │ ├── HandlerManifest.json │ ├── Makefile │ ├── README.md │ ├── azure/ │ │ ├── __init__.py │ │ ├── azure.pyproj │ │ ├── http/ │ │ │ ├── __init__.py │ │ │ ├── batchclient.py │ │ │ ├── httpclient.py │ │ │ └── winhttp.py │ │ ├── servicebus/ │ │ │ ├── __init__.py │ │ │ └── servicebusservice.py │ │ ├── servicemanagement/ │ │ │ ├── __init__.py │ │ │ ├── servicebusmanagementservice.py │ │ │ ├── servicemanagementclient.py │ │ │ ├── servicemanagementservice.py │ │ │ ├── sqldatabasemanagementservice.py │ │ │ └── websitemanagementservice.py │ │ └── storage/ │ │ ├── __init__.py │ │ ├── blobservice.py │ │ ├── cloudstorageaccount.py │ │ ├── queueservice.py │ │ ├── sharedaccesssignature.py │ │ ├── storageclient.py │ │ └── tableservice.py │ ├── curlhttpclient.py │ ├── dsc.py │ ├── extension_shim.sh │ ├── httpclient.py │ ├── httpclientfactory.py │ ├── manifest.xml │ ├── packages/ │ │ ├── dsc-1.2.4-0.ssl_100.x64.deb │ │ ├── dsc-1.2.4-0.ssl_100.x64.rpm │ │ ├── dsc-1.2.4-0.ssl_110.x64.deb │ │ ├── dsc-1.2.4-0.ssl_110.x64.rpm │ │ ├── omi-1.7.3-0.ssl_100.ulinux.s.x64.deb │ │ ├── omi-1.7.3-0.ssl_100.ulinux.s.x64.rpm │ │ ├── omi-1.7.3-0.ssl_100.ulinux.x64.deb │ │ ├── omi-1.7.3-0.ssl_100.ulinux.x64.rpm │ │ ├── omi-1.7.3-0.ssl_110.ulinux.s.x64.deb │ │ ├── omi-1.7.3-0.ssl_110.ulinux.s.x64.rpm │ │ ├── omi-1.7.3-0.ssl_110.ulinux.x64.deb │ │ └── omi-1.7.3-0.ssl_110.ulinux.x64.rpm │ ├── serializerfactory.py │ ├── subprocessfactory.py │ ├── test/ │ │ ├── MockUtil.py │ │ ├── env.py │ │ ├── mof/ │ │ │ ├── azureautomation.df.meta.mof │ │ │ ├── dscnode.nxFile.meta.mof │ │ │ ├── dscnode.nxFile.meta.push.mof │ │ │ └── localhost.nxFile.mof │ │ ├── status/ │ │ │ └── 0.status │ │ ├── test_apply_meta_mof.py │ │ ├── test_apply_mof.py │ │ ├── test_compare_pkg_version.py │ │ ├── test_download_file.py │ │ ├── test_node_extension_properties.py │ │ ├── test_register.py │ │ └── test_status_update.py │ ├── urllib2httpclient.py │ └── urllib3httpclient.py ├── Diagnostic/ │ ├── ChangeLogs │ ├── DistroSpecific.py │ ├── HandlerManifest.json │ ├── Makefile │ ├── Providers/ │ │ ├── Builtin.py │ │ └── __init__.py │ ├── README.md │ ├── Utils/ │ │ ├── LadDiagnosticUtil.py │ │ ├── ProviderUtil.py │ │ ├── XmlUtil.py │ │ ├── __init__.py │ │ ├── imds_util.py │ │ ├── lad_exceptions.py │ │ ├── lad_ext_settings.py │ │ ├── lad_logging_config.py │ │ ├── mdsd_xml_templates.py │ │ ├── misc_helpers.py │ │ └── omsagent_util.py │ ├── __init__.py │ ├── decrypt_protected_settings.sh │ ├── diagnostic.py │ ├── lad_config_all.py │ ├── lad_mdsd.te │ ├── license.txt │ ├── manifest.xml │ ├── mdsd/ │ │ ├── CMakeLists.txt │ │ ├── Dockerfile │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── SampleConfig-LAD-SAS.xml │ │ ├── azure.list │ │ ├── buildcmake.sh │ │ ├── lad-mdsd/ │ │ │ ├── Makefile.in.version │ │ │ ├── README.txt │ │ │ ├── changelog │ │ │ ├── copyright │ │ │ ├── deb/ │ │ │ │ ├── Makefile │ │ │ │ └── control │ │ │ └── rpm/ │ │ │ └── Makefile │ │ ├── mdscommands/ │ │ │ ├── BinaryWriter.hh │ │ │ ├── BodyOnlyXmlParser.cc │ │ │ ├── BodyOnlyXmlParser.hh │ │ │ ├── CMakeLists.txt │ │ │ ├── CmdListXmlParser.cc │ │ │ ├── CmdListXmlParser.hh │ │ │ ├── CmdXmlCommon.cc │ │ │ ├── CmdXmlCommon.hh │ │ │ ├── CmdXmlElement.cc │ │ │ ├── CmdXmlElement.hh │ │ │ ├── CmdXmlParser.cc │ │ │ ├── CmdXmlParser.hh │ │ │ ├── ConfigUpdateCmd.cc │ │ │ ├── ConfigUpdateCmd.hh │ │ │ ├── DirectoryIter.cc │ │ │ ├── DirectoryIter.hh │ │ │ ├── EventData.cc │ │ │ ├── EventData.hh │ │ │ ├── EventEntry.cc │ │ │ ├── EventEntry.hh │ │ │ ├── EventHubCmd.cc │ │ │ ├── EventHubCmd.hh │ │ │ ├── EventHubPublisher.cc │ │ │ ├── EventHubPublisher.hh │ │ │ ├── EventHubType.cc │ │ │ ├── EventHubType.hh │ │ │ ├── EventHubUploader.cc │ │ │ ├── EventHubUploader.hh │ │ │ ├── EventHubUploaderId.cc │ │ │ ├── EventHubUploaderId.hh │ │ │ ├── EventHubUploaderMgr.cc │ │ │ ├── EventHubUploaderMgr.hh │ │ │ ├── EventPersistMgr.cc │ │ │ ├── EventPersistMgr.hh │ │ │ ├── MdsBlobReader.cc │ │ │ ├── MdsBlobReader.hh │ │ │ ├── MdsCmdLogger.hh │ │ │ ├── MdsException.cc │ │ │ ├── MdsException.hh │ │ │ ├── PersistFiles.cc │ │ │ ├── PersistFiles.hh │ │ │ ├── PublisherStatus.cc │ │ │ ├── PublisherStatus.hh │ │ │ └── commands.xsd │ │ ├── mdsd/ │ │ │ ├── Batch.cc │ │ │ ├── Batch.hh │ │ │ ├── CMakeLists.txt │ │ │ ├── CanonicalEntity.cc │ │ │ ├── CanonicalEntity.hh │ │ │ ├── CfgContext.cc │ │ │ ├── CfgContext.hh │ │ │ ├── CfgCtxAccounts.cc │ │ │ ├── CfgCtxAccounts.hh │ │ │ ├── CfgCtxDerived.cc │ │ │ ├── CfgCtxDerived.hh │ │ │ ├── CfgCtxEnvelope.cc │ │ │ ├── CfgCtxEnvelope.hh │ │ │ ├── CfgCtxError.cc │ │ │ ├── CfgCtxError.hh │ │ │ ├── CfgCtxEtw.cc │ │ │ ├── CfgCtxEtw.hh │ │ │ ├── CfgCtxEventAnnotations.cc │ │ │ ├── CfgCtxEventAnnotations.hh │ │ │ ├── CfgCtxEvents.cc │ │ │ ├── CfgCtxEvents.hh │ │ │ ├── CfgCtxExtensions.cc │ │ │ ├── CfgCtxExtensions.hh │ │ │ ├── CfgCtxHeartBeats.cc │ │ │ ├── CfgCtxHeartBeats.hh │ │ │ ├── CfgCtxImports.cc │ │ │ ├── CfgCtxImports.hh │ │ │ ├── CfgCtxManagement.cc │ │ │ ├── CfgCtxManagement.hh │ │ │ ├── CfgCtxMdsdEvents.cc │ │ │ ├── CfgCtxMdsdEvents.hh │ │ │ ├── CfgCtxMonMgmt.cc │ │ │ ├── CfgCtxMonMgmt.hh │ │ │ ├── CfgCtxOMI.cc │ │ │ ├── CfgCtxOMI.hh │ │ │ ├── CfgCtxParser.cc │ │ │ ├── CfgCtxParser.hh │ │ │ ├── CfgCtxRoot.cc │ │ │ ├── CfgCtxRoot.hh │ │ │ ├── CfgCtxSchemas.cc │ │ │ ├── CfgCtxSchemas.hh │ │ │ ├── CfgCtxSources.cc │ │ │ ├── CfgCtxSources.hh │ │ │ ├── CfgCtxSvcBusAccts.cc │ │ │ ├── CfgCtxSvcBusAccts.hh │ │ │ ├── CfgEventAnnotationType.hh │ │ │ ├── CfgOboDirectConfig.hh │ │ │ ├── CmdLineConverter.cc │ │ │ ├── CmdLineConverter.hh │ │ │ ├── ConfigParser.cc │ │ │ ├── ConfigParser.hh │ │ │ ├── Constants.cc │ │ │ ├── Constants.hh │ │ │ ├── Credentials.cc │ │ │ ├── Credentials.hh │ │ │ ├── DaemonConf.cc │ │ │ ├── DaemonConf.hh │ │ │ ├── DerivedEvent.cc │ │ │ ├── DerivedEvent.hh │ │ │ ├── Engine.cc │ │ │ ├── Engine.hh │ │ │ ├── EtwEvent.cc │ │ │ ├── EtwEvent.hh │ │ │ ├── EventJSON.cc │ │ │ ├── EventJSON.hh │ │ │ ├── ExtensionMgmt.cc │ │ │ ├── ExtensionMgmt.hh │ │ │ ├── FileSink.cc │ │ │ ├── FileSink.hh │ │ │ ├── IMdsSink.cc │ │ │ ├── IMdsSink.hh │ │ │ ├── ITask.cc │ │ │ ├── ITask.hh │ │ │ ├── IdentityColumns.hh │ │ │ ├── LADQuery.cc │ │ │ ├── LADQuery.hh │ │ │ ├── LinuxMdsConfig.xsd │ │ │ ├── Listener.cc │ │ │ ├── Listener.hh │ │ │ ├── LocalSink.cc │ │ │ ├── LocalSink.hh │ │ │ ├── MdsBlobOutputter.hh │ │ │ ├── MdsEntityName.cc │ │ │ ├── MdsEntityName.hh │ │ │ ├── MdsSchemaMetadata.cc │ │ │ ├── MdsSchemaMetadata.hh │ │ │ ├── MdsValue.cc │ │ │ ├── MdsValue.hh │ │ │ ├── MdsdConfig.cc │ │ │ ├── MdsdConfig.hh │ │ │ ├── MdsdExtension.hh │ │ │ ├── MdsdMetrics.cc │ │ │ ├── MdsdMetrics.hh │ │ │ ├── Memcheck.cc │ │ │ ├── OMIQuery.cc │ │ │ ├── OMIQuery.hh │ │ │ ├── OmiTask.cc │ │ │ ├── OmiTask.hh │ │ │ ├── PipeStages.cc │ │ │ ├── PipeStages.hh │ │ │ ├── Pipeline.cc │ │ │ ├── Pipeline.hh │ │ │ ├── PoolMgmt.hh │ │ │ ├── Priority.cc │ │ │ ├── Priority.hh │ │ │ ├── ProtocolHandlerBase.cc │ │ │ ├── ProtocolHandlerBase.hh │ │ │ ├── ProtocolHandlerBond.cc │ │ │ ├── ProtocolHandlerBond.hh │ │ │ ├── ProtocolHandlerJSON.cc │ │ │ ├── ProtocolHandlerJSON.hh │ │ │ ├── ProtocolListener.cc │ │ │ ├── ProtocolListener.hh │ │ │ ├── ProtocolListenerBond.cc │ │ │ ├── ProtocolListenerBond.hh │ │ │ ├── ProtocolListenerDynamicJSON.cc │ │ │ ├── ProtocolListenerDynamicJSON.hh │ │ │ ├── ProtocolListenerJSON.cc │ │ │ ├── ProtocolListenerJSON.hh │ │ │ ├── ProtocolListenerMgr.cc │ │ │ ├── ProtocolListenerMgr.hh │ │ │ ├── ProtocolListenerTcpJSON.cc │ │ │ ├── ProtocolListenerTcpJSON.hh │ │ │ ├── RowIndex.cc │ │ │ ├── RowIndex.hh │ │ │ ├── SaxParserBase.cc │ │ │ ├── SaxParserBase.hh │ │ │ ├── SchemaCache.cc │ │ │ ├── SchemaCache.hh │ │ │ ├── Signals.c │ │ │ ├── StoreType.cc │ │ │ ├── StoreType.hh │ │ │ ├── StreamListener.cc │ │ │ ├── StreamListener.hh │ │ │ ├── Subscription.cc │ │ │ ├── Subscription.hh │ │ │ ├── TableColumn.cc │ │ │ ├── TableColumn.hh │ │ │ ├── TableSchema.cc │ │ │ ├── TableSchema.hh │ │ │ ├── TermHandler.cc │ │ │ ├── Version.cc │ │ │ ├── Version.hh │ │ │ ├── XJsonBlobBlockCountsMgr.cc │ │ │ ├── XJsonBlobBlockCountsMgr.hh │ │ │ ├── XJsonBlobRequest.cc │ │ │ ├── XJsonBlobRequest.hh │ │ │ ├── XJsonBlobSink.cc │ │ │ ├── XJsonBlobSink.hh │ │ │ ├── XTableConst.cc │ │ │ ├── XTableConst.hh │ │ │ ├── XTableHelper.cc │ │ │ ├── XTableHelper.hh │ │ │ ├── XTableRequest.cc │ │ │ ├── XTableRequest.hh │ │ │ ├── XTableSink.cc │ │ │ ├── XTableSink.hh │ │ │ ├── cJSON.c │ │ │ ├── cJSON.h │ │ │ ├── cryptutil.cc │ │ │ ├── cryptutil.hh │ │ │ ├── fdelt_chk.c │ │ │ ├── mdsautokey.h │ │ │ ├── mdsd.cc │ │ │ └── wrap_memcpy.c │ │ ├── mdsd.8 │ │ ├── mdsdcfg/ │ │ │ ├── CMakeLists.txt │ │ │ ├── EventPubCfg.cc │ │ │ ├── EventPubCfg.hh │ │ │ ├── EventSinkCfgInfo.hh │ │ │ ├── EventType.hh │ │ │ ├── MdsdEventCfg.cc │ │ │ └── MdsdEventCfg.hh │ │ ├── mdsdinput/ │ │ │ ├── CMakeLists.txt │ │ │ ├── MdsdInputMessageBuilder.cpp │ │ │ ├── MdsdInputMessageBuilder.h │ │ │ ├── MdsdInputMessageDecoder.h │ │ │ ├── MdsdInputMessageIO.cpp │ │ │ ├── MdsdInputMessageIO.h │ │ │ ├── MdsdInputSchemaCache.cpp │ │ │ ├── MdsdInputSchemaCache.h │ │ │ ├── mdsd_input.bond │ │ │ ├── mdsd_input_apply.cpp │ │ │ ├── mdsd_input_apply.h │ │ │ ├── mdsd_input_reflection.h │ │ │ ├── mdsd_input_types.cpp │ │ │ └── mdsd_input_types.h │ │ ├── mdsdlog/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Logger.cc │ │ │ ├── Logger.hh │ │ │ ├── Trace.cc │ │ │ └── Trace.hh │ │ ├── mdsdutil/ │ │ │ ├── AzureUtility.cc │ │ │ ├── AzureUtility.hh │ │ │ ├── CMakeLists.txt │ │ │ ├── Crypto.cc │ │ │ ├── Crypto.hh │ │ │ ├── HttpProxySetup.cc │ │ │ ├── HttpProxySetup.hh │ │ │ ├── MdsTime.cc │ │ │ ├── MdsTime.hh │ │ │ ├── OpensslCert.cc │ │ │ ├── OpensslCert.hh │ │ │ ├── OpensslCertStore.cc │ │ │ ├── OpensslCertStore.hh │ │ │ ├── Utility.cc │ │ │ └── Utility.hh │ │ ├── mdsrest/ │ │ │ ├── CMakeLists.txt │ │ │ ├── GcsJsonData.cc │ │ │ ├── GcsJsonData.hh │ │ │ ├── GcsJsonParser.cc │ │ │ ├── GcsJsonParser.hh │ │ │ ├── GcsServiceInfo.cc │ │ │ ├── GcsServiceInfo.hh │ │ │ ├── GcsUtil.cc │ │ │ ├── GcsUtil.hh │ │ │ ├── MdsConst.hh │ │ │ ├── MdsRest.cc │ │ │ ├── MdsRest.hh │ │ │ └── MdsRestException.hh │ │ └── parseglibc.py │ ├── mocks/ │ │ ├── Readme.txt │ │ ├── __init__.py │ │ ├── crypt.py │ │ ├── fcntl.py │ │ └── pwd.py │ ├── run_unittests.sh │ ├── services/ │ │ ├── mdsd-lde.service │ │ ├── metrics-extension.service │ │ └── metrics-sourcer.service │ ├── shim.sh │ ├── tests/ │ │ ├── .gitignore │ │ ├── __init__.py │ │ ├── lad_2_3_compatible_portal_pub_settings.json │ │ ├── test_LadDiagnosticUtil.py │ │ ├── test_builtin.py │ │ ├── test_commonActions.py │ │ ├── test_lad_config_all.py │ │ ├── test_lad_ext_settings.py │ │ ├── test_lad_logging_config.py │ │ ├── var_lib_waagent/ │ │ │ └── lad_dir/ │ │ │ └── config/ │ │ │ ├── lad_settings_logging.json │ │ │ └── lad_settings_metric.json │ │ └── watchertests.py │ ├── virtual-machines-linux-diagnostic-extension-v3.md │ └── watcherutil.py ├── LAD-AMA-Common/ │ ├── metrics_ext_utils/ │ │ ├── __init__.py │ │ ├── metrics_common_utils.py │ │ ├── metrics_constants.py │ │ └── metrics_ext_handler.py │ └── telegraf_utils/ │ ├── __init__.py │ ├── telegraf_config_handler.py │ └── telegraf_name_map.py ├── LICENSE.txt ├── Makefile ├── OSPatching/ │ ├── HandlerManifest.json │ ├── README.md │ ├── azure/ │ │ ├── __init__.py │ │ ├── azure.pyproj │ │ ├── http/ │ │ │ ├── __init__.py │ │ │ ├── batchclient.py │ │ │ ├── httpclient.py │ │ │ └── winhttp.py │ │ ├── servicebus/ │ │ │ ├── __init__.py │ │ │ └── servicebusservice.py │ │ ├── servicemanagement/ │ │ │ ├── __init__.py │ │ │ ├── servicebusmanagementservice.py │ │ │ ├── servicemanagementclient.py │ │ │ ├── servicemanagementservice.py │ │ │ ├── sqldatabasemanagementservice.py │ │ │ └── websitemanagementservice.py │ │ └── storage/ │ │ ├── __init__.py │ │ ├── blobservice.py │ │ ├── cloudstorageaccount.py │ │ ├── queueservice.py │ │ ├── sharedaccesssignature.py │ │ ├── storageclient.py │ │ └── tableservice.py │ ├── check.py │ ├── handler.py │ ├── manifest.xml │ ├── oneoff/ │ │ └── __init__.py │ ├── patch/ │ │ ├── AbstractPatching.py │ │ ├── ConfigOptions.py │ │ ├── OraclePatching.py │ │ ├── SuSEPatching.py │ │ ├── UbuntuPatching.py │ │ ├── __init__.py │ │ ├── centosPatching.py │ │ └── redhatPatching.py │ ├── references │ ├── scheduled/ │ │ ├── __init__.py │ │ └── history │ └── test/ │ ├── FakePatching.py │ ├── FakePatching2.py │ ├── FakePatching3.py │ ├── HandlerEnvironment.json │ ├── README.txt │ ├── check.py │ ├── config/ │ │ └── 0.settings │ ├── default.settings │ ├── handler.py │ ├── oneoff/ │ │ └── __init__.py │ ├── prepare_settings.py │ ├── scheduled/ │ │ ├── __init__.py │ │ └── history │ ├── test.crt │ ├── test.prv │ ├── test_handler_1.py │ ├── test_handler_2.py │ └── test_handler_3.py ├── OmsAgent/ │ ├── .gitignore │ ├── HandlerManifest.json │ ├── ImportGPGkey.sh │ ├── README.md │ ├── apply_version.sh │ ├── extension-test/ │ │ ├── README.md │ │ ├── oms_extension_tests.py │ │ ├── omsfiles/ │ │ │ ├── apache_access.log │ │ │ ├── custom.log │ │ │ ├── customlog.conf │ │ │ ├── error.log │ │ │ ├── mysql-slow.log │ │ │ ├── mysql.log │ │ │ ├── oms_extension_run_script.py │ │ │ ├── perf.conf │ │ │ └── rsyslog-oms.conf │ │ ├── parameters.json │ │ └── verify_e2e.py │ ├── keys/ │ │ ├── dscgpgkey.asc │ │ └── msgpgkey.asc │ ├── manifest.xml │ ├── omsagent.py │ ├── omsagent.version │ ├── omsagent_shim.sh │ ├── packaging.sh │ ├── references │ ├── test/ │ │ ├── MockUtil.py │ │ ├── env.py │ │ └── test_install.py │ ├── update_version.sh │ └── watcherutil.py ├── RDMAUpdate/ │ ├── MANIFEST.in │ ├── RDMAUpdate.pyproj │ ├── README.txt │ ├── enableit.js │ ├── main/ │ │ ├── CommandExecuter.py │ │ ├── Common.py │ │ ├── CronUtil.py │ │ ├── RDMALogger.py │ │ ├── RdmaException.py │ │ ├── SecondStageMarkConfig.py │ │ ├── Utils/ │ │ │ ├── HandlerUtil.py │ │ │ ├── WAAgentUtil.py │ │ │ └── __init__.py │ │ ├── __init__.py │ │ ├── handle.py │ │ └── patch/ │ │ ├── AbstractPatching.py │ │ ├── OraclePatching.py │ │ ├── SuSEPatching.py │ │ ├── UbuntuPatching.py │ │ ├── __init__.py │ │ ├── centosPatching.py │ │ └── redhatPatching.py │ ├── references │ ├── setup.py │ ├── test/ │ │ └── update_rdma_driver.py │ └── test.ps1 ├── README.md ├── SECURITY.md ├── SampleExtension/ │ ├── HandlerManifest.json │ ├── disable.py │ ├── enable.py │ ├── install.py │ ├── references │ ├── uninstall.py │ └── update.py ├── TestHandlerLinux/ │ ├── HandlerManifest.json │ ├── bin/ │ │ ├── #heartbeat.py# │ │ ├── disable.py │ │ ├── enable.py │ │ ├── heartbeat.py │ │ ├── service.py │ │ └── update.py │ ├── installer/ │ │ ├── install.py │ │ └── uninstall.py │ ├── manifest.xml │ ├── references │ └── resources/ │ ├── HandlerUtil.py │ └── mypydoc.py ├── Utils/ │ ├── HandlerUtil.py │ ├── LogUtil.py │ ├── ScriptUtil.py │ ├── WAAgentUtil.py │ ├── __init__.py │ ├── constants.py │ ├── crypt_fallback.py │ ├── distroutils.py │ ├── extensionutils.py │ ├── handlerutil2.py │ ├── logger.py │ ├── ovfutils.py │ └── test/ │ ├── MockUtil.py │ ├── env.py │ ├── mock.sh │ ├── mock_sshd_config │ ├── non_latin_characters.txt │ ├── ovf-env-empty.xml │ ├── ovf-env.xml │ ├── place_vmaccess_on_local_machine.sh │ ├── test_encode.py │ ├── test_extensionutils_code_injection.py │ ├── test_logutil.py │ ├── test_null_protected_settings.py │ ├── test_ovf_utils.py │ ├── test_redacted_settings.py │ └── test_scriptutil.py ├── VMAccess/ │ ├── CHANGELOG.md │ ├── HandlerManifest.json │ ├── README.md │ ├── extension_noop.sh │ ├── extension_shim.sh │ ├── manifest.xml │ ├── references │ ├── resources/ │ │ ├── SuSE_default │ │ ├── Ubuntu_default │ │ ├── centos_default │ │ ├── debian_default │ │ ├── default │ │ ├── fedora_default │ │ └── redhat_default │ ├── test/ │ │ ├── env.py │ │ ├── test_iptable_rules.py │ │ ├── test_reset_account.py │ │ └── test_reset_sshd_config.py │ └── vmaccess.py ├── VMBackup/ │ ├── .gitignore │ ├── HandlerManifest.json │ ├── MANIFEST.in │ ├── README.txt │ ├── VMBackup.pyproj │ ├── debughelper/ │ │ ├── README.md │ │ ├── checkMounts.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main.go │ │ └── run.go │ ├── main/ │ │ ├── ExtensionErrorCodeHelper.py │ │ ├── HttpUtil.py │ │ ├── IaaSExtensionSnapshotService/ │ │ │ ├── README.md │ │ │ ├── SnapshotServiceConstants.py │ │ │ ├── SnapshotServiceContracts.py │ │ │ ├── __init__.py │ │ │ └── service_metadata.json │ │ ├── LogSeverity.json │ │ ├── MachineIdentity.py │ │ ├── PluginHost.py │ │ ├── ScriptRunner.py │ │ ├── Utils/ │ │ │ ├── DiskUtil.py │ │ │ ├── Event.py │ │ │ ├── EventLoggerUtil.py │ │ │ ├── HandlerUtil.py │ │ │ ├── HostSnapshotObjects.py │ │ │ ├── LogHelper.py │ │ │ ├── ResourceDiskUtil.py │ │ │ ├── SizeCalculation.py │ │ │ ├── Status.py │ │ │ ├── StringHelper.py │ │ │ ├── WAAgentUtil.py │ │ │ ├── __init__.py │ │ │ └── dhcpUtils.py │ │ ├── VMSnapshotPluginHost.conf │ │ ├── WaagentLib.py │ │ ├── __init__.py │ │ ├── backuplogger.py │ │ ├── blobwriter.py │ │ ├── common.py │ │ ├── dhcpHandler.py │ │ ├── freezesnapshotter.py │ │ ├── fsfreezer.py │ │ ├── guestsnapshotter.py │ │ ├── handle.py │ │ ├── handle.sh │ │ ├── handle_host_daemon.py │ │ ├── handle_host_daemon.sh │ │ ├── hostsnapshotter.py │ │ ├── mounts.py │ │ ├── parameterparser.py │ │ ├── patch/ │ │ │ ├── AbstractPatching.py │ │ │ ├── DefaultPatching.py │ │ │ ├── FreeBSDPatching.py │ │ │ ├── KaliPatching.py │ │ │ ├── NSBSDPatching.py │ │ │ ├── SuSEPatching.py │ │ │ ├── UbuntuPatching.py │ │ │ ├── __init__.py │ │ │ ├── centosPatching.py │ │ │ ├── debianPatching.py │ │ │ ├── oraclePatching.py │ │ │ └── redhatPatching.py │ │ ├── safefreeze/ │ │ │ ├── Makefile │ │ │ └── src/ │ │ │ └── safefreeze.c │ │ ├── safefreezeArm64/ │ │ │ ├── Makefile │ │ │ ├── bin/ │ │ │ │ └── safefreeze │ │ │ └── src/ │ │ │ └── safefreeze.c │ │ ├── taskidentity.py │ │ ├── tempPlugin/ │ │ │ ├── VMSnapshotScriptPluginConfig.json │ │ │ ├── postScript.sh │ │ │ ├── preScript.sh │ │ │ └── vmbackup.conf │ │ └── workloadPatch/ │ │ ├── CustomScripts/ │ │ │ └── customscript.sql │ │ ├── DefaultScripts/ │ │ │ ├── logbackup.sql │ │ │ ├── postMysqlMaster.sql │ │ │ ├── postMysqlSlave.sql │ │ │ ├── postOracleMaster.sql │ │ │ ├── postPostgresMaster.sql │ │ │ ├── preMysqlMaster.sql │ │ │ ├── preMysqlSlave.sql │ │ │ ├── preOracleMaster.sql │ │ │ ├── prePostgresMaster.sql │ │ │ └── timeoutDaemon.sh │ │ ├── LogBackupPatch.py │ │ ├── WorkloadPatch.py │ │ ├── WorkloadUtils/ │ │ │ ├── OracleLogBackup.py │ │ │ ├── OracleLogRestore.py │ │ │ └── workload.conf │ │ └── __init__.py │ ├── manifest.xml │ ├── mkstub.py │ ├── references │ ├── setup.py │ └── test/ │ ├── handle.py │ └── install_python2.6.sh ├── VMEncryption/ │ ├── .vscode/ │ │ └── settings.json │ ├── MANIFEST.in │ ├── ReleaseNotes.txt │ ├── Test-AzureRmVMDiskEncryptionExtension.ps1 │ ├── Test-AzureRmVMDiskEncryptionExtensionDiskFormat.ps1 │ ├── UpgradeLog.htm │ ├── VMEncryption.pyproj │ ├── extension_shim.sh │ ├── lint_output.txt │ ├── main/ │ │ ├── BackupLogger.py │ │ ├── BekUtil.py │ │ ├── CommandExecutor.py │ │ ├── Common.py │ │ ├── ConfigUtil.py │ │ ├── DecryptionMarkConfig.py │ │ ├── DiskUtil.py │ │ ├── EncryptionConfig.py │ │ ├── EncryptionEnvironment.py │ │ ├── EncryptionMarkConfig.py │ │ ├── ExtensionParameter.py │ │ ├── HttpUtil.py │ │ ├── KeyVaultUtil.py │ │ ├── MachineIdentity.py │ │ ├── OnGoingItemConfig.py │ │ ├── ProcessLock.py │ │ ├── ResourceDiskUtil.py │ │ ├── SupportedOS.json │ │ ├── TokenUtil.py │ │ ├── TransactionalCopyTask.py │ │ ├── Utils/ │ │ │ ├── HandlerUtil.py │ │ │ ├── WAAgentUtil.py │ │ │ └── __init__.py │ │ ├── __init__.py │ │ ├── check_util.py │ │ ├── handle.py │ │ ├── oscrypto/ │ │ │ ├── 91ade/ │ │ │ │ ├── 50-udev-ade.rules │ │ │ │ ├── cryptroot-ask-ade.sh │ │ │ │ ├── module-setup.sh │ │ │ │ └── parse-crypt-ade.sh │ │ │ ├── OSEncryptionState.py │ │ │ ├── OSEncryptionStateMachine.py │ │ │ ├── __init__.py │ │ │ ├── centos_68/ │ │ │ │ ├── CentOS68EncryptionStateMachine.py │ │ │ │ ├── __init__.py │ │ │ │ ├── encryptpatches/ │ │ │ │ │ └── centos_68_dracut.patch │ │ │ │ └── encryptstates/ │ │ │ │ ├── EncryptBlockDeviceState.py │ │ │ │ ├── PatchBootSystemState.py │ │ │ │ ├── PrereqState.py │ │ │ │ ├── SelinuxState.py │ │ │ │ ├── SplitRootPartitionState.py │ │ │ │ ├── StripdownState.py │ │ │ │ ├── UnmountOldrootState.py │ │ │ │ └── __init__.py │ │ │ ├── rhel_68/ │ │ │ │ ├── RHEL68EncryptionStateMachine.py │ │ │ │ ├── __init__.py │ │ │ │ ├── encryptpatches/ │ │ │ │ │ └── rhel_68_dracut.patch │ │ │ │ └── encryptstates/ │ │ │ │ ├── EncryptBlockDeviceState.py │ │ │ │ ├── PatchBootSystemState.py │ │ │ │ ├── PrereqState.py │ │ │ │ ├── SelinuxState.py │ │ │ │ ├── StripdownState.py │ │ │ │ ├── UnmountOldrootState.py │ │ │ │ └── __init__.py │ │ │ ├── rhel_72/ │ │ │ │ ├── RHEL72EncryptionStateMachine.py │ │ │ │ ├── __init__.py │ │ │ │ └── encryptstates/ │ │ │ │ ├── EncryptBlockDeviceState.py │ │ │ │ ├── PatchBootSystemState.py │ │ │ │ ├── PrereqState.py │ │ │ │ ├── SelinuxState.py │ │ │ │ ├── StripdownState.py │ │ │ │ ├── UnmountOldrootState.py │ │ │ │ └── __init__.py │ │ │ ├── rhel_72_lvm/ │ │ │ │ ├── RHEL72LVMEncryptionStateMachine.py │ │ │ │ ├── __init__.py │ │ │ │ └── encryptstates/ │ │ │ │ ├── EncryptBlockDeviceState.py │ │ │ │ ├── PatchBootSystemState.py │ │ │ │ ├── PrereqState.py │ │ │ │ ├── SelinuxState.py │ │ │ │ ├── StripdownState.py │ │ │ │ ├── UnmountOldrootState.py │ │ │ │ └── __init__.py │ │ │ ├── ubuntu_1404/ │ │ │ │ ├── Ubuntu1404EncryptionStateMachine.py │ │ │ │ ├── __init__.py │ │ │ │ ├── encryptpatches/ │ │ │ │ │ └── ubuntu_1404_initramfs.patch │ │ │ │ ├── encryptscripts/ │ │ │ │ │ ├── azure_crypt_key.sh │ │ │ │ │ └── inject_luks_header.sh │ │ │ │ └── encryptstates/ │ │ │ │ ├── EncryptBlockDeviceState.py │ │ │ │ ├── PatchBootSystemState.py │ │ │ │ ├── PrereqState.py │ │ │ │ ├── SelinuxState.py │ │ │ │ ├── SplitRootPartitionState.py │ │ │ │ ├── StripdownState.py │ │ │ │ ├── UnmountOldrootState.py │ │ │ │ └── __init__.py │ │ │ └── ubuntu_1604/ │ │ │ ├── Ubuntu1604EncryptionStateMachine.py │ │ │ ├── __init__.py │ │ │ ├── encryptpatches/ │ │ │ │ └── ubuntu_1604_initramfs.patch │ │ │ ├── encryptscripts/ │ │ │ │ ├── azure_crypt_key.sh │ │ │ │ └── inject_luks_header.sh │ │ │ └── encryptstates/ │ │ │ ├── EncryptBlockDeviceState.py │ │ │ ├── PatchBootSystemState.py │ │ │ ├── PrereqState.py │ │ │ ├── SelinuxState.py │ │ │ ├── SplitRootPartitionState.py │ │ │ ├── StripdownState.py │ │ │ ├── UnmountOldrootState.py │ │ │ └── __init__.py │ │ └── patch/ │ │ ├── AbstractPatching.py │ │ ├── SuSEPatching.py │ │ ├── UbuntuPatching.py │ │ ├── __init__.py │ │ ├── centosPatching.py │ │ ├── debianPatching.py │ │ ├── oraclePatching.py │ │ └── redhatPatching.py │ ├── references │ ├── requirements.txt │ ├── setup.py │ └── test/ │ ├── __init__.py │ ├── console_logger.py │ ├── test_check_util.py │ ├── test_command_executor.py │ ├── test_disk_util.py │ ├── test_handler_util.py │ ├── test_resource_disk_util.py │ └── test_utils.py ├── docs/ │ ├── advanced-topics.md │ ├── contribution-guide.md │ ├── design-details.md │ ├── document.md │ ├── handler-registration.md │ ├── overview.md │ ├── sample-extension.md │ ├── test.md │ └── utils.md ├── go.mod ├── go.sum ├── registration-scripts/ │ ├── api/ │ │ ├── add-extension.sh │ │ ├── check-request-status.sh │ │ ├── del-extension.sh │ │ ├── get-extension.sh │ │ ├── get-subscription.sh │ │ ├── list-extension.sh │ │ ├── params │ │ └── update-extension.sh │ ├── bin/ │ │ ├── add.sh │ │ ├── blob/ │ │ │ ├── list.sh │ │ │ └── upload.sh │ │ ├── check.sh │ │ ├── del.sh │ │ ├── get.sh │ │ ├── list.sh │ │ ├── subscription.sh │ │ └── update.sh │ ├── create_zip.sh │ ├── mooncake/ │ │ └── sample-extension-1.0.xml │ └── public/ │ └── sample-extension-1.0.xml ├── script/ │ ├── 0.settings │ ├── HandlerEnvironment.json │ ├── create_zip.sh │ ├── mkstub.sh │ ├── ovf-env.xml │ ├── set_env.sh │ ├── test.crt │ └── test.prv └── ui-extension-packages/ ├── microsoft.custom-script-linux/ │ ├── Artifacts/ │ │ ├── CreateUiDefinition.json │ │ └── MainTemplate.json │ ├── Manifest.json │ ├── Strings/ │ │ └── resources.resjson │ └── UiDefinition.json └── microsoft.custom-script-linux-arm/ ├── Artifacts/ │ ├── CreateUiDefinition.json │ └── MainTemplate.json ├── Manifest.json ├── Strings/ │ └── resources.resjson └── UiDefinition.json