lithnet / miis-autosync Goto Github PK
View Code? Open in Web Editor NEWLithnet AutoSync for Microsoft Identity Manager
Home Page: https://lithnet.io
License: MIT License
Lithnet AutoSync for Microsoft Identity Manager
Home Page: https://lithnet.io
License: MIT License
8/08/2017 8:28:04 AM: ZAVip: DS returned success
8/08/2017 8:28:08 AM: FIMService: Executing DS
8/08/2017 8:28:09 AM: FIMService: DS returned success
8/08/2017 8:28:13 AM: Current config has been set
8/08/2017 8:28:13 AM: MonashAD: Executing DS
8/08/2017 8:28:14 AM: MonashAD: DS returned success
8/08/2017 8:28:14 AM: Waiting for executors to stop
8/08/2017 8:28:14 AM: ACMA: Stopping MAExecutor
8/08/2017 8:28:14 AM: FIMService: Stopping MAExecutor
8/08/2017 8:28:14 AM: FIMService: Stopped execution triggers
8/08/2017 8:28:14 AM: FIMService: Waiting for cancellation to complete
8/08/2017 8:28:14 AM: ACMA: Stopped execution triggers
8/08/2017 8:28:14 AM: ACMA: Waiting for cancellation to complete
8/08/2017 8:28:14 AM: JMSSStudentDB: Stopping MAExecutor
8/08/2017 8:28:14 AM: JMSSStudentDB: Stopped execution triggers
8/08/2017 8:28:14 AM: MonashCallista: Stopping MAExecutor
8/08/2017 8:28:14 AM: MonashCallista: Stopped execution triggers
8/08/2017 8:28:14 AM: MonashLDS: Stopping MAExecutor
8/08/2017 8:28:14 AM: MonashLDS: Stopped execution triggers
8/08/2017 8:28:14 AM: MonashLDS: Waiting for cancellation to complete
8/08/2017 8:28:14 AM: FIMService: Cancellation completed
8/08/2017 8:28:14 AM: MonashSap: Stopping MAExecutor
8/08/2017 8:28:14 AM: MonashSap: Stopped execution triggers
8/08/2017 8:28:14 AM: MonashSap: Waiting for cancellation to complete
8/08/2017 8:28:14 AM: MonashAD: Stopping MAExecutor
8/08/2017 8:28:14 AM: ZAVip: Stopping MAExecutor
8/08/2017 8:28:14 AM: ZAVip: Stopped execution triggers
8/08/2017 8:28:14 AM: ZAVip: Waiting for cancellation to complete
8/08/2017 8:28:14 AM: MonashSap: Cancellation completed
8/08/2017 8:28:14 AM: MonashAD: Stopped execution triggers
8/08/2017 8:28:14 AM: MonashGoogleApps: Stopping MAExecutor
8/08/2017 8:28:14 AM: MonashGoogleApps: Stopped execution triggers
8/08/2017 8:28:14 AM: MonashGoogleApps: Waiting for cancellation to complete
8/08/2017 8:28:14 AM: MonashLDS: Cancellation completed
8/08/2017 8:28:14 AM: ZAVip: Cancellation completed
8/08/2017 8:28:14 AM: MonashGoogleApps: Cancellation completed
8/08/2017 8:29:44 AM: Timeout waiting for executors to stop
8/08/2017 8:29:44 AM: An error occurred during the service reload process
An exception has occurred in Reload
Type: System.TimeoutException
Message: The operation has timed out.
Source: Lithnet.Miiserver.AutoSync
TargetSite: Void StopMAExecutors()
StackTrace:
at Lithnet.Miiserver.AutoSync.Program.StopMAExecutors()
at Lithnet.Miiserver.AutoSync.Program.Reload()
An exception has occurred in Reload
Type: System.TimeoutException
Message: The operation has timed out.
Source: Lithnet.Miiserver.AutoSync
TargetSite: Void StopMAExecutors()
StackTrace:
at Lithnet.Miiserver.AutoSync.Program.StopMAExecutors()
at Lithnet.Miiserver.AutoSync.Program.Reload()
at Lithnet.Miiserver.AutoSync.ConfigService.Reload()
8/08/2017 8:29:47 AM: ACMA: Send mail failed
An exception has occurred in TrySendMail
Type: System.Net.Mail.SmtpException
Message: The operation has timed out.
Source: System
TargetSite: Void Send(System.Net.Mail.MailMessage)
StackTrace:
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at Lithnet.Miiserver.AutoSync.MessageSender.SendMessage(String subject, String body)
at Lithnet.Miiserver.AutoSync.MAExecutor.SendMail(RunDetails r)
at Lithnet.Miiserver.AutoSync.MAExecutor.TrySendMail(RunDetails r)
8/08/2017 8:29:47 AM: ACMA: Cancellation completed
Would like indication if the config.xml is loaded on start of GUI or after doing a import config
Says
Lithnet.Miiserver.AutoSync.UI.ViewModels.ManagementAgentsViewModel
When the service is stopped from "services" and GUI is running - it crashes with multiple windows
An unexpected error occured and the editor was terminated
It should have a more graceful exit.
Also if you try to open GUI while service is stopped it should give an option to start it if possible
Currently what I see is that autosync starts immediately after an install / upgrade. I am not sure if that is the best way to do it as the config file might not be correct and user might want to check the config file before starting the syncs.
Maybe a flag in the main page which if true then the autosync service picks up the file and runs..
Just a suggestion.
23/02/2017 5:37:03 PM: Starting service base
****************************************
An exception has occurred in Start
Type: System.FormatException
Message: Input string was not in a correct format.
Source: mscorlib
TargetSite: Void StringToNumber(System.String, System.Globalization.NumberStyles, NumberBuffer ByRef, System.Globalization.NumberFormatInfo, Boolean)
StackTrace:
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at Lithnet.Miiserver.Client.SyncServer.IsAdmin()
at Lithnet.Miiserver.AutoSync.Program.IsInFimAdminsGroup()
at Lithnet.Miiserver.AutoSync.Program.Start()
****************************************
23/02/2017 5:37:03 PM: Exiting service
Profiles like Import / export is causing exclusive lock which shouldn't happen
There is a numeric field under the MA Name.. I am guessing it is pending changes or number of changes done to that MA config. Need a text field explaining it or to be removed.
In latest build v1.0.6441 there is no prompt to restart service after commiting changes
Not sure if by design or bug
Not sure if this is done by the Installer but if so, it has not applied the service account full control to the program folder.
Currently it saves it to default location "C:\Program Files\Lithnet\MiisAutoSync".
Would like ability to have a custom path to save it.
As a rule of thumb when "Use SSL" is ticked under mail option the default mail host port should change to 465 (unless already set to soemthing else apart from 25 (i.e. user intervention has already taken place)
Saying that, maybe the tick box should be before the mail host and port option so that when user reaches the port section its already changed
Should be able to set daily / weekly / monthly profiles to run for each MA.
Helpful in maintenance of sync engine.
In quite a few occasions we have seen that few run profiles in some MA are hung and that the profile is still running. This leads to a queue build up and virtually stalling operations in the environment.
Although not a autosync issue, it would be nice to enable a feature whereby which we can mention the expected runtime of a run profile for an MA and if it has taken longer then that, we are sent an email notification of the same so that we can check it and potentially stop a backlog in production environment.
If different.. GUI should have a about section showing version number for both service and the interface
Rename service to 'autosync'
Rename default installation directory to 'Lithnet\AutoSync'
Rename installer to 'autosync.msi'
Profile chosen didn't run.
There should be an easy option to revert changes (apart from Import Config again). This should also then not prompt for restart of service as autosync should detect no changes have occured #23 / or changes have reverted.
Shouldn't allow to save if PowerShell (or any other trigger) which requires a file or command and if it's not given.
On load (if saved) should error or list errors found in GUI as well ?
7/08/2017 3:35:43 PM: The PowerShell execution trigger encountered an error and has been terminated
An exception has occurred in Run
Type: System.ArgumentNullException
Message: Value cannot be null.
Parameter name: path
Source: mscorlib
TargetSite: System.String ReadAllText(System.String)
StackTrace:
at System.IO.File.ReadAllText(String path)
at Lithnet.Miiserver.AutoSync.PowerShellExecutionTrigger.Run()
Made changes to MonashGoogleApps
Clicked Save and it errored on prompt of restart.. No run profile was running during that time
[12584] The configuration has been updated. The following management agents must be restarted for the configuration to take effect
[12584] MonashGoogleApps
[12584] Restarting executor 'MonashGoogleApps' with new configuration
[12584] MonashGoogleApps: SYNCOBJECT: WAIT: serviceControlLock
[12584] MonashGoogleApps: SYNCOBJECT: LOCKED: serviceControlLock
[12584] MonashGoogleApps: LOCK: WAIT: serviceControlLock
[12584] MonashGoogleApps: LOCK: CLEARED: serviceControlLock
[12584] MonashGoogleApps: LOCK: TAKE: serviceControlLock
[12584] MonashGoogleApps: SYNCOBJECT: UNLOCKED: serviceControlLock
[12584] An error occurred stopping the executor
[12584] ****************************************
[12584] An exception has occurred in Stop
[12584] Type: System.ServiceModel.CommunicationObjectAbortedException
[12584]
[12584] Message: The operation 'MAStatusChanged' could not be completed because the sessionful channel timed out waiting to receive a message. To increase the timeout, either set the receiveTimeout property on the binding in your configuration file, or set the ReceiveTimeout property on the Binding directly.
[12584] Source: mscorlib
[12584] TargetSite: Void HandleReturnMessage(System.Runtime.Remoting.Messaging.IMessage, System.Runtime.Remoting.Messaging.IMessage)
[12584] StackTrace:
[12584]
[12584] Server stack trace:
[12584] at System.ServiceModel.Channels.ServiceChannel.ThrowIfIdleAborted(ProxyOperationRuntime operation)
[12584] at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
[12584] at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
[12584] at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
[12584]
[12584] Exception rethrown at [0]:
[12584] at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
[12584] at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
[12584] at Lithnet.Miiserver.AutoSync.IEventCallBack.MAStatusChanged(MAStatus status)
[12584] at Lithnet.Miiserver.AutoSync.EventService.NotifySubscribers(MAStatus status)
[12584] at Lithnet.Miiserver.AutoSync.ExecutionEngine.X_StateChanged(Object sender, MAStatusChangedEventArgs e)
[12584] at Lithnet.Miiserver.AutoSync.MAExecutor.RaiseStateChange()
[12584] at Lithnet.Miiserver.AutoSync.MAExecutor.set_ControlState(ControlState value)
[12584] at Lithnet.Miiserver.AutoSync.MAExecutor.Stop()
[12584] ****************************************
[12584]
[13052] System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: The operation 'MAStatusChanged' could not be completed because the sessionful channel timed out waiting to receive a message. To increase the timeout, either set the receiveTimeout property on the binding in your configuration file, or set the ReceiveTimeout property on the Binding directly. (Fault Detail is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:
[13052] System.ServiceModel.CommunicationObjectAbortedException: The operation 'MAStatusChanged' could not be completed because the sessionful channel timed out waiting to receive a message. To increase the timeout, either set the receiveTimeout property on the binding in your configuration file, or set the ReceiveTimeout property on the Binding directly.
[13052]
[13052] Server stack trace:
[13052] at System.ServiceModel.Channels.ServiceChannel.ThrowIfIdleAborted(ProxyOperationRuntime operation)
[13052] at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
[13052] at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
[13052] at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
[13052]
[13052] Exception rethrown at [0]:
[13052] at System.Runtime.Remoting.Proxies.R...).
[12584] Searching for changes since 2017-08-16T15:00:27.647
[12584] Found 0 changes
After sometime
[13052] System.TimeoutException: This request operation sent to net.pipe://localhost/lithnet/autosync/config did not receive a reply within the configured timeout (00:01:40). The time allotted to this operation may have been a portion of a longer timeout. This may be because the service is still processing the operation or because the service was unable to send a reply message. Please consider increasing the operation timeout (by casting the channel/proxy to IContextChannel and setting the OperationTimeout property) and ensure that the service is able to connect to the client.
[13052]
[13052] Server stack trace:
[13052] at System.ServiceModel.Dispatcher.DuplexChannelBinder.Request(Message message, TimeSpan timeout)
[13052] at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
[13052] at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
[13052] at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
[13052]
[13052] Exception rethrown at [0]:
[13052] at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
[13052] at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
[13052] at Lithnet.Miiserver.AutoSync.IConfigService.RestartChangedExecutors()
[13052] at Lithnet.Miiserver.AutoSync.ConfigClient.RestartChangedExecutors()
[13052] at Lithnet.Miiserver.AutoSync.UI.ViewModels.MainWindowViewModel.AskToRestartService()
[13052] at Lithnet.Miiserver.AutoSync.UI.ViewModels.MainWindowViewModel.Save()
[12584] Searching for changes since 2017-08-16T15:00:27.647
[12584] Found 0 changes
After a ping failure is encountered, no further checks are performed. If the service is stopped, restarted, and hangs again, no alerts are sent
After install, service is unable to start. Nothing in the autosync log
Only comment in System Log
The Lithnet MIIS AutoSync service failed to start due to the following error:
The service did not respond to the start or control request in a timely fashion.A timeout was reached (30000 milliseconds) while waiting for the Lithnet MIIS AutoSync service to connect.
Rollback to older version works
Will be nice to implement CTRL + S (Save) , and others to the GUI
In the File menu should show history of path of XML picked up so that it's easy to reload it next time.
More of a feature request rather than Issue..
If possible - to show timed execution countdown for the MA if existing so we know when it is going to run next if no other operation takes place
When stopping the auto sync service from the services snapin, the process will remain active for around 1 minute before ending.
config.xml is missing in the program folder due to which GUI does not start up
8/08/2017 7:23:10 AM: Sap: Starting import interval timer. Imports will be queued if they have not been run for 01:03:44
Has been set for 60 min..
In certain scenarios, we don't want some profiles to run. like EALL...
Want the ability to make that check stop so that it doesn't do an EALL even if there are pending exports. Ideally, this functionality will be for all profile types.
By mistake, a user might change the config file and the GUI indicates that it needs to restart service to reload the file. I think same notifications should be in the logs so that if there is an issue and someone looks at the logs there is clear indication (maybe spam every 10 sec or 30 sec) that the latest config is not loaded.
I think this is counter productive.
Everytime we load a config file and even if there is no change (no * on the top), there is still a message to restart the service. This can affect timed execution triggers as user willl think to restart service everytime and thus the timer will reset to 0.
An error can occur when adding a new run profile to the execution queue which incorrectly terminates the PowerShell extension
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
at System.Collections.Generic.List`1.Enumerator.MoveNextRare() at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Lithnet.Miiserver.AutoSync.MAExecutor.GetQueueItemNames()
at Lithnet.Miiserver.AutoSync.MAExecutor.AddPendingActionIfNotQueued(ExecutionParameters p, String source, Boolean runNext)
at Lithnet.Miiserver.AutoSync.MAExecutor.notifier_TriggerExecution(Object sender, ExecutionTriggerEventArgs e)
at Lithnet.Miiserver.AutoSync.PowerShellExecutionTrigger.Fire(ExecutionParameters p)
at Lithnet.Miiserver.AutoSync.PowerShellExecutionTrigger.b__13_0()
In Settings we should be able to set autosync log location
When performing an upgrade, the service does not stop, and prompts the user to terminate the service process
Will be good to have
Recommend a debug mode if it doesn't exist
Would like to see everything its doing (say trigger check and reporting nothing to do) and stuff.. In a quite environment with minimal data changes it is difficult to assertain if configuration is running smoothly.
Configured SAP MA.. Loaded the config.xml again with the saved SAP MA.. still says "MonashSap (unconfigured)"
Settings option is there but the text has gone missing.. clicking on the blank line under MA's shows the option
Build v1.0.6249
No mail sent out on the above error message. Probably not an error in some scenario but still mail should go out as the code is not excluded in config.
If I stop the service and restart autosync, it should remain stopped (and probably notify in log of so)
Good for debugging and when you want to make several config changes, restart autosync or a system reboot happens and you don't want the sync to start off
Unable to Import / Export via ACMA after Autosync Install
Running ACMA v1.1.6411
An exception has occurred in OpenImportConnection
Type: System.TypeLoadException
Message: Could not load type 'System.Threading.AsyncLocal1' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Source: System.ServiceModel TargetSite: System.ServiceModel.OperationContext get_Current() StackTrace: at System.ServiceModel.OperationContext.get_Current() at System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, EndpointAddress address, Uri via) at System.ServiceModel.ChannelFactory
1.CreateChannel(EndpointAddress address, Uri via)
at System.ServiceModel.ClientBase1.CreateChannel() at System.ServiceModel.ClientBase
1.CreateChannelInternal()
at System.ServiceModel.ClientBase1.get_Channel() at System.ServiceModel.ClientBase
1.System.ServiceModel.ICommunicationObject.Open(TimeSpan timeout)
at Lithnet.Acma.Ecma2.ManagementAgent.OpenImportConnection(KeyedCollection`2 configParameters, Schema types, OpenImportConnectionRunStep importRunStep) in D:\github\lithnet\acma\src\Lithnet.Acma.Ecma2\ManagementAgent.cs:line 249
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.