def testConfigMap(self): tag = 'myZenpack' fileDict = { "service.json": { 'servicePath': '/', 'serviceDefinition': { 'Name': "Svc", 'Id': 'svc', 'ConfigFiles': { '/opt/zenoss/etc/service.conf': {}, '/opt/zenoss/etc/other.conf': {} } } }, } configMap = { '/opt/zenoss/etc/service.conf': "foobar", '/opt/zenoss/etc/other.conf': "boofar" } context = _MockServiceMigrationContext() client = _MockControlPlaneClient(services=_services) with setControlPlaneClient(client), setCurrentService( 'zope'), setServiceMigrationContext(context): z = ZenPack('id') z._loadServiceDefinition = createMockLoadServiceDefinitions( fileDict) z.installServicesFromFiles(fileDict.keys(), [configMap], tag) self.assertEquals(len(fileDict), len(context.added)) for i, j in ((i[0], json.loads(i[1])) for i in context.added): for key, val in configMap.iteritems(): self.assertEquals(j['ConfigFiles'][key]['Content'], val)
def testInstallFromFiles(self): tag = 'myZenpack' E_KEY = 'expectedParentId' # for this test only - associates path with service P_KEY = 'servicePath' # key defining path at which to install service D_KEY = 'serviceDefinition' # key defining service to be installed I_KEY = 'Id' # key defining ID N_KEY = 'Name' # key defining Name # Mock the filesystem - maps path->json file contents fileDict = dict( a={ P_KEY: '/', D_KEY: { E_KEY: 'zenoss', I_KEY: 'a', N_KEY: 'A' } }, b={ P_KEY: '/hub', D_KEY: { E_KEY: 'hub1', I_KEY: 'b', N_KEY: 'B' } }, c={ P_KEY: '/hub', D_KEY: { E_KEY: 'hub1', I_KEY: 'c', N_KEY: 'C' } }, ) context = _MockServiceMigrationContext() client = _MockControlPlaneClient(services=_services) with setControlPlaneClient(client), setCurrentService( 'zope'), setServiceMigrationContext(context): z = ZenPack('id') z._loadServiceDefinition = createMockLoadServiceDefinitions( fileDict) z.installServicesFromFiles(fileDict.keys(), [{}] * len(fileDict.keys()), tag) self.assertEquals(len(fileDict), len(context.added)) for i, j in ((i[0], json.loads(i[1])) for i in context.added): self.assertEquals(i, j[E_KEY])