mirror of
				https://github.com/Telecominfraproject/OpenNetworkLinux.git
				synced 2025-10-31 18:28:15 +00:00 
			
		
		
		
	 0b6da573ab
			
		
	
	0b6da573ab
	
	
	
		
			
			- Development builds will be marked with the branch and build id. - Release builds will contain the specific release name and a simplified system issue string.
		
			
				
	
	
		
			76 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import subprocess
 | |
| 
 | |
| class OnlVersionImplementation(object):
 | |
| 
 | |
|     PRODUCTS = [
 | |
|         {
 | |
|             "id" : "ONL",
 | |
| #            "version": "20YY-MM"
 | |
|         }
 | |
|     ]
 | |
| 
 | |
|     def __init__(self):
 | |
|         if 'version' in self.PRODUCTS[0]:
 | |
|             # Release builds have a specific version.
 | |
|             self.release = True
 | |
|         else:
 | |
|             # The current branch is used as the release version.
 | |
|             self.release = False
 | |
|             cmd = ('git', 'rev-parse', '--abbrev-ref', 'HEAD')
 | |
|             branch = subprocess.check_output(cmd).strip()
 | |
|             self.PRODUCTS[0]['version'] = branch
 | |
| 
 | |
|     def V_OS_NAME(self, data):
 | |
|         return "Open Network Linux OS"
 | |
| 
 | |
|     def V_BUILD_SHA1(self, data):
 | |
|         return data['build_sha1']
 | |
| 
 | |
|     def V_BUILD_SHORT_SHA1(self, data):
 | |
|         return self.V_BUILD_SHA1(data)[0:7]
 | |
| 
 | |
|     def V_BUILD_TIMESTAMP(self, data):
 | |
|         return data['build_timestamp']
 | |
| 
 | |
|     def V_FNAME_BUILD_TIMESTAMP(self, data):
 | |
|         return self.V_BUILD_TIMESTAMP(data).replace(':', '')
 | |
| 
 | |
|     def V_BUILD_ID(self, data):
 | |
|         return "%s-%s" % (self.V_BUILD_TIMESTAMP(data), self.V_BUILD_SHORT_SHA1(data))
 | |
| 
 | |
|     def V_FNAME_BUILD_ID(self, data):
 | |
|         return "%s-%s" % (self.V_FNAME_BUILD_TIMESTAMP(data), self.V_BUILD_SHORT_SHA1(data))
 | |
| 
 | |
|     def V_PRODUCT_ID_VERSION(self, data):
 | |
|         return data['product']['version']
 | |
| 
 | |
|     def V_VERSION_ID(self, data):
 | |
|         return "ONL-%s" % (self.V_PRODUCT_ID_VERSION(data))
 | |
| 
 | |
|     def V_FNAME_VERSION_ID(self, data):
 | |
|         return self.V_VERSION_ID(data)
 | |
| 
 | |
|     def V_PRODUCT_VERSION(self, data):
 | |
|         return "ONL-%s"  % (self.V_PRODUCT_ID_VERSION(data))
 | |
| 
 | |
|     def V_FNAME_PRODUCT_VERSION(self, data):
 | |
|         return "ONL-%s" % (self.V_PRODUCT_ID_VERSION(data))
 | |
| 
 | |
|     def V_VERSION_STRING(self, data):
 | |
|         return "%s %s, %s" % (self.V_OS_NAME(data), self.V_VERSION_ID(data), self.V_BUILD_ID(data))
 | |
| 
 | |
|     def V_RELEASE_ID(self, data):
 | |
|         return "%s,%s" % (self.V_VERSION_ID(data), self.V_BUILD_ID(data))
 | |
| 
 | |
|     def V_FNAME_RELEASE_ID(self, data):
 | |
|         return "%s-%s" % (self.V_VERSION_ID(data), self.V_FNAME_BUILD_ID(data))
 | |
| 
 | |
|     def V_SYSTEM_COMPATIBILITY_VERSION(self, data):
 | |
|         return "2"
 | |
| 
 | |
|     def V_ISSUE(self, data):
 | |
|         if self.release:
 | |
|             return "%s %s" % (self.V_OS_NAME(data), self.V_VERSION_ID(data))
 | |
|         else:
 | |
|             return self.V_VERSION_STRING(data)
 |