Esempio n. 1
0
        public SPServiceApplicationProxy CreateProxy(string name, SPServiceApplication serviceApplication, SPServiceProvisioningContext provisioningContext)
        {
            if (serviceApplication.GetType() != typeof(NodeServiceApplication))
            {
                throw new NotSupportedException();
            }
            if (serviceApplication == null)
            {
                throw new ArgumentNullException("serviceApplication");
            }

            // Verify the service proxy exists.
            NodeServiceProxy serviceProxy = (NodeServiceProxy)this.Farm.GetObject(name, this.Farm.Id, typeof(NodeServiceProxy));
            if (serviceProxy == null)
                throw new InvalidOperationException("NodeServiceProxy does not exist in the farm.");

            // If the application proxy doesn't exist, create it.
            NodeServiceApplicationProxy applicationProxy = serviceProxy.ApplicationProxies.GetValue<NodeServiceApplicationProxy>(name);
            if (applicationProxy == null)
            {
                Uri serviceAppAddress = ((NodeServiceApplication)serviceApplication).Uri;
                applicationProxy = new NodeServiceApplicationProxy(name, serviceProxy, serviceAppAddress);
            }

            return applicationProxy;
        }
Esempio n. 2
0
        private void CreateServiceApplicationProxy(NodeServiceApplication serviceApp)
        {
            // get reference to the installed service proxy
            NodeServiceProxy serviceProxy = SPFarm.Local.ServiceProxies.GetValue <NodeServiceProxy>();

            // create service app proxy
            NodeServiceApplicationProxy serviceAppProxy = new NodeServiceApplicationProxy(
                ServiceAppName.Text + " Proxy",
                serviceProxy,
                serviceApp.Uri);

            serviceAppProxy.Update(true);

            // provision service app proxy
            serviceAppProxy.Provision();

            // start it if it isn't already started
            if (serviceAppProxy.Status != SPObjectStatus.Online)
            {
                serviceAppProxy.Status = SPObjectStatus.Online;
            }

            serviceAppProxy.Update(true);

            // add the proxy to the default group if selected
            if (DefaultServiceApp.Checked)
            {
                SPServiceApplicationProxyGroup defaultGroup = SPServiceApplicationProxyGroup.Default;
                defaultGroup.Add(serviceAppProxy);
                defaultGroup.Update(true);
            }
        }
Esempio n. 3
0
        protected override void InternalProcessRecord()
        {
            // ensure can hit farm
            SPFarm farm = SPFarm.Local;

            if (farm == null)
            {
                ThrowTerminatingError(new InvalidOperationException("SharePoint farm not found."), ErrorCategory.ResourceUnavailable, this);
                SkipProcessCurrentRecord();
            }

            // ensure proxy installed
            NodeServiceProxy serviceProxy = farm.ServiceProxies.GetValue <NodeServiceProxy>();

            if (serviceProxy == null)
            {
                ThrowTerminatingError(new InvalidOperationException("Glyma Node Service Proxy not found (likely not installed)."), ErrorCategory.NotInstalled, this);
                SkipProcessCurrentRecord();
            }

            // ensure can hit service application
            NodeServiceApplicationProxy existingServiceAppProxy = serviceProxy.ApplicationProxies.GetValue <NodeServiceApplicationProxy>();

            if (existingServiceAppProxy != null)
            {
                ThrowTerminatingError(new InvalidOperationException("Glyma Node Service Application Proxy already exists."), ErrorCategory.ResourceExists, this);
                SkipProcessCurrentRecord();
            }

            Uri serviceApplicationAddress = null;

            if (ParameterSetName == "Uri")
            {
                serviceApplicationAddress = _uri;
            }
            else if (ParameterSetName == "ServiceApplication")
            {
                // make sure can get a refernce to service app
                SPServiceApplication serviceApp = ServiceApplication.Read();
                if (serviceApp == null)
                {
                    WriteError(new InvalidOperationException("Service application not found."), ErrorCategory.ResourceExists, serviceApp);
                    SkipProcessCurrentRecord();
                }

                // make sure can connect to service app
                ISharedServiceApplication sharedServiceApp = serviceApp as ISharedServiceApplication;
                if (sharedServiceApp == null)
                {
                    WriteError(new InvalidOperationException("Service application not found."), ErrorCategory.ResourceExists, serviceApp);
                    SkipProcessCurrentRecord();
                }

                serviceApplicationAddress = sharedServiceApp.Uri;
            }
            else
            {
                ThrowTerminatingError(new InvalidOperationException("Invalid parameter set."), ErrorCategory.InvalidArgument, this);
            }

            // create the service app proxy
            if ((serviceApplicationAddress != null) && ShouldProcess(this.Name))
            {
                NodeServiceApplicationProxy serviceAppProxy = new NodeServiceApplicationProxy(
                    this.Name,
                    serviceProxy,
                    serviceApplicationAddress);

                // provision the service app proxy
                serviceAppProxy.Provision();

                // add the service app proxy to the default service application proxy group
                SPServiceApplicationProxyGroup defaultGroup = SPServiceApplicationProxyGroup.Default;
                defaultGroup.Add(serviceAppProxy);
                defaultGroup.Update(true);

                // pass service app proxy back to the PowerShell
                WriteObject(serviceAppProxy);
            }
        }
Esempio n. 4
0
        private void CreateServiceApplicationProxy(NodeServiceApplication serviceApp)
        {
            // get reference to the installed service proxy
            NodeServiceProxy serviceProxy = SPFarm.Local.ServiceProxies.GetValue<NodeServiceProxy>();

            // create service app proxy
            NodeServiceApplicationProxy serviceAppProxy = new NodeServiceApplicationProxy(
                ServiceAppName.Text + " Proxy",
                serviceProxy,
                serviceApp.Uri);
            serviceAppProxy.Update(true);

            // provision service app proxy
            serviceAppProxy.Provision();

            // start it if it isn't already started
            if (serviceAppProxy.Status != SPObjectStatus.Online)
            {
                serviceAppProxy.Status = SPObjectStatus.Online;
            }

            serviceAppProxy.Update(true);

            // add the proxy to the default group if selected
            if (DefaultServiceApp.Checked)
            {
                SPServiceApplicationProxyGroup defaultGroup = SPServiceApplicationProxyGroup.Default;
                defaultGroup.Add(serviceAppProxy);
                defaultGroup.Update(true);
            }
        }
        protected override void InternalProcessRecord()
        {
            // ensure can hit farm
            SPFarm farm = SPFarm.Local;
            if (farm == null)
            {
                ThrowTerminatingError(new InvalidOperationException("SharePoint farm not found."), ErrorCategory.ResourceUnavailable, this);
                SkipProcessCurrentRecord();
            }

            // ensure proxy installed
            NodeServiceProxy serviceProxy = farm.ServiceProxies.GetValue<NodeServiceProxy>();
            if (serviceProxy == null)
            {
                ThrowTerminatingError(new InvalidOperationException("Glyma Node Service Proxy not found (likely not installed)."), ErrorCategory.NotInstalled, this);
                SkipProcessCurrentRecord();
            }

            // ensure can hit service application
            NodeServiceApplicationProxy existingServiceAppProxy = serviceProxy.ApplicationProxies.GetValue<NodeServiceApplicationProxy>();
            if (existingServiceAppProxy != null)
            {
                ThrowTerminatingError(new InvalidOperationException("Glyma Node Service Application Proxy already exists."), ErrorCategory.ResourceExists, this);
                SkipProcessCurrentRecord();
            }

            Uri serviceApplicationAddress = null;
            if (ParameterSetName == "Uri")
            {
                serviceApplicationAddress = _uri;
            }
            else if (ParameterSetName == "ServiceApplication")
            {
                // make sure can get a refernce to service app
                SPServiceApplication serviceApp = ServiceApplication.Read();
                if (serviceApp == null)
                {
                    WriteError(new InvalidOperationException("Service application not found."), ErrorCategory.ResourceExists, serviceApp);
                    SkipProcessCurrentRecord();
                }

                // make sure can connect to service app
                ISharedServiceApplication sharedServiceApp = serviceApp as ISharedServiceApplication;
                if (sharedServiceApp == null)
                {
                    WriteError(new InvalidOperationException("Service application not found."), ErrorCategory.ResourceExists, serviceApp);
                    SkipProcessCurrentRecord();
                }

                serviceApplicationAddress = sharedServiceApp.Uri;
            }
            else
                ThrowTerminatingError(new InvalidOperationException("Invalid parameter set."), ErrorCategory.InvalidArgument, this);

            // create the service app proxy
            if ((serviceApplicationAddress != null) && ShouldProcess(this.Name))
            {
                NodeServiceApplicationProxy serviceAppProxy = new NodeServiceApplicationProxy(
                    this.Name,
                    serviceProxy,
                    serviceApplicationAddress);

                // provision the service app proxy
                serviceAppProxy.Provision();

                // add the service app proxy to the default service application proxy group
                SPServiceApplicationProxyGroup defaultGroup = SPServiceApplicationProxyGroup.Default;
                defaultGroup.Add(serviceAppProxy);
                defaultGroup.Update(true);

                // pass service app proxy back to the PowerShell
                WriteObject(serviceAppProxy);
            }
        }