我需要使用LDIF文件将IPv4地址更改为多个IPv4地址。用于创建HSS ESM的原始LDIF文件如下:
dn: HSS-EsmImsi=312720000000207,HSS-EsmSubscriptionId=BR-02061969,
HSS-EsmSubscriptionContainerName=HSS-EsmSubscriptionContainer,
applicationName=HSS_ESM,nodeName=bnyrgvhss1
changeType: modify
add: HSS-EsmUserProfileId
HSS-EsmUserProfileId: HSS-EsmProfile_APCCI_METERING
-
add: HSS-EsmUserIpV4Address
HSS-EsmUserIpV4Address: 4$10.11.12.13
-
add: HSS-EsmMsisdn
HSS-EsmMsisdn: +1 234 567 8901
-
现在,我需要做两件事:
根据 Erickson的 - ESM LDAP接口说明 ,这应该使用以下格式的字符串来完成: [contextId1] $ [IPv4-Address1] \ n [contextId2] $ [IPv4-Address2] \ n ... [contextIdNN] $ [IPv4-AddressNN] \ n 。
图例:
我是LDAP新手,非常感谢LDIF文件应该如何帮助HSS-EsmUserIpV4Address
存储,例如,以下IPv4地址:
2$159.10.1.20
7$159.10.1.21
8$159.10.1.22
我尝试将LDIF文件更改为Delete
和Add
,如下所示:
... (the original code)...
changeType: modify
delete: HSS-EsmUserProfileId
-
add: HSS-EsmUserProfileId
HSS-EsmUserProfileId: 2$159.10.1.20\n7$159.10.1.21\n8$159.10.1.22\n
-
但是,它没有用(没有错误信息,只是没有变化)。
我会感激任何帮助,我在这里(在工作中)留下来直到我实现这一目标。
答案 0 :(得分:1)
public SendOrderMap()
{
Table("Sendorder");
Id(s => s.ID).GeneratedBy.Sequence("SEQ_SendOrder");
Map(s => s.YBID);
Map(s => s.TITLE);
Map(s => s.MESSAGE).CustomSqlType("NCLOB").CustomType("StringClob");
}
首先,您正在更改错误的属性。它应该是
add: HSS-EsmUserProfileId
HSS-EsmUserProfileId: 2$159.10.1.20\n7$159.10.1.21\n8$159.10.1.22\n
并且您可能已经损坏了此属性的原始值,因此您需要将其归还:
add: HSS-EsmUserIpV4Address
HSS-EsmUserIpV4Address: 2$159.10.1.20\n7$159.10.1.21\n8$159.10.1.22\n
其次,我不知道你在哪里使用delete: HSS-EsmUserProfileId
add: HSS-EsmUserProfileId
HSS-EsmUserProfileId: HSS-EsmProfile_APCCI_METERING
分隔符获得此格式。我在你引用的文档中没有看到它。多个属性值的常规LDIF语法为:
\n
请注意,这将保留以add: HSS-EsmUserIpV4Address
HSS-EsmUserIpV4Address: 2$159.10.1.20
HSS-EsmUserIpV4Address: 7$159.10.1.21
HSS-EsmUserIpV4Address: 8$159.10.1.22
开头的先前值,除非您之前使用过4$
。
答案 1 :(得分:0)
谢谢EJP,你让我顺利回答了我以前错误的原因。
解决方案:在LDIF文件中使用changeType: modify
replace
或delete
。
正确的LDIF文件应为:
dn: HSS-EsmImsi=312720000000207,HSS-EsmSubscriptionId=BR-02061969,
HSS-EsmSubscriptionContainerName=HSS-EsmSubscriptionContainer,
applicationName=HSS_ESM,nodeName=bnyrgvhss1
changeType: modify
add: HSS-EsmUserProfileId
HSS-EsmUserProfileId: HSS-EsmProfile_APCCI_METERING
-
delete: HSS-EsmUserIpV4Address
-
add: HSS-EsmUserIpV4Address
HSS-EsmUserIpV4Address: 1$159.10.1.20
HSS-EsmUserIpV4Address: 2$159.10.1.21
HSS-EsmUserIpV4Address: 3$159.10.1.22
-
add: HSS-EsmMsisdn
HSS-EsmMsisdn: +12345678901
-
这将从属性中删除特定值并添加另外两个:
dn: HSS-EsmImsi=312720000000207,HSS-EsmSubscriptionId=BR-02061969,
HSS-EsmSubscriptionContainerName=HSS-EsmSubscriptionContainer,
applicationName=HSS_ESM,nodeName=bnyrgvhss1
changeType: modify
delete: HSS-EsmUserIpV4Address
HSS-EsmUserIpV4Address: 2$159.10.1.20
-
add: HSS-EsmUserIpV4Address
HSS-EsmUserIpV4Address: 1$159.10.1.23
HSS-EsmUserIpV4Address: 2$159.10.1.24
-
以下代码将删除该属性的所有实例,并再次使用其他3个值添加该属性:
dn: HSS-EsmImsi=312720000000207,HSS-EsmSubscriptionId=BR-02061969,
HSS-EsmSubscriptionContainerName=HSS-EsmSubscriptionContainer,
applicationName=HSS_ESM,nodeName=bnyrgvhss1
changeType: modify
delete: HSS-EsmUserIpV4Address
-
add: HSS-EsmUserIpV4Address
HSS-EsmUserIpV4Address: 1$159.10.1.25
HSS-EsmUserIpV4Address: 2$159.10.1.26
HSS-EsmUserIpV4Address: 3$159.10.1.27
-
我在How To Use LDIF Files to Make Changes to an OpenLDAP System上找到了这个。
感谢@EJP的巨大帮助。