new internal static unsafe MonitoredRollingApplicationUpgradePolicyDescription FromNative(IntPtr policyPtr) { if (policyPtr == IntPtr.Zero) { return(null); } var castedPtr = (NativeTypes.FABRIC_ROLLING_UPGRADE_POLICY_DESCRIPTION *)policyPtr; var monitoringPolicy = new MonitoredRollingApplicationUpgradePolicyDescription(); if (castedPtr->Reserved != IntPtr.Zero) { var castedEx1Ptr = (NativeTypes.FABRIC_ROLLING_UPGRADE_POLICY_DESCRIPTION_EX1 *)castedPtr->Reserved; if (castedEx1Ptr->MonitoringPolicy != IntPtr.Zero) { monitoringPolicy.MonitoringPolicy = RollingUpgradeMonitoringPolicy.FromNative(castedEx1Ptr->MonitoringPolicy); } if (castedEx1Ptr->HealthPolicy != IntPtr.Zero) { monitoringPolicy.HealthPolicy = ApplicationHealthPolicy.FromNative(castedEx1Ptr->HealthPolicy); } } monitoringPolicy.FromNativeHelper(policyPtr); return(monitoringPolicy); }
internal static unsafe ApplicationUpgradeDescription FromNative(IntPtr descriptionPtr) { if (descriptionPtr == IntPtr.Zero) { return(null); } var castedPtr = (NativeTypes.FABRIC_APPLICATION_UPGRADE_DESCRIPTION *)descriptionPtr; var description = new ApplicationUpgradeDescription(); description.ApplicationName = NativeTypes.FromNativeUri(castedPtr->ApplicationName); description.TargetApplicationTypeVersion = NativeTypes.FromNativeString(castedPtr->TargetApplicationTypeVersion); if (castedPtr->ApplicationParameters != IntPtr.Zero) { var castedParamsPtr = (NativeTypes.FABRIC_APPLICATION_PARAMETER_LIST *)castedPtr->ApplicationParameters; var parametersList = ApplicationParameterList.FromNative(castedParamsPtr); description.ApplicationParameters = parametersList.AsNameValueCollection(); } if (castedPtr->UpgradeKind == NativeTypes.FABRIC_APPLICATION_UPGRADE_KIND.FABRIC_APPLICATION_UPGRADE_KIND_ROLLING && castedPtr->UpgradePolicyDescription != IntPtr.Zero) { RollingUpgradePolicyDescription policy = null; var castedPolicyPtr = (NativeTypes.FABRIC_ROLLING_UPGRADE_POLICY_DESCRIPTION *)castedPtr->UpgradePolicyDescription; if (castedPolicyPtr->RollingUpgradeMode == NativeTypes.FABRIC_ROLLING_UPGRADE_MODE.FABRIC_ROLLING_UPGRADE_MODE_MONITORED) { policy = MonitoredRollingApplicationUpgradePolicyDescription.FromNative(castedPtr->UpgradePolicyDescription); } else { policy = RollingUpgradePolicyDescription.FromNative(castedPtr->UpgradePolicyDescription); } description.UpgradePolicyDescription = policy; } return(description); }
internal static unsafe ComposeDeploymentUpgradeDescriptionWrapper FromNative(IntPtr descriptionPtr) { if (descriptionPtr == IntPtr.Zero) { return(null); } var castedPtr = (NativeTypes.FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_DESCRIPTION *)descriptionPtr; // Mandatory if (castedPtr->UpgradePolicyDescription == IntPtr.Zero) { return(null); } RollingUpgradePolicyDescription policy = null; var castedPolicyPtr = (NativeTypes.FABRIC_ROLLING_UPGRADE_POLICY_DESCRIPTION *)castedPtr->UpgradePolicyDescription; if (castedPolicyPtr->RollingUpgradeMode == NativeTypes.FABRIC_ROLLING_UPGRADE_MODE.FABRIC_ROLLING_UPGRADE_MODE_MONITORED) { policy = MonitoredRollingApplicationUpgradePolicyDescription.FromNative(castedPtr->UpgradePolicyDescription); } else { policy = RollingUpgradePolicyDescription.FromNative(castedPtr->UpgradePolicyDescription); } var result = new ComposeDeploymentUpgradeDescriptionWrapper( NativeTypes.FromNativeString(castedPtr->DeploymentName), NativeTypes.FromNativeStringList(castedPtr->ComposeFilePaths).ToArray(), policy ); result.ContainerRegistryUserName = NativeTypes.FromNativeString(castedPtr->ContainerRegistryUserName); result.ContainerRegistryPassword = NativeTypes.FromNativeString(castedPtr->ContainerRegistryPassword); result.IsRegistryPasswordEncrypted = NativeTypes.FromBOOLEAN(castedPtr->IsRegistryPasswordEncrypted); return(result); }
internal IntPtr ToNative(PinCollection pinCollection) { UInt32 flags = 0; var policyDescription = new MonitoredRollingApplicationUpgradePolicyDescription(); flags = policyDescription.FromUpdateDescription(this); if (this.HealthPolicy != null) { flags |= (UInt32)NativeTypes.FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS.FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS_HEALTH_POLICY; policyDescription.HealthPolicy = this.HealthPolicy; } var nativeDescription = new NativeTypes.FABRIC_APPLICATION_UPGRADE_UPDATE_DESCRIPTION(); nativeDescription.ApplicationName = pinCollection.AddObject(this.ApplicationName); nativeDescription.UpgradeKind = NativeTypes.FABRIC_APPLICATION_UPGRADE_KIND.FABRIC_APPLICATION_UPGRADE_KIND_ROLLING; nativeDescription.UpdateFlags = flags; nativeDescription.UpgradePolicyDescription = policyDescription.ToNative(pinCollection); return(pinCollection.AddBlittable(nativeDescription)); }