From e1983c9650530efbc15c7676f0e24d74c625f2fe Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Tue, 12 Sep 2017 17:35:38 +0530 Subject: [PATCH] cloudian: add message bus listeners Signed-off-by: Rohit Yadav --- .../cloudstack/CloudianConnectorImpl.java | 76 ++++++++++++++++++ .../cloudstack/api/CloudianSsoCmd.java | 21 +++++ ui/plugins/cloudian/icon.png | Bin 1313 -> 1099 bytes 3 files changed, 97 insertions(+) create mode 100644 plugins/connectors/cloudian/src/com/cloudian/cloudstack/api/CloudianSsoCmd.java diff --git a/plugins/connectors/cloudian/src/com/cloudian/cloudstack/CloudianConnectorImpl.java b/plugins/connectors/cloudian/src/com/cloudian/cloudstack/CloudianConnectorImpl.java index d984e9e877d..fa58a6255c8 100644 --- a/plugins/connectors/cloudian/src/com/cloudian/cloudstack/CloudianConnectorImpl.java +++ b/plugins/connectors/cloudian/src/com/cloudian/cloudstack/CloudianConnectorImpl.java @@ -19,17 +19,93 @@ package com.cloudian.cloudstack; import java.util.ArrayList; import java.util.List; +import java.util.Map; + +import javax.inject.Inject; +import javax.naming.ConfigurationException; import org.apache.cloudstack.framework.config.ConfigKey; import org.apache.cloudstack.framework.config.Configurable; +import org.apache.cloudstack.framework.messagebus.MessageBus; +import org.apache.cloudstack.framework.messagebus.MessageSubscriber; +import org.apache.log4j.Logger; +import com.cloud.domain.Domain; +import com.cloud.domain.DomainVO; +import com.cloud.domain.dao.DomainDao; +import com.cloud.user.Account; +import com.cloud.user.AccountManager; +import com.cloud.user.DomainManager; +import com.cloud.user.dao.AccountDao; import com.cloud.utils.component.ComponentLifecycleBase; public class CloudianConnectorImpl extends ComponentLifecycleBase implements CloudianConnector, Configurable { + public static final Logger LOG = Logger.getLogger(CloudianConnectorImpl.class); + + @Inject + private AccountDao accountDao; + + @Inject + private DomainDao domainDao; + + @Inject + private MessageBus messageBus; + + + @Override + public boolean configure(String name, Map params) throws ConfigurationException { + super.configure(name, params); + + messageBus.subscribe(AccountManager.MESSAGE_ADD_ACCOUNT_EVENT, new MessageSubscriber() { + @Override + public void onPublishMessage(String senderAddress, String subject, Object args) { + Map accountGroupMap = (Map) args; + Long accountId = accountGroupMap.keySet().iterator().next(); + // TODO: check and create user in CMC + final Account account = accountDao.findById(accountId); + LOG.info("Creating account id=" + accountId + " with uuid=" + account.getUuid()); + } + }); + + messageBus.subscribe(AccountManager.MESSAGE_REMOVE_ACCOUNT_EVENT, new MessageSubscriber() { + @Override + public void onPublishMessage(String senderAddress, String subject, Object args) { + Long accountId = (Long) args; + // TODO: remove/disable user in CMC + final Account account = accountDao.findById(accountId); + LOG.info("Removing account id=" + accountId + " with uuid=" + account.getUuid()); + + } + }); + + messageBus.subscribe(DomainManager.MESSAGE_ADD_DOMAIN_EVENT, new MessageSubscriber() { + @Override + public void onPublishMessage(String senderAddress, String subject, Object args) { + Long domainId = (Long) args; + Domain domain = domainDao.findById(domainId); + // TODO: check and create group in CMC + LOG.info("Adding domain id=" + domainId + " with uuid=" + domain.getUuid()); + } + }); + + messageBus.subscribe(DomainManager.MESSAGE_REMOVE_DOMAIN_EVENT, new MessageSubscriber() { + @Override + public void onPublishMessage(String senderAddress, String subject, Object args) { + DomainVO domain = (DomainVO) args; + // TODO: remove/disable group in CMC + LOG.info("Removing domain id=" + domain.getId() + " with uuid=" + domain.getUuid()); + } + }); + + return true; + } @Override public List> getCommands() { List> cmdList = new ArrayList>(); + if (!CloudianConnectorEnabled.value()) { + return cmdList; + } return cmdList; } diff --git a/plugins/connectors/cloudian/src/com/cloudian/cloudstack/api/CloudianSsoCmd.java b/plugins/connectors/cloudian/src/com/cloudian/cloudstack/api/CloudianSsoCmd.java new file mode 100644 index 00000000000..21b33093be5 --- /dev/null +++ b/plugins/connectors/cloudian/src/com/cloudian/cloudstack/api/CloudianSsoCmd.java @@ -0,0 +1,21 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package com.cloudian.cloudstack.api; + +public class CloudianSsoCmd { +} diff --git a/ui/plugins/cloudian/icon.png b/ui/plugins/cloudian/icon.png index 59e6cd7b3a61df1b51d4844f9d39a54d56185fcb..d18ec23767889a8b7637083287bb32f8a874ef34 100644 GIT binary patch delta 1028 zcmV+f1pE7;3d;x~iBL{Q4GJ0x0000DNk~Le0000o0000o2nGNE03JVxv5_G#3gHP1 z3nnSsGfU@@TPuG9uSrBfRA}Dqm~TuQWf;JJcRQGy)G#Jo05MUa5HrK^LG6|$B86dg z#wLjG@dn zj&iSGXvCyzOWSK{a=(x5bNA-=KKDHDa|bpyHa0dkHa350p}E>yG*|n>`B+P_M!@X= zegshuJdqC(*#e1Ez#>qe&+IEX6nGFYfE|T+jI$QecDrj3oCe&5tVbntfp!@oUPbWI zW@s!KiD-AXwIakgP>~|^BJg=WM5K+?K}R*1XMlTBgkA-Df&u?{zA}<_*E;;n3y*>M zM;a0z1OtEmt=UNU&a0)qklJjCNMmFDBfST^BMwK|6(K~TklzvP3rys}5Oa3b-Y22cpB_*!gJh zL$T)OT^}wiEM6ZB_$Q_UnM?RW>Iqrq&rBt~_}(!AC$xeA6|T`&*Fuf`M;li(=O5?i=VAg4uNvaa!dq z=FG8^x3?9A$lg6JSMR~@tF^V&^YQK$Tanmx*I)C;-aT)+IuQB)lH6yt&?0~R9~!JbK?Pj8t2B=4Vtk_wH! zSA#4Y!2UEu&HzVrXLzX~-?h@r&^}DyG@vFBxd?RW&hV6_lWI=%6&LHPPr2iEK4s-PW2YXtzL% zf^AB-bA4#}%yzfk?!tMQ$(*@oe)*q!&bb*FhiQ8G)q8)(l2zPx)AX{1nqKy3Dq<lQFlLV;;x&eDCRUVZxj>S$|eh8rH&JBPcn3j%|$5lovDFr}Mn5F5? zqrj)>0vQqJ3Iwt&Yr3-r!5P4r?qX14frO5Ig;r9!93dKj>;y47fX~yTjFge5>CUf_ zq~-)5mw|tZP%uys3I=+{`r+fphpva)a$>`5f9~Zc!1@b#FhQ&jLczeqP%zNoSW-47 zh{J6&0f;S$QQ)%05w&{;oJ`!~}7JPW_T=$evFmNb(Fo5_$5P?S1^0zVq0VH z#0;x%$};}|bCT*avMf(nsNHw!bo+^3;085{7Y`3fA+6VR=W*LCRu6aQ5!)6ZjcXhT zOT>Q+kf~U+G~L+*GywMlrlvcaLCOd49<-;n1CL}CRok|Rp+;DKlWV!0VV&MpJHOPk zvHjM-EL*DUm76Lq=jZ2jU8%b0fW(3a{_WcJ-Y=G3e$Jkf4m=tYLI_1sGFOy6lpBe3 z_5Ix1+_!GquM_Sn=*x``NC<(rrRNy{%d&sS$(b>!s&rCMR$gy*bU+?YIFem`!={c7 zh`9cA!@L9Zjo|xFvgC$a2IFzNPDw(#6L|8P5E4jIB}JWC#=Oq+=Bd22z(ivw%8Gj2 zu8)9hiNRXsj*HWb!p;N6aE6Tef8Q{jfx%S3Z1MX1_X2op>#siC>3$l3e#Pq9>}-Fm zIp4bSLafD$7J(U7HDGBfU>v}2UY~zILQ(*B*S>$%`AT&)0GrD{yLLKDKXU`8tU%x0k5>+`!_*s&F_uYSZAR~JPv!|EG@GM9i=qpixDVcrIM<1DrT^Y9>iYzkW)u#A0C7Q* z9%x>le+BR{pvF+916XeqMOw_ZT#Ul5G!IHyYVx>UGZDOcQ=5O$D2fzh$OA3Fm_Wv5 zd-m2{QEBRdW@G1((@GXVW1A#;`~F;cYyAKmXdM6lqW=LOGJTSWp8A>q0000