Пример #1
0
        private static IPEndPoint GetEndpoint(RoleInstance instance, bool bMaster)
        {
            string internalEndpointName = bMaster ? "SolrMasterServiceEndpoint" : "SolrSlaveServiceEndpoint";
            string externalEndpointSettingName = bMaster ? "SolrMasterHostWorkerRoleExternalEndpointPort" : "SolrSlaveHostWorkerRoleExternalEndpointPort";

            if (instance.InstanceEndpoints[internalEndpointName] == null)
                return null;

            // Various approaches are possible for obtaining the external endpoint, depending upon your situation and requirements.
            // Possible approaches include writing a small WCF service in the worker role that returns its external endpoint, or having some sort of reporting mechanism to a well-known
            // location (such as a common blob where all roles report their status). We may implement one of these approaches ourselves in a future release.
            IPEndPoint solrEndpoint = instance.InstanceEndpoints[internalEndpointName].IPEndpoint;
            int port = int.Parse(RoleEnvironment.GetConfigurationSettingValue(externalEndpointSettingName));
            int cAttempts = 10;

            while (--cAttempts > 0)
            {
                solrEndpoint = new IPEndPoint(solrEndpoint.Address, port++);

                if (CheckEndpoint(solrEndpoint))
                    return solrEndpoint;
            }

            throw new ApplicationException("Master not ready");
        }
Пример #2
0
 public static IPEndPoint GetEndPoint(RoleInstance roleInstance, string endPointName)
 {
     var endPoint = roleInstance.InstanceEndpoints[endPointName].IPEndpoint;
     return RoleEnvironment.IsEmulated
                ? new IPEndPoint(Dns.GetHostAddresses("localhost")[0],
                                 endPoint.Port + ParseNodeInstanceId(roleInstance.Id))
                : endPoint;
 }
Пример #3
0
        private static IPAddress GetRoleInstanceHostIPAddress(RoleInstance roleInstance)
        {
            if (roleInstance.InstanceEndpoints != null && roleInstance.InstanceEndpoints.Count() > 0)
            {
                return(roleInstance.InstanceEndpoints.First().Value.IPEndpoint.Address);
            }

            return(IPAddress.Any);
        }
Пример #4
0
    public void ShowRole(RoleInstance role)
    {
        this.gameObject.SetActive(true);

        m_NameText.text   = role.Name;
        m_DetailText.text = string.Format("体力 {0}/100\n生命 {1}/{2}\n内力 {3}/{4}", role.Tili, role.Hp, role.MaxHp, role.Mp, role.MaxMp);

        Jyx2ResourceHelper.GetRoleHeadSprite(role, m_Head);
    }
Пример #5
0
    /// <summary>
    /// 获取角色的移动范围
    /// </summary>
    /// <param name="role"></param>
    public List <BattleBlockVector> GetMoveRange(RoleInstance role)
    {
        //获得角色移动能力
        int moveAbility = role.GetMoveAbility();
        //绘制周围的移动格子
        var blockList = rangeLogic.GetMoveRange(role.Pos.X, role.Pos.Y, moveAbility);

        return(blockList);
    }
        public override int GetHashCode()
        {
            int result = DeploymentId != null?DeploymentId.GetHashCode() : 0;

            result = 31 * result + (Role != null ? Role.GetHashCode() : 0);
            result = 31 * result + (RoleInstance != null ? RoleInstance.GetHashCode() : 0);
            result = 31 * result + (CounterName != null ? CounterName.GetHashCode() : 0);
            result = 31 * result + (int)(_eventTickCount ^ (_eventTickCount >> 32));
            return(result);
        }
Пример #7
0
    /// <summary>
    /// 通过角色Key创建角色数据示例
    /// </summary>
    public static RoleInstance CreateRoleInstance(string roleKey)
    {
        RoleInstance role = new RoleInstance(roleKey);

        if (MapRuntimeData.Instance != null)
        {
            MapRuntimeData.Instance.AddMapRole(role);
        }
        return(role);
    }
Пример #8
0
    string GetSkillText(RoleInstance role)
    {
        StringBuilder sb = new StringBuilder();

        foreach (var skill in role.Wugongs)
        {
            sb.AppendLine(skill.Name + " " + skill.GetLevel());
        }
        return(sb.ToString());
    }
Пример #9
0
    public override void OnEnterState()
    {
        role        = BattleStateMechine.Instance.CurrentRole;
        battleModel = BattleManager.Instance.GetModel();

        //显示移动范围
        BattleboxHelper.Instance.ShowBlocks(BattleStateMechine.Instance.CurrentMoveList);
        //显示技能动作面板
        Jyx2_UIManager.Instance.ShowUI("BattleActionUIPanel", role, BattleManager.BattleViewStates.SelectMove);
    }
Пример #10
0
    public void Show(RoleInstance role, bool forceChecked, Action clickCallback)
    {
        ForceChecked   = forceChecked;
        _role          = role;
        _clickCallback = clickCallback;

        Jyx2ResourceHelper.GetRoleHeadSprite(role, headImage);

        IsChecked = forceChecked;
    }
Пример #11
0
    public static Jyx2RoleHeadUI Create(RoleInstance role, bool forceChecked, Action clickCallback)
    {
        var prefab = Jyx2ResourceHelper.GetCachedPrefab("Assets/Prefabs/Jyx2RoleHeadUI.prefab");

        var obj    = Instantiate(prefab);
        var itemUI = obj.GetComponent <Jyx2RoleHeadUI>();

        itemUI.Show(role, forceChecked, clickCallback);
        return(itemUI);
    }
Пример #12
0
        /// <summary>
        /// Get the instance named for the specified Azure role instance
        /// </summary>
        /// <param name="roleInstance">Azure role instance information</param>
        /// <returns>Instance name for this role</returns>
        public static string GetInstanceName(RoleInstance roleInstance)
        {
            // Try to remove the deploymentId part of the instanceId, if it is there.
            // The goal is mostly to remove undesired characters that are being added to deploymentId when run in Azure emulator.
            // Notice that we should use RoleEnvironment.DeploymentId and not the deploymentId that is being passed to us by the user,
            // since in general this may be an arbitrary string and thus we will not remove the RoleEnvironment.DeploymentId correctly.
            string deploymentId = RoleEnvironment.DeploymentId;
            string instanceId   = roleInstance.Id;

            return(GetInstanceNameInternal(deploymentId, instanceId));
        }
Пример #13
0
    /// <summary>
    /// 原地休息
    /// </summary>
    /// <param name="sprite">Sprite.</param>
    public AIResult Rest(RoleInstance sprite)
    {
        AIResult rst = new AIResult
        {
            MoveX  = sprite.Pos.X,
            MoveY  = sprite.Pos.Y,
            IsRest = true
        };

        return(rst);
    }
Пример #14
0
    void FillBeHitEnemeyGameObject(List <BattleBlockVector> rangeList)
    {
        hitGoList.Clear();
        List <RoleInstance> result = BattleManager.Instance.GetRoleInSkillRange(zhaoshi, rangeList, role.team);

        for (int i = 0; i < result.Count; i++)
        {
            RoleInstance role = result[i];
            hitGoList.Add(role.View.gameObject);
        }
    }
Пример #15
0
 float castAnimLenght = 0.5f;//使用物品动画时间1s
 public override void OnEnterState()
 {
     currentRole = BattleStateMechine.Instance.CurrentRole;
     currentItem = BattleStateMechine.Instance.CurrentUseItem;
     if (currentRole == null || currentItem == null)
     {
         GameUtil.LogError("使用物品状态错误");
         return;
     }
     UseItem();
 }
Пример #16
0
 static public void GetSprite(RoleInstance role, Action <Sprite> callback)
 {
     if (role.Key == GameRuntimeData.Instance.Player.Key)
     {
         GetRoleHeadSprite(GameRuntimeData.Instance.Player.HeadAvata, callback);
     }
     else
     {
         GetRoleHeadSprite(role.HeadAvata, callback);
     }
 }
Пример #17
0
    //获取技能的使用范围
    public List <BattleBlockVector> GetSkillUseRange(RoleInstance role, BattleZhaoshiInstance zhaoshi)
    {
        int castSize  = zhaoshi.GetCastSize();
        var coverType = zhaoshi.GetCoverType();
        var sx        = role.Pos.X;
        var sy        = role.Pos.Y;

        //绘制周围的攻击格子
        var blockList = rangeLogic.GetSkillCastBlocks(sx, sy, zhaoshi, role);

        return(blockList);
    }
Пример #18
0
 protected void Update(TB_Role role)
 {
     RoleInstance.Update(f => f.id == role.id, action =>
     {
         action.Delete          = role.Delete;
         action.Description     = role.Description;
         action.IsAdministrator = role.IsAdministrator;
         action.IsDefault       = role.IsDefault;
         action.Name            = role.Name;
         action.Permission      = role.Permission;
     });
 }
Пример #19
0
        public static Interface GetEndpointService <Interface>(String serviceUri)
        {
            RoleInstance         role     = WebServiceUtils.GetRandomWorkerInstance();
            RoleInstanceEndpoint endpoint = role.InstanceEndpoints[SERVICE_ENDPOINT_NAME];
            NetTcpBinding        binding  = new NetTcpBinding(SecurityMode.None, false);
            EndpointAddress      address  = new EndpointAddress(String.Format(serviceUri, endpoint.IPEndpoint));
            // actually open
            ChannelFactory <Interface> factory = new ChannelFactory <Interface>(binding, address);
            Interface client = factory.CreateChannel();

            return(client);
        }
Пример #20
0
        private static RoleInstance GetRandomWorkerInstance()
        {
            RoleInstance selectedInstance     = null;
            ICollection <RoleInstance> values = RoleEnvironment.Roles["SalesAdvisorWorkerRole"].Instances;

            if (values.Count() > 0)
            {
                Random rnd = new Random();
                selectedInstance = values.ElementAt <RoleInstance>(rnd.Next(values.Count()));
            }
            return(selectedInstance);
        }
Пример #21
0
    protected override void OnShowPanel(params object[] allParams)
    {
        base.OnShowPanel(allParams);
        m_currentRole = allParams[0] as RoleInstance;
        if (allParams.Length > 1)
        {
            m_roleList = allParams[1] as List <RoleInstance>;
        }

        RefreshScrollView();
        RefreshCurrent();
    }
Пример #22
0
        private T CreateVMContext <T>(string serviceName, Role vmRole, RoleInstance roleInstance, DeploymentGetResponse deployment)
            where T : PersistentVMRoleContext, new()
        {
            var vmContext = new T
            {
                ServiceName         = serviceName,
                DeploymentName      = deployment.Name,
                DNSName             = deployment.Uri.AbsoluteUri,
                Name                = vmRole.RoleName,
                AvailabilitySetName = vmRole.AvailabilitySetName,
                Label               = vmRole.Label,
                InstanceSize        = vmRole.RoleSize,
                InstanceStatus      = roleInstance == null ? string.Empty : roleInstance.InstanceStatus,
                IpAddress           = roleInstance == null ? string.Empty : roleInstance.IPAddress,
                PublicIPAddress     = roleInstance == null ? null
                                            : roleInstance.PublicIPs == null || !roleInstance.PublicIPs.Any() ? null
                                            : roleInstance.PublicIPs.First().Address,
                PublicIPName = roleInstance == null ? null
                                            : roleInstance.PublicIPs == null || !roleInstance.PublicIPs.Any() ? null
                                            : !string.IsNullOrEmpty(roleInstance.PublicIPs.First().Name) ? roleInstance.PublicIPs.First().Name
                                            : PersistentVMHelper.GetPublicIPName(vmRole),
                InstanceStateDetails = roleInstance == null ? string.Empty : roleInstance.InstanceStateDetails,
                PowerState           = roleInstance == null ? string.Empty : roleInstance.PowerState.ToString(),
                InstanceErrorCode    = roleInstance == null ? string.Empty : roleInstance.InstanceErrorCode,
                InstanceName         = roleInstance == null ? string.Empty : roleInstance.InstanceName,
                InstanceFaultDomain  = roleInstance == null ? string.Empty : roleInstance.InstanceFaultDomain.HasValue
                                                                                  ? roleInstance.InstanceFaultDomain.Value.ToString(CultureInfo.InvariantCulture) : null,
                InstanceUpgradeDomain = roleInstance == null ? string.Empty : roleInstance.InstanceUpgradeDomain.HasValue
                                                                                  ? roleInstance.InstanceUpgradeDomain.Value.ToString(CultureInfo.InvariantCulture) : null,
                Status                      = roleInstance == null ? string.Empty : roleInstance.InstanceStatus,
                GuestAgentStatus            = roleInstance == null ? null : Mapper.Map <PVM.GuestAgentStatus>(roleInstance.GuestAgentStatus),
                ResourceExtensionStatusList = roleInstance == null ? null : Mapper.Map <List <PVM.ResourceExtensionStatus> >(roleInstance.ResourceExtensionStatusList),
                OperationId                 = deployment.RequestId,
                OperationStatus             = deployment.StatusCode.ToString(),
                OperationDescription        = CommandRuntime.ToString(),
                VM = new PersistentVM
                {
                    AvailabilitySetName = vmRole.AvailabilitySetName,
                    Label    = vmRole.Label,
                    RoleName = vmRole.RoleName,
                    RoleSize = vmRole.RoleSize,
                    RoleType = vmRole.RoleType,
                    DefaultWinRmCertificateThumbprint = vmRole.DefaultWinRmCertificateThumbprint,
                    ProvisionGuestAgent         = vmRole.ProvisionGuestAgent,
                    ResourceExtensionReferences = Mapper.Map <PVM.ResourceExtensionReferenceList>(vmRole.ResourceExtensionReferences),
                    DataVirtualHardDisks        = Mapper.Map <Collection <PVM.DataVirtualHardDisk> >(vmRole.DataVirtualHardDisks),
                    OSVirtualHardDisk           = Mapper.Map <PVM.OSVirtualHardDisk>(vmRole.OSVirtualHardDisk),
                    ConfigurationSets           = PersistentVMHelper.MapConfigurationSets(vmRole.ConfigurationSets)
                }
            };

            return(vmContext);
        }
Пример #23
0
    void DoSwitchRoleModel()
    {
        var role = new RoleInstance(PlayerRoleId.ToString());

        player.BindRoleInstance(role, () =>
        {
            var animator = player.GetAnimator();
            animator.runtimeAnimatorController = player.GetComponent <Animator>().runtimeAnimatorController; //force set animator

            SwitchSkillPose();
        });
    }
Пример #24
0
        /// <summary>
        /// List details of the specified role instance
        /// </summary>
        /// <param name="instance">role instance to be listed</param>
        public static void ListRoleInstanceDetails(RoleInstance instance)
        {
            if (instance == null)
            {
                throw new ArgumentNullException("instance", "No RoleInstance data provided");
            }

            Trace.TraceInformation("Role={0} Instance: Id={1} FaultDomain={2} UpdateDomain={3}",
                                   instance.Role.Name, instance.Id, instance.FaultDomain, instance.UpdateDomain);

            ListRoleInstanceEndpoints(instance);
        }
Пример #25
0
        public static Uri GetInternalServiceUri(RoleInstance instance)
        {
            var endpoint = instance.InstanceEndpoints[InternalServiceEndpointName];
            var ub       = new UriBuilder
            {
                Host   = endpoint.IPEndpoint.Address.ToString(),
                Port   = endpoint.IPEndpoint.Port,
                Scheme = "net.tcp",
            };

            return(ub.Uri);
        }
Пример #26
0
        private T GetContext <T>(
            string serviceName,
            Role vmRole,
            RoleInstance roleInstance,
            DeploymentGetResponse deployment)
            where T : PersistentVMRoleContext, new()
        {
            var vmContext = new T
            {
                ServiceName                 = serviceName,
                Name                        = vmRole.RoleName,
                DeploymentName              = deployment.Name,
                AvailabilitySetName         = vmRole.AvailabilitySetName,
                Label                       = vmRole.Label,
                InstanceSize                = vmRole.RoleSize.ToString(),
                InstanceStatus              = roleInstance.InstanceStatus,
                IpAddress                   = roleInstance.IPAddress,
                InstanceStateDetails        = roleInstance.InstanceStateDetails,
                PowerState                  = roleInstance.PowerState.ToString(),
                InstanceErrorCode           = roleInstance.InstanceErrorCode,
                InstanceName                = roleInstance.InstanceName,
                InstanceFaultDomain         = roleInstance.InstanceFaultDomain.HasValue ? roleInstance.InstanceFaultDomain.Value.ToString(CultureInfo.InvariantCulture) : null,
                InstanceUpgradeDomain       = roleInstance.InstanceUpgradeDomain.HasValue ? roleInstance.InstanceUpgradeDomain.Value.ToString(CultureInfo.InvariantCulture) : null,
                Status                      = roleInstance.InstanceStatus,
                OperationDescription        = CommandRuntime.ToString(),
                OperationId                 = deployment.RequestId,
                OperationStatus             = deployment.StatusCode.ToString(),
                GuestAgentStatus            = Mapper.Map <PVM.GuestAgentStatus>(roleInstance.GuestAgentStatus),
                ResourceExtensionStatusList = Mapper.Map <List <PVM.ResourceExtensionStatus> >(roleInstance.ResourceExtensionStatusList),
                VM = new PersistentVM
                {
                    AvailabilitySetName  = vmRole.AvailabilitySetName,
                    ConfigurationSets    = PersistentVMHelper.MapConfigurationSets(vmRole.ConfigurationSets),
                    DataVirtualHardDisks = Mapper.Map(vmRole.DataVirtualHardDisks, new Collection <DataVirtualHardDisk>()),
                    Label             = vmRole.Label,
                    OSVirtualHardDisk = Mapper.Map(vmRole.OSVirtualHardDisk, new OSVirtualHardDisk()),
                    RoleName          = vmRole.RoleName,
                    RoleSize          = vmRole.RoleSize.ToString(),
                    RoleType          = vmRole.RoleType,
                    DefaultWinRmCertificateThumbprint = vmRole.DefaultWinRmCertificateThumbprint,
                    ProvisionGuestAgent         = vmRole.ProvisionGuestAgent,
                    ResourceExtensionReferences = Mapper.Map <PVM.ResourceExtensionReferenceList>(vmRole.ResourceExtensionReferences)
                }
            };

            if (deployment != null)
            {
                vmContext.DNSName = deployment.Uri.AbsoluteUri;
            }

            return(vmContext);
        }
Пример #27
0
 private static bool IsRoleAlive(RoleInstance instance)
 {
     try
     {
         var channelFactory = new ChannelFactory <ITenantService>(new NetTcpBinding());
         var channel        = channelFactory.CreateChannel(new EndpointAddress(GetLeaderInternalServiceAddress()));
         return(channel.IsAlive());
     }
     catch (EndpointNotFoundException e)
     {
         return(false);
     }
 }
Пример #28
0
        /// <summary>
        /// Get IP address of specified role instance.
        /// </summary>
        /// <param name="instance">role instance</param>
        /// <returns>
        /// Return IP address if AllPorts endpoint is declared. Otherwise, return empty (not expected).
        /// </returns>
        private static string GetRoleInstanceAddress(RoleInstance instance)
        {
            RoleInstanceEndpoint endpoint;

            if (instance.InstanceEndpoints.TryGetValue(SchedulerEndpointNames.AllPorts, out endpoint))
            {
                return(endpoint.IPEndpoint.Address.ToString());
            }
            else
            {
                return(string.Empty);
            }
        }
Пример #29
0
        /// <summary>
        /// Updates the ARR server farm based on instances of the current role.
        /// </summary>
        private static void UpdateFarm(string serverEndpointName, Boolean enableAffinity)
        {
            // Get the list of server endpoints for every instance in the role.
            List <IPEndPoint> serverEndpoints = new List <IPEndPoint>();

            if (enableAffinity) // Iterate throw all roles if we need to enable affinity
            {
                foreach (RoleInstance instance in RoleEnvironment.CurrentRoleInstance.Role.Instances)
                {
                    RoleInstanceEndpoint serverEndpoint;
                    if (!instance.InstanceEndpoints.TryGetValue(serverEndpointName, out serverEndpoint))
                    {
                        throw new InvalidOperationException("Invalid server endpoint name");
                    }

                    serverEndpoints.Add(serverEndpoint.IPEndpoint);
                }
            }
            else
            {
                RoleInstance         instance = RoleEnvironment.CurrentRoleInstance;
                RoleInstanceEndpoint serverEndpoint;
                if (!instance.InstanceEndpoints.TryGetValue(serverEndpointName, out serverEndpoint))
                {
                    throw new InvalidOperationException("Invalid server endpoint name");
                }

                serverEndpoints.Add(serverEndpoint.IPEndpoint);
            }

            // Update the webfarm with the list of endpoints.
            using (ServerManager sm = new ServerManager())
            {
                ConfigurationElementCollection farm = GetFarmElement(sm, serverEndpointName, enableAffinity).GetCollection();

                // Remove all server elements from the farm.
                farm.Clear();

                // Add each endpoint to the farm.
                foreach (IPEndPoint endPoint in serverEndpoints)
                {
                    ConfigurationElement server = farm.CreateElement("server");
                    server.SetAttributeValue("address", endPoint.Address.ToString());
                    server.SetAttributeValue("enabled", true);
                    server.GetChildElement("applicationRequestRouting").SetAttributeValue("httpPort", endPoint.Port);
                    farm.Add(server);
                }

                sm.CommitChanges();
            }
        }
Пример #30
0
    List <Jyx2Item> GetAvailableItems(RoleInstance role, int itemType)
    {
        List <Jyx2Item> items = new List <Jyx2Item>();

        foreach (var item in role.Items)
        {
            var tmp = ConfigTable.Get <Jyx2Item>(item.Id);
            if (tmp.ItemType == itemType)
            {
                items.Add(tmp);
            }
        }
        return(items);
    }
Пример #31
0
        private RoleInstanceEndpoint GetEndpointInfo(RoleInstance roleInstance, string endpointName)
        {
            try
            {
                return(roleInstance.InstanceEndpoints[endpointName]);
            }
            catch (Exception exc)
            {
                var errorMsg = string.Format("Unable to obtain endpoint info for role {0} from role config parameter {1} -- Endpoints defined = [{2}]",
                                             roleInstance.Role.Name, endpointName, string.Join(", ", roleInstance.InstanceEndpoints));

                logger.Error(ErrorCode.SiloEndpointConfigError, errorMsg, exc);
                throw new OrleansException(errorMsg, exc);
            }
        }
Пример #32
0
    public static void Create(RoleInstance role, List <RoleInstance> roles, Transform parent)
    {
        var obj = Jyx2ResourceHelper.CreatePrefabInstance("Assets/Prefabs/XiakePanel.prefab");

        obj.transform.SetParent(parent);

        var rt = obj.GetComponent <RectTransform>();

        rt.localPosition = Vector3.zero;
        rt.localScale    = Vector3.one;

        var xiakePanelUI = obj.GetComponent <XiakePanelUI>();

        xiakePanelUI.Show(role, roles);
    }
Пример #33
0
 private void AddClient(RoleInstance workerInstance)
 {
     var binding = new BasicHttpContextBinding
                       {
                           TransferMode = TransferMode.StreamedResponse,
                           MaxReceivedMessageSize = Int32.MaxValue,
                           SendTimeout = TimeSpan.FromMinutes(10),
                           ReaderQuotas = XmlDictionaryReaderQuotas.Max,
                           HostNameComparisonMode = HostNameComparisonMode.Exact
                       };
     var endpointUri = String.Format("http://{0}", workerInstance.InstanceEndpoints["StoreWorkerService"].IPEndpoint);
     var endpointAddress = new EndpointAddress(endpointUri);
     var client = new StoreWorkerServiceClient(binding, endpointAddress);
     lock (_clients)
     {
         _clients.RemoveAll(t => t.Item1.Equals(workerInstance.Id));
         _clients.Add(new Tuple<string, IStoreWorkerService>(workerInstance.Id, client));
     }
 }
        public AzureReplicaSetConfiguration(RoleInstance roleInstance, string replicaSetName, IPEndPoint endPoint)
        {
            Name = replicaSetName;
            Nodes = new List<ReplicaSetNodeConfiguration>();

            var roleName = roleInstance.Role.Name;

            foreach (var instance in RoleEnvironment.Roles[roleName].Instances)
            {
                var ip = AzureRoleHelper.GetEndPoint(instance, SettingsHelper.MongodPortKey);
                var id = AzureRoleHelper.ParseNodeInstanceId(instance.Id);
                Nodes.Add(new ReplicaSetNodeConfiguration
                              {
                                  Id = id.ToString(),
                                  EndPoint = ip,
                                  Current = ip.Equals(endPoint),
                              });
            }
        }
        private static string GetEndpointUrl( RoleInstance roleInstance,string endpointName )
        {
            RoleInstanceEndpoint endpoint = null;

            if (roleInstance.InstanceEndpoints.TryGetValue(endpointName, out endpoint))
            {
                return EndpointToUrl(endpoint);
            }

            var endpointConfigurationSettingsKey = roleInstance.Role.Name + "." + endpointName;

            try
            {
                // This is very nasty but apparently there is no other way as of Azure SDK 1.5 
                return RoleEnvironment.GetConfigurationSettingValue(roleInstance.Role.Name + "." + endpointName);
            }
            catch (RoleEnvironmentException ex)
            {
                throw new InvalidOperationException(string.Format("Unable to read endpoint url from configuration, endpoint: {0}, key: {1}, role: {2}, current role: {3}",endpointName,endpointConfigurationSettingsKey,roleInstance.Role.Name,RoleEnvironment.CurrentRoleInstance.Role.Name),ex);
            }
        }
	    /// <summary>
	   /// Get Azure RoleInstance IP
	   /// </summary>
	   /// <param name="ri"></param>
	   /// <returns></returns>
	   private static string GetInternalIP(RoleInstance ri)
	   {
		  var internalEndpoint = ri.InstanceEndpoints["SitefinityInternalEndpoint"];
		  if (internalEndpoint != null)
		  {
			 return internalEndpoint.IPEndpoint.Address.ToString();
		  }
		  else
		  {
			 return String.Empty;
		  }
	   }
Пример #37
0
        private Uri GetUri(RoleInstance roleInstance)
        {
            if (roleInstance == null)
            {
                throw new ArgumentOutOfRangeException("Roleinstance cannot be found");
            }
            if (roleInstance.InstanceEndpoints == null)
            {
                throw new ArgumentOutOfRangeException(string.Format("No endpoint found for the VM: {0}", roleInstance.RoleName));
            }
            var winRmEndPoint = roleInstance.InstanceEndpoints.FirstOrDefault(i => i.LocalPort == WinRMConstants.HttpsListenerPort);
            if (winRmEndPoint == null)
            {
                return null;
            }

            var builder = new UriBuilder(CurrentDeployment.Url)
            {
                Port = winRmEndPoint.PublicPort,
                Scheme = "https"
            };
            var uri = builder.Uri;
            return uri;
        }
Пример #38
0
        private static IPEndPoint GetEndpoint(RoleInstance instance, bool bMaster)
        {
            IPEndPoint endpoint;

            RoleInfoDataSource rids = new RoleInfoDataSource();

            if (bMaster)
                endpoint = rids.GetMasterEndpoint();
            else
                endpoint = rids.GetSlaveEndpoint(instance.Id);

            if (!CheckEndpoint(endpoint))
                return null;

            return endpoint;
        }
Пример #39
0
        /// <summary>
        /// Determines the server address of the MongoDB instance running on the given instance.
        /// </summary>
        public static MongoServerAddress GetServerAddress(RoleInstance instance)
        {
            int instanceId = ParseNodeInstanceId(instance.Id);
            IPEndPoint endpoint = instance.InstanceEndpoints[Constants.MongodPortSetting].IPEndpoint;

            if (RoleEnvironment.IsEmulated)
            {
                // When running in the Azure emulator, the mongod instances are
                // all running on localhost, with sequentially increasing port
                // numbers.
                return new MongoServerAddress("localhost", endpoint.Port + instanceId);
            }
            else
            {
                return new MongoServerAddress(ConnectionUtilities.GetNodeAlias(
                    ConnectionUtilities.GetReplicaSetName(), instanceId),
                    endpoint.Port);
            }
        }
 public RoleInstanceWrapper(RoleInstance roleInstance)
 {
     this.roleInstance = roleInstance;
 }
Пример #41
0
        private Uri GetUri(RoleInstance roleInstance)
        {
            if (roleInstance == null)
            {
                throw new ArgumentOutOfRangeException(Resources.RoleInstanceCanNotBeFound);
            }
            
            if (roleInstance.InstanceEndpoints == null)
            {
                throw new ArgumentOutOfRangeException(string.Format(Resources.NoEndpointFoundForVM, roleInstance.RoleName));
            }
            var winRmEndPoint = roleInstance.InstanceEndpoints.FirstOrDefault(i => i.LocalPort == WinRMConstants.HttpsListenerPort);
            if (winRmEndPoint == null)
            {
                return null;
            }

            var builder = new UriBuilder(CurrentDeploymentNewSM.Uri)
            {
                Port = winRmEndPoint.Port,
                Scheme = "https"
            };
            var uri = builder.Uri;
            return uri;
        }
        private IStatusService GetStatusServiceClientForInstance(RoleInstance instance)
        {
            try
            {
                NetTcpBinding binding = new NetTcpBinding(SecurityMode.None);
                var factory = new ChannelFactory<IStatusService>(binding);

                var endpoint = instance.InstanceEndpoints["PluginStatus"];
                EndpointAddress address = new EndpointAddress(String.Format("net.tcp://{0}/PluginStatus", endpoint.IPEndpoint));
                return factory.CreateChannel(address);
            }
            catch(Exception ex)
            {
                tangible.Azure.Tracing.Trace.TraceAndLogError("StatusPage", "Error getting status service client for " + instance.Id + ": " + ex.ToString());
                return null;
            }
        }