/* delete virtual nodes of a cluster, and install real nodes or sub-clusters */ void expand_cluster(graph_t * subg) { /* build internal structure of the cluster */ class2(subg); GD_comp(subg).size = 1; GD_comp(subg).list[0] = GD_nlist(subg); allocate_ranks(subg); build_ranks(subg, 0); merge_ranks(subg); /* build external structure of the cluster */ interclexp(subg); remove_rankleaders(subg); }
static void CreateRepository(CIMRepository & repository) { repository.createNameSpace(NS); Array<String> qualifierValue; qualifierValue.append(""); CIMQualifierDecl q1(CIMName ("MappingStrings"), qualifierValue, CIMScope::PROPERTY + CIMScope::CLASS); // Qualifier name must be "MappingStrings", test the qualifier // name is not "MappingStrings" CIMQualifierDecl q2(CIMName ("NotMappingStrings"), qualifierValue, CIMScope::CLASS); repository.setQualifier(NS, q1); repository.setQualifier(NS, q2); Array<String> classMappingStr; classMappingStr.append("OID.IETF | SNMP.1.3.6.1.4.1.892.2.3.9000.8600"); CIMClass class1(testClass1); class1.addQualifier(CIMQualifier(CIMName ("MappingStrings"), CIMValue(classMappingStr))); Array<String> invalidFormatStr; invalidFormatStr.append( "Wrong format OID.IETF | SNMP.1.3.6.1.4.1.2.3.9000.8600"); invalidFormatStr.append("DataType.IETF | OctetString "); // create wrong format property mappingStrings value class1.addProperty( CIMProperty(CIMName("OidDataType"), String("OctetString")) .addQualifier(CIMQualifier(CIMName ("MappingStrings"), CIMValue(invalidFormatStr)))); repository.createClass(NS, class1); // create invalid mapping string value Array<String> class2MappingStr; Array<String> mappingStr2; class2MappingStr.append("OID.IETF |Invalid Mapping String Value"); mappingStr2.append("OID.IETF | SNMP.1.3.6.1.4.1.2.3.9000.8600"); mappingStr2.append("DataType.IETF OctetString "); CIMClass class2(testClass2); class2.addQualifier(CIMQualifier(CIMName ("MappingStrings"), CIMValue(class2MappingStr))); class2.addProperty(CIMProperty(CIMName ("OidDataType"), String()) .addQualifier(CIMQualifier(CIMName ("MappingStrings"), CIMValue(mappingStr2)))); repository.createClass(NS, class2); // create non MappingStrings qualifier CIMClass class3(testClass3); class3.addQualifier(CIMQualifier(CIMName ("NotMappingStrings"), CIMValue(classMappingStr))); repository.createClass(NS, class3); // error building ASN.1 representation Array<String> class4MappingStr; class4MappingStr.append("OID.IETF | SNMP.1.204.6.1.6.3.1.330.5.1.0 "); CIMClass class4(testClass4); class4.addQualifier(CIMQualifier(CIMName ("MappingStrings"), CIMValue(class4MappingStr))); repository.createClass(NS, class4); // create incorrect class mappingStrings value Array<String> class5MappingStr; class5MappingStr.append("OID.IETF | SNMP.1.3.6.1.6.test.1.1.5.1.3 "); CIMClass class5(testClass5); class5.addQualifier(CIMQualifier(CIMName ("MappingStrings"), CIMValue(class5MappingStr))); // create incorrect property name class5.addProperty( CIMProperty(CIMName ("WrongPropertyName"), String("OctetString")) .addQualifier(CIMQualifier(CIMName ("MappingStrings"), CIMValue(class5MappingStr)))); repository.createClass(NS, class5); // create incorrect property mappingStrings value Array<String> class6MappingStr; class6MappingStr.append("OID.IETF | SNMP.1.3.6.1.6.3.1.1.0.1 "); Array<String> mappingStr6; mappingStr6.append("OID.IETF | SNMP.1.3.6.1.6.test.1.1.5.1.3"); mappingStr6.append("DataType.IETF | OctetString"); CIMClass class6(testClass6); class6.addQualifier(CIMQualifier(CIMName ("MappingStrings"), CIMValue(class6MappingStr))); class6.addProperty( CIMProperty(CIMName ("OidDataType"), String("OctetString")) .addQualifier(CIMQualifier(CIMName ("MappingStrings"), CIMValue(mappingStr6)))); repository.createClass(NS, class6); // create unsupportted SNMP Data Type for the CIM property Array<String> class7MappingStr; class7MappingStr.append("OID.IETF | SNMP.1.3.6.1.6.3.1.1.5.1 "); Array<String> mappingStr7; mappingStr7.append("OID.IETF | SNMP.1.3.6.1.6.test.1.1.5.1.3"); mappingStr7.append("DataType.IETF | test "); CIMClass class7(testClass7); class7.addQualifier(CIMQualifier(CIMName ("MappingStrings"), CIMValue(class7MappingStr))); class7.addProperty( CIMProperty(CIMName ("OidDataType"), String("test")) .addQualifier(CIMQualifier(CIMName ("MappingStrings"), CIMValue(mappingStr7)))); repository.createClass(NS, class7); // create invalid syntax for MappingStrings qualifier Array<String> invalidSyntax; Array<String> class8MappingStr; class8MappingStr.append("OID.IETF Invalid Syntax for MappingStrings"); Array<String> mappingStr8; mappingStr8.append("OID.IETF | SNMP.1.3.6.1.4.1.2.3.9000.8600"); mappingStr8.append("DataType.IETF | OctetString "); CIMClass class8(testClass8); class8.addQualifier(CIMQualifier(CIMName ("MappingStrings"), CIMValue(class8MappingStr))); class8.addProperty(CIMProperty(CIMName ("OidDataType"), String()) .addQualifier(CIMQualifier(CIMName ("MappingStrings"), CIMValue(mappingStr8)))); repository.createClass(NS, class8); }
void Test01(Uint32 mode) { String repositoryRoot; const char* tmpDir = getenv ("PEGASUS_TMP"); if (tmpDir == NULL) { repositoryRoot = "."; } else { repositoryRoot = tmpDir; } repositoryRoot.append("/repository"); FileSystem::removeDirectoryHier(repositoryRoot); CIMRepository r (repositoryRoot, mode); // Create a namespace: const CIMNamespaceName NAMESPACE = CIMNamespaceName ("zzz"); r.createNameSpace(NAMESPACE); // Create a qualifier (and read it back): CIMQualifierDecl q1(CIMName ("abstract"), false, CIMScope::CLASS); r.setQualifier(NAMESPACE, q1); CIMConstQualifierDecl q2 = r.getQualifier(NAMESPACE, CIMName ("abstract")); PEGASUS_TEST_ASSERT(q1.identical(q2)); // Create two simple classes: CIMClass class1(CIMName ("Class1")); class1.addQualifier( CIMQualifier(CIMName ("abstract"), true, CIMFlavor::DEFAULTS)); CIMClass class2(CIMName ("Class2"), CIMName ("Class1")); r.createClass(NAMESPACE, class1); r.createClass(NAMESPACE, class2); // Enumerate the class names: Array<CIMName> classNames = r.enumerateClassNames(NAMESPACE, CIMName(), true); BubbleSort(classNames); PEGASUS_TEST_ASSERT(classNames.size() == 2); PEGASUS_TEST_ASSERT(classNames[0] == "Class1"); PEGASUS_TEST_ASSERT(classNames[1] == "Class2"); // Get the classes and determine if they are identical with input CIMClass c1 = r.getClass(NAMESPACE, CIMName ("Class1"), true, true, false); CIMClass c2 = r.getClass(NAMESPACE, CIMName ("Class2"), true, true, false); PEGASUS_TEST_ASSERT(c1.identical(class1)); PEGASUS_TEST_ASSERT(c1.identical(class1)); Array<CIMClass> classes = r.enumerateClasses(NAMESPACE, CIMName (), true, true, true); // Attempt to delete Class1. It should fail since the class has // children. try { r.deleteClass(NAMESPACE, CIMName ("Class1")); } catch (CIMException& e) { PEGASUS_TEST_ASSERT(e.getCode() == CIM_ERR_CLASS_HAS_CHILDREN); } // Delete all classes created here: r.deleteClass(NAMESPACE, CIMName ("Class2")); r.deleteClass(NAMESPACE, CIMName ("Class1")); // Be sure the classes are really gone: try { CIMClass c1 = r.getClass( NAMESPACE, CIMName ("Class1"), true, true, true); PEGASUS_TEST_ASSERT(false); } catch (CIMException& e) { PEGASUS_TEST_ASSERT(e.getCode() == CIM_ERR_NOT_FOUND); } try { CIMClass c2 = r.getClass( NAMESPACE, CIMName ("Class2"), true, true, true); PEGASUS_TEST_ASSERT(false); } catch (CIMException& e) { PEGASUS_TEST_ASSERT(e.getCode() == CIM_ERR_NOT_FOUND); } FileSystem::removeDirectoryHier(repositoryRoot); }