def decommissioned_instance_ip_addresses(self, endpoint_name, instance_id): """ Return the ip address of a decommissioned instance. """ ip_addresses = self.zk_conn.read(paths.decommissioned_instance(endpoint_name, instance_id)) if ip_addresses != None: ip_addresses = json.loads(ip_addresses) if type(ip_addresses) == str: ip_addresses = [ip_addresses] else: ip_addresses = [] return ip_addresses
def drop_decommissioned_instance(self, endpoint_name, instance_id, instance_name=None): """ Delete the decommissioned instance """ ip_addresses = self.decommissioned_instance_ip_addresses(endpoint_name, instance_id) for ip_address in ip_addresses: self.drop_ip(endpoint_name, ip_address) self.zk_conn.delete(paths.decommissioned_instance(endpoint_name, instance_id)) # For windows machines we also do some cleanup if instance_name and self.windows and endpoint_name in self.endpoints: endpoint = self.endpoints[endpoint_name] self.windows.cleanup(ConfigView(endpoint.config, "windows"), instance_name)
def recommission_instance(self, endpoint_name, instance_id): """ Mark the instance id as being recommissioned. """ # Delete decommissioned instance path and marked data self.zk_conn.delete(paths.decommissioned_instance(endpoint_name, instance_id)) self.drop_marked_instance(endpoint_name, instance_id)
def decommission_instance(self, endpoint_name, instance_id, ip_addresses): """ Mark the instance id as being decommissioned. """ self.zk_conn.write(paths.decommissioned_instance(endpoint_name, instance_id), json.dumps(ip_addresses))